Хранение настроек guacamole в базе mysql

Posted by

Из предыдущей заметки Вы узнали как использовать браузер и технологию html 5 задействовав приложение guacamole подключаться к удаленным системам посредством конфигурационного файла где описаны в ручную настройки подключения. Но разве это удобно, конечно же нет, если систем которые нужно администрировать переходит за 10 и более то удобнее настройки хранить в виде базы данных, вот и сейчас я покажу, как подружить guacamole с mysql для аутентификации и хранения настроек подключения. Данная заметка опирается на уже опубликованную и полностью работоспособна, я проверил и использую в новой организации где имею место быть работать системным администратором.

Скачиваю пакет отвечающий за аутентификацию в guacamole посредством mysql:

ekzorchik@srv-serv:~$ wget -O guacamole-auth-mysql-0.8.0.tar.gz http://sourceforge.net/projects/guacamole/files/legacy/extensions/guacamole-auth-mysql-0.8.0.tar.gz/download

Распаковываю скачанный архив:

ekzorchik@srv-serv:~$ tar -zxvf guacamole-auth-mysql-0.8.0.tar.gz

Также реализации задуманного этой заметки потребуется коннектор: — MySQL Java Connector

ekzorchik@srv-serv:~$ apt-cache show libmysql-java | grep Version

Version: 5.1.16-2

Но лучше использовать самую последнюю и стабильную версию коннектора который можно загрузить только с одним но,потребуется иметь зарегистрированный аккаунт на oracle.com при переходе по ссылке: http://dev.mysql.com/downloads/connector/j/ указанной в официальной документации:

ekzorchik@srv-serv:~$ wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.34.tar.gz

ekzorchik@srv-serv:~$ tar -zxvf mysql-connector-java-5.1.34.tar.gz

ekzorchik@srv-serv:~$ mv mysql-connector-java-5.1.34/mysql-connector-java-5.1.34-bin.jar guacamole-auth-mysql-0.8.0/lib/

ekzorchik@srv-serv:~$ sudo mkdir -p /var/lib/guacamole/classpath

ekzorchik@srv-serv:~$ sudo cp guacamole-auth-mysql-0.8.0/lib/* /var/lib/guacamole/classpath/

Теперь создаю базу для приложения guacamole и пользователя под эту базу:

ekzorchik@srv-serv:~$ sudo apt-get install mysql-server -y

New password for the MySQL «root» user: 712mbddr@

Repeat password for the MySQL «root» user: 712mbddr@

ekzorchik@srv-serv:~$ mysql -u root -p712mbddr@;

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 42

Server version: 5.5.41-0ubuntu0.12.04.1 (Ubuntu)

mysql> create database guacamole;

Query OK, 1 row affected (0.00 sec)

mysql> create user ‘guacamole’@’localhost’ identified by ‘password’;

Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges on guacamole.* to ‘guacamole’@’localhost’;

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> quit;

Bye

ekzorchik@srv-serv:~$ sudo service mysql restart

Загружаем схему в созданную базу:

ekzorchik@srv-serv:~$ cd guacamole-auth-mysql-0.8.0/schema/

ekzorchik@srv-serv:~/guacamole-auth-mysql-0.8.0/schema$ cat ./*.sql | mysql -u root -p guacamole

Enter password:712mbbddr@ (указываем пароль от учетной записи root для mysql когда устанавливали пакет mysql-server)

ekzorchik@srv-serv:~/guacamole-auth-mysql-0.8.0/schema$ cd ~/

Вношу изменения в настройки Guacamole для подключения к созданной базе данных:

ekzorchik@srv-serv:~$ sudo nano /etc/guacamole/guacamole.properties

вместо:

auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider

указываю:

auth-provider: net.sourceforge.

#basic-user-mapping: /etc/guacamole/user-mapping.xml

и указываю данные для подключения к базе:

mysql-hostname: localhost

mysql-port: 3306

mysql-database: guacamole

mysql-username: guacamole

mysql-password: password

Сохраняю внесенные изменения.

ekzorchik@srv-serv:~$ sudo mkdir /usr/share/tomcat6/.guacamole/

ekzorchik@srv-serv:~$ sudo ln -sf /etc/guacamole/guacamole.properties /usr/share/tomcat6/.guacamole/

Теперь перезапускаю сервисы:

ekzorchik@srv-serv:~$ sudo service apache2 restart

* Restarting web server apache2 … waiting [ OK ]

ekzorchik@srv-serv:~$ sudo service tomcat6 restart

* Stopping Tomcat servlet engine tomcat6 [ OK ]

* Starting Tomcat servlet engine tomcat6

ekzorchik@srv-serv:~$ sudo service guacd restart

и пробую зайти на Webинтерфейс, но теперь аутентификационные данные по умолчанию следующие:

The default login information is:

  • Username: guacadmin
  • Password: guacadmin

но у меня аутентификация почему-то не проходит, вываливается в ошибку: Invalid login

Не проходит аутентификация в Guacamole

Все просто я забыл добавить путь к библиотекам на подгрузку:

ekzorchik@srv-serv:~$ sudo nano /etc/guacamole/guacamole.properties

guacd-hostname: localhost

guacd-port: 4822

lib-directory: /var/lib/guacamole/classpath

Сохраняем внесенные изменения:

ekzorchik@srv-serv:~$ sudo service apache2 restart

ekzorchik@srv-serv:~$ sudo service tomcat6 restart

ekzorchik@srv-serv:~$ sudo service guacd stop

ekzorchik@srv-serv:~$ sudo service guacd start

guacd[10536]: INFO: Guacamole proxy daemon (guacd) version 0.7.0

guacd[10536]: INFO: Successfully bound socket to host 127.0.0.1, port 4822

guacd[10536]: INFO: Exiting and passing control to PID 10537

guacd[10537]: INFO: Exiting and passing control to PID 10538

Теперь захожу на адрес:

http://192.168.1.50/ — меня перенаправляет на: http://192.168.1.50:8080/guacamole/ — теперь авторизация проходит успешно:

  • Username:guacadmin
  • Password: guacadmin

И передо мной точно такой же интерфейс за исключение в правом верхнем углу кнопки Manage посредством которой можно через Webдобавлять подключения к обслуживаемым системами подключаемым через данный Webинтерфейс: RDP,SSH,VNC

Аутентификация в Guacamole через mysql успешно прошла

Нажимаю на кнопку Manage и теперь у меня в распоряжении есть дополнительные настройки в частности, можно создать дополнительных пользователей которым будет разрешено на эту систему с Webинтерфейсом управления подключаться а также уже через Webинтерфейс добавлять соединения с удаленными системами.

К примеру создаю подключение к Windows 7 по RDP

Где написано "Add connection" ввожу имя системы W7 после нажимаю Add и заполняю поля описания для удаленного подключения к ней:

Hostname: 192.168.1.49

Port: 3389

Username:ekzorchik

Password:712mbddr@

Создаю профиль удаленного подключения к системе с занесением всех данных в базу данных

Что еще интересного это отображении истории если у Вас к примеру открыто в браузере море вкладок

Интерфейс управления к системам хранит историю подключений

Работает. Вот так я показал как усовершенствовать использование guacamole на использование централизованного хранения настроек подключения к системам посредством базы данных. Только одно но конечно же присутствует, аутентификационные данные хранимые в базе видны в чистом не зашиврованном виде. Поэтому стоит со всей осторожностью подойти к настройке безопасности системы где развернуто приложения guacamole чтобы используемая база данных не в коем случае не утекла куда-либо. Если только Вы управляете система и только для себя развернули данное программное обеспечение то Вы понимаете риск, а если для нескольких участников администрирования то Вам уже стоит думать на этот счет, я же к примеру использую только для себя, а не для кого либо. Вообще как альтернативу могу посоветовать приложение remmina (обязательно на системе .5 Desktop,Opensuse 13.2 Отключите в настройках использование вкладок, проверено если этого не сделать, то приложение завершается,рушится). На этом считаю свою заметку завершенной и прощаюсь, до встречи с уважением автор блога — ekzorchik.

Leave a Reply

Ваш e-mail не будет опубликован. Обязательные поля помечены *

пять × 4 =