мета-данные страницы
  •  

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
apache_guacamole:apache_guacamole_web_gateway_settings [2023/11/02 09:12] – удалено - внешнее изменение (Дата неизвестна) 127.0.0.1apache_guacamole:apache_guacamole_web_gateway_settings [2023/12/26 11:53] (текущий) Администратор
Строка 1: Строка 1:
 +====== Настройка веб-шлюза Apache Guacamole ======
 +===== Подготовка =====
  
 +Обновляем пакеты
 +<code>sudo apt update</code>
 +Ставим необходимые зависимости
 +<code>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
 +</code>
 +Ставим Java
 +<code>sudo apt install openjdk-11-jdk</code>
 +
 +===== Установка и настройка Tomcat =====
 +
 +Создаем отдельного пользователя для работы с Tomcat
 +<code>sudo useradd -m -U -d /etc/tomcat -s /bin/false tomcat</code>
 +Скачиваем и распаковываем Tomcat
 +<code>wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.82/bin/apache-tomcat-9.0.82.tar.gz -P /tmp</code>
 +<code>sudo tar -xf /tmp/apache-tomcat-9.0.82.tar.gz -C /etc/tomcat/</code>
 +Делаем символьную ссылку для удобства
 +<code>sudo ln -s /etc/tomcat/apache-tomcat-9.0.82 /etc/tomcat/lastv</code>
 +Даем права пользователю tomcat
 +<code>sudo chown -R tomcat: /etc/tomcat</code>
 +<code>sudo sh -c 'chmod +x /etc/tomcat/lastv/bin/*.sh'</code>
 +Создаем службу Tomcat
 +Заносим в файл 
 +<code>nano /etc/systemd/system/tomcat.service</code>
 +следующую информацию
 +<code>
 +[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
 +</code>
 +Перезапускаем службу и делаем ее автозапуск при включении системы
 +<code>systemctl restart tomcat</code>
 +<code>systemctl enable tomcat</code>
 +Проверяем что все работает успешно
 +<code>systemctl status tomcat</code>
 +{{:pasted:20231101-164450.png?nolink}}
 +
 +===== Установка и настройка Guacamole server и client =====
 +Скачиваем и распаковываем guacamole server
 +<code>wget https://downloads.apache.org/guacamole/1.5.3/source/guacamole-server-1.5.3.tar.gz -P /tmp</code>
 +<code>cd /tmp</code>
 +<code>tar -xzf guacamole-server-1.5.3.tar.gz</code>
 +<code>cd guacamole-server-1.5.3/</code>
 +Собираем guacamole server
 +<code>./configure --with-init-dir=/etc/init.d</code>
 +<code>sudo make </code>
 +<code>sudo make install</code>
 +<code>sudo ldconfig</code>
 +Включаем автозапуск и проверяем службу
 +<code>sudo systemctl enable guacd</code>
 +<code>sudo systemctl start guacd</code>
 +<code>systemctl status guacd</code>
 +Если видим подобное, то все супер
 +
 +{{:pasted:20231101-170907.png?nolink}}
 +
 +Создаем важные каталоги
 +<code>sudo mkdir /etc/guacamole</code>
 +<code>sudo mkdir /etc/guacamole/extensions</code>
 +<code>sudo mkdir /etc/guacamole/lib</code>
 +
 +Скачиваем клиент и делаем символьную ссылку
 +<code>wget https://downloads.apache.org/guacamole/1.5.3/binary/guacamole-1.5.3.war -P /etc/guacamole</code>
 +<code>ln -s /etc/guacamole/guacamole-1.5.3.war /etc/tomcat/lastv/webapps/guacamole.war</code>
 +
 +===== Установка и настройка MariaDB =====
 +Установка и назначение пароля
 +<code>sudo apt install mariadb-server</code>
 +<code>sudo mysql_secure_installation</code>
 +Вход в mysql и добавление базы данных
 +<code>mysql -u root -p</code>
 +<note><code>CREATE DATABASE guacamole_test CHARACTER SET UTF8;</code>
 +<code>CREATE USER guacamole_test@localhost IDENTIFIED BY 'password123456';</code>
 +<code>GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_test.* TO 'guacamole_test'@'localhost';</code>
 +<code>FLUSH PRIVILEGES;</code>
 +<code>exit</code>
 +
 +Где:
 +  * guacamole_test - имя базы данных и имя пользователя (измените данные под свои требования)
 +  * password123456 - пароль по умолчанию (измените данные под свои требования)
 +</note>
 +Соединяем базу данных и guacamole
 +<code>sudo nano /etc/guacamole/guacamole.properties</code>
 +<code>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
 +</code>
 +Скачиваем и подключаем дополнения
 +<code>wget https://dev.mysql.com/get/Downloads/Connector/mysql-connector-java-8.0.30.tar.gz -P /tmp</code>
 +<code>wget https://downloads.apache.org/guacamole/1.5.3/binary/guacamole-auth-jdbc-1.5.3.tar.gz -P /tmp</code>
 +<code>cd /tmp</code>
 +<code>tar -xzf mysql-connector-java-8.0.30.tar.gz</code>
 +<code>tar -xzf guacamole-auth-jdbc-1.5.3.tar.gz</code>
 +<code>sudo cp /tmp/mysql-connector-java-8.0.30/mysql-connector-java-8.0.30.jar /etc/guacamole/lib/</code>
 +<code>sudo cp /tmp/guacamole-auth-jdbc-1.5.3/mysql/guacamole-auth-jdbc-mysql-1.5.3.jar /etc/guacamole/extensions/</code>
 +Настройка базы данных
 +<code>cd /tmp/guacamole-auth-jdbc-1.5.3/mysql/</code>
 +<code>cat schema/*.sql | mysql -u root -p guacamole_test</code>
 +
 +===== Настройка файла подключений =====
 +Открываем файл
 +<code>nano /etc/guacamole/user-mapping.xml</code>
 +<note><code><user-mapping>
 + <authorize
 +      username="guacadmin"
 +      password="5cbd438413e8e3ca0e14e200fde621a9"
 +      encoding="md5">
 +   <!-- SSH -->
 +   <connection name="Имя вашего сервера">
 +       <protocol>ssh</protocol>
 +         <param name="hostname">ваш_ip</param>
 +         <param name="port">22</param>
 +   </connection>
 +   <!-- RDP -->
 +   <connection name="Имя вашего сервера">
 +       <protocol>rdp</protocol>
 +         <param name="hostname">ваш_ip</param>
 +         <param name="port">3389</param>
 +         <param name="username">Имя пользователя</param>
 +         <param name="ignore-cert">true</param>
 +   </connection>
 + </authorize>
 +</user-mapping></code>
 +
 +Для более детальной настройки, смотрите [[https://guacamole.apache.org/doc/gug/configuring-guacamole.html | официальную документацию]]
 +</note>
 +
 +<note important>
 +После каждого редактирования файла **/etc/guacamole/user-mapping.xml**
 +нужно выполнять перезапуск служб
 +<code>systemctl restart tomcat guacd</code>
 +</note>
 +
 +===== Обратный прокси =====
 +Установка nginx
 +<code>apt install nginx</code>
 +Создаем конфиг
 +<code>nano /etc/nginx/sites-available/guacamole.conf</code>
 +<note><code>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/ /;
 +        }
 +
 +}</code></note>
 +Делаем символьную ссылку
 +<code>ln -s /etc/nginx/sites-available/guacamole.conf /etc/nginx/sites-enabled/</code>
 +Перезагружаем nginx
 +<code>systemctl restart nginx</code>
 +
 +===== Проверка работоспособности =====
 +Нужно зайти 
 +<code>http://Ваш_ip</code>
 +Для первого входа используйте:
 +  * Логин - guacadmin
 +  * пароль - guacadmin
 +{{:pasted:20231102-105452.png?nolink}}