Из предыдущей заметки Вы узнали как использовать браузер и технологию 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.guacamole.net.auth.mysql.MySQLAuthenticationProvider
#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
Все просто я забыл добавить путь к библиотекам на подгрузку:
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
Нажимаю на кнопку Manage и теперь у меня в распоряжении есть дополнительные настройки в частности, можно создать дополнительных пользователей которым будет разрешено на эту систему с Web–интерфейсом управления подключаться а также уже через Web–интерфейс добавлять соединения с удаленными системами.
К примеру создаю подключение к Windows 7 по RDP
Где написано "Add connection"
ввожу имя системы W7 после нажимаю Add и заполняю поля описания для удаленного подключения к ней:
Hostname: 192.168.1.49
Port: 3389
Username:ekzorchik
Password:712mbddr@
Что еще интересного это отображении истории если у Вас к примеру открыто в браузере море вкладок
Работает. Вот так я показал как усовершенствовать использование guacamole на использование централизованного хранения настроек подключения к системам посредством базы данных. Только одно но конечно же присутствует, аутентификационные данные хранимые в базе видны в чистом не зашиврованном виде. Поэтому стоит со всей осторожностью подойти к настройке безопасности системы где развернуто приложения guacamole чтобы используемая база данных не в коем случае не утекла куда-либо. Если только Вы управляете система и только для себя развернули данное программное обеспечение то Вы понимаете риск, а если для нескольких участников администрирования то Вам уже стоит думать на этот счет, я же к примеру использую только для себя, а не для кого либо. Вообще как альтернативу могу посоветовать приложение remmina (обязательно на системе Ubuntu 12.04.5 Desktop,Opensuse 13.2 Отключите в настройках использование вкладок, проверено если этого не сделать, то приложение завершается,рушится). На этом считаю свою заметку завершенной и прощаюсь, до встречи с уважением автор блога — ekzorchik.