====== Настройка веб-шлюза Apache Guacamole ====== ===== Подготовка ===== Обновляем пакеты sudo apt update Ставим необходимые зависимости sudo apt install make gcc g++ libcairo2-dev libjpeg-turbo8-dev libpng-dev libtool-bin libossp-uuid-dev libavcodec-dev libavutil-dev libswscale-dev freerdp2-dev libpango1.0-dev libssh2-1-dev libvncserver-dev libtelnet-dev libssl-dev libvorbis-dev libwebp-dev Ставим Java sudo apt install openjdk-11-jdk ===== Установка и настройка Tomcat ===== Создаем отдельного пользователя для работы с Tomcat sudo useradd -m -U -d /etc/tomcat -s /bin/false tomcat Скачиваем и распаковываем Tomcat wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.82/bin/apache-tomcat-9.0.82.tar.gz -P /tmp sudo tar -xf /tmp/apache-tomcat-9.0.82.tar.gz -C /etc/tomcat/ Делаем символьную ссылку для удобства sudo ln -s /etc/tomcat/apache-tomcat-9.0.82 /etc/tomcat/lastv Даем права пользователю tomcat sudo chown -R tomcat: /etc/tomcat sudo sh -c 'chmod +x /etc/tomcat/lastv/bin/*.sh' Создаем службу Tomcat Заносим в файл nano /etc/systemd/system/tomcat.service следующую информацию [Unit] Description=Tomcat 9 After=network.target [Service] Type=forking User=tomcat Group=tomcat Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64" Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom -Djava.awt.headless=true" Environment="CATALINA_BASE=/etc/tomcat/lastv" Environment="CATALINA_HOME=/etc/tomcat/lastv" Environment="CATALINA_PID=/etc/tomcat/lastv/temp/tomcat.pid" Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC" ExecStart=/etc/tomcat/lastv/bin/startup.sh ExecStop=/etc/tomcat/lastv/bin/shutdown.sh [Install] WantedBy=multi-user.target Перезапускаем службу и делаем ее автозапуск при включении системы systemctl restart tomcat systemctl enable tomcat Проверяем что все работает успешно systemctl status tomcat {{:pasted:20231101-164450.png?nolink}} ===== Установка и настройка Guacamole server и client ===== Скачиваем и распаковываем guacamole server wget https://downloads.apache.org/guacamole/1.5.3/source/guacamole-server-1.5.3.tar.gz -P /tmp cd /tmp tar -xzf guacamole-server-1.5.3.tar.gz cd guacamole-server-1.5.3/ Собираем guacamole server ./configure --with-init-dir=/etc/init.d sudo make sudo make install sudo ldconfig Включаем автозапуск и проверяем службу sudo systemctl enable guacd sudo systemctl start guacd systemctl status guacd Если видим подобное, то все супер {{:pasted:20231101-170907.png?nolink}} Создаем важные каталоги sudo mkdir /etc/guacamole sudo mkdir /etc/guacamole/extensions sudo mkdir /etc/guacamole/lib Скачиваем клиент и делаем символьную ссылку wget https://downloads.apache.org/guacamole/1.5.3/binary/guacamole-1.5.3.war -P /etc/guacamole ln -s /etc/guacamole/guacamole-1.5.3.war /etc/tomcat/lastv/webapps/guacamole.war ===== Установка и настройка MariaDB ===== Установка и назначение пароля sudo apt install mariadb-server sudo mysql_secure_installation Вход в mysql и добавление базы данных mysql -u root -p CREATE DATABASE guacamole_test CHARACTER SET UTF8; CREATE USER guacamole_test@localhost IDENTIFIED BY 'password123456'; GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_test.* TO 'guacamole_test'@'localhost'; FLUSH PRIVILEGES; exit Где: * guacamole_test - имя базы данных и имя пользователя (измените данные под свои требования) * password123456 - пароль по умолчанию (измените данные под свои требования) Соединяем базу данных и guacamole sudo nano /etc/guacamole/guacamole.properties mysql-hostname: localhost mysql-port: 3306 mysql-database: guacamole_test mysql-username: guacamole_test mysql-password: password123456 guacd-port: 4822 user-mapping: /etc/guacamole/user-mapping.xml auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider Скачиваем и подключаем дополнения wget https://dev.mysql.com/get/Downloads/Connector/mysql-connector-java-8.0.30.tar.gz -P /tmp wget https://downloads.apache.org/guacamole/1.5.3/binary/guacamole-auth-jdbc-1.5.3.tar.gz -P /tmp cd /tmp tar -xzf mysql-connector-java-8.0.30.tar.gz tar -xzf guacamole-auth-jdbc-1.5.3.tar.gz sudo cp /tmp/mysql-connector-java-8.0.30/mysql-connector-java-8.0.30.jar /etc/guacamole/lib/ sudo cp /tmp/guacamole-auth-jdbc-1.5.3/mysql/guacamole-auth-jdbc-mysql-1.5.3.jar /etc/guacamole/extensions/ Настройка базы данных cd /tmp/guacamole-auth-jdbc-1.5.3/mysql/ cat schema/*.sql | mysql -u root -p guacamole_test ===== Настройка файла подключений ===== Открываем файл nano /etc/guacamole/user-mapping.xml ssh ваш_ip 22 rdp ваш_ip 3389 Имя пользователя true Для более детальной настройки, смотрите [[https://guacamole.apache.org/doc/gug/configuring-guacamole.html | официальную документацию]] После каждого редактирования файла **/etc/guacamole/user-mapping.xml** нужно выполнять перезапуск служб systemctl restart tomcat guacd ===== Обратный прокси ===== Установка nginx apt install nginx Создаем конфиг nano /etc/nginx/sites-available/guacamole.conf server { listen 80; server_name ваш_ip; access_log /var/log/nginx/guac_access.log; error_log /var/log/nginx/guac_error.log; location / { proxy_pass http://ваш_ip:8080/guacamole/; proxy_buffering off; proxy_http_version 1.1; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; proxy_cookie_path /guacamole/ /; } } Делаем символьную ссылку ln -s /etc/nginx/sites-available/guacamole.conf /etc/nginx/sites-enabled/ Перезагружаем nginx systemctl restart nginx ===== Проверка работоспособности ===== Нужно зайти http://Ваш_ip Для первого входа используйте: * Логин - guacadmin * пароль - guacadmin {{:pasted:20231102-105452.png?nolink}}