Guacamole - это HTTP шлюз для подключения к RDP и VNC консолям. Оно работает.
У Guacamole наконец-то появились стабильные сборки :)
apt-get update && apt-get install apache2 php5 libapache2-mod-php5 tomcat6 libcairo2 libpng12-0 libvncserver0 libfreerdp1 libfreerdp-plugins-standard
Скачаваем отсюда:
http://guac-dev.org/
http://sourceforge.net/projects/guacamole/files/current/binary/ubuntu-12.04-i386/guacamole-0.6.4-ubuntu-12.04-i386.tar.gz
http://sourceforge.net/projects/guacamole/files/current/binary/ubuntu-12.04-amd64/guacamole-0.6.4-ubuntu-12.04-amd64.tar.gz
Распаковываем и ставим все:
tar -xvf guacamole-0.6.4-ubuntu-12.04-i386.tar.gz cd guacamole-0.6.4-ubuntu-12.04-i386 dpkg -i ./*
Внимательно следим, чтобы не было ошибок к конце!
Все… Оно запустилось…
Логи Вываливаются в файл /var/log/syslog и в папку /var/log/tomcat6/
Если вдруг в /var/log/syslog написано что
Could not write PID file
то делаем так:
mkdir /var/run/guacd chown guacd:guacd /var/run/guacd service guacd restart
Настройка
nano /etc/guacamole/user-mapping.xml
VNC Plugin Parameters <protocol>vnc</protocol> hostname port password read-only swap-red-blue encodings RDP Plugin Parameters <protocol>rdp</protocol> hostname #- обязательный port #- обязательный domain username password initial-program color-depth width height
Если надо несколько соединений для одного пользователя, то есть тег <connection>
<authorize username="username" password="pass" > <connection name="rdpserver"> <protocol>rdp</protocol> <param name="hostname">rdpserver</param> <param name="port">3389</param> <param name="domain">DOMAIN</param> <param name="username">Username</param> </connection> <connection name="Debian with wine"> <protocol>vnc</protocol> <param name="hostname">vnchost</param> <param name="port">5900</param> <param name="password">vncpassword</param> </connection> </authorize>
Запуск под конкретного юзера
http://<server>:8080/guacamole/?username=USER&password=PASS
Guacamole через nginx reverse proxy
Проксирование через nginx работает при таких вот настройках location:
location /guacamole/ { proxy_buffering off; proxy_pass http://192.168.1.46:8080/guacamole/; }
Аутентификация LDAP
Компиляция и установка guacamole-auth-ldap
apt-get update apt-get install maven git default-jdk git clone git://guacamole.git.sourceforge.net/gitroot/guacamole/guacamole-auth-ldap/ cd guacamole-auth-ldap/ mvn package
В результате в папке ./target должен быть файл guacamole-auth-ldap-0.5.0.jar . Этот файл надо скопировать в папку с библиотеками, указанную в файле /etc/guacamole/guacamole.properties.
mkdir /var/lib/guacamole/lib/ cp ./target/guacamole-auth-ldap-0.5.0.jar /var/lib/guacamole/lib/
Если эта папка не задана, то её надо задать с помощью свойства “lib-directory”.
lib-directory: /var/lib/guacamole/lib
Не рекомендуется складывать библиотеки guacamole в папку /var/lib/tomcat6. При установке guacamole .war файл попадает в папку /var/lib/guacamole , а библиотеки .jar рекомендуется хранить в папке /var/lib/guacamole/lib.
Настройка guacamole-auth-ldap
Для того чтобы пользователи аутентифицировались в домене, в каталог LDAP надо добавить соответствующий класс объектов “guacConfig”.
В папке doc, пакета guacamole-auth-ldap лежат файлы exampleConfigGroup.ldif guacConfigGroup.ldif guacConfigGroup.schema, в которых описаны объекты, необходимые для аутентификации пользователей.
Для создания объектов в схеме предусмотрены файлы guacConfigGroup.ldif и guacConfigGroup.schema.
root@rdp:~/guacamole-auth-ldap/doc# cat guacConfigGroup.ldif dn: cn=guacConfig,cn=schema,cn=config objectClass: olcSchemaConfig cn: guacConfig olcAttributeTypes: {0}( 1.3.6.4822.112 NAME 'protocol' SYNTAX 1.3.6.1.4.1.1466 .115.121.1.15 ) olcAttributeTypes: {1}( 1.3.6.4822.113 NAME 'parameter' SYNTAX 1.3.6.1.4.1.146 6.115.121.1.15 ) olcObjectClasses: {0}( 1.3.6.4822.212 NAME 'guacConfig' DESC 'Guacamole config uration' AUXILIARY MUST protocol MAY parameter )
root@rdp:~/guacamole-auth-ldap/doc# cat guacConfigGroup.schema attributetype ( 1.3.6.4822.112 NAME 'guacConfigProtocol' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) attributetype ( 1.3.6.4822.113 NAME 'guacConfigParameter' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) objectClass ( 1.3.6.4822.212 NAME 'guacConfigGroup' DESC 'Guacamole configuration group' SUP groupofnames MUST protocol MAY parameter )
А пример конфигурации соединения приведен в файле exampleConfigGroup.ldif, который содержит наименование протокола и параметров:
~/guacamole-auth-ldap/doc# cat exampleConfigGroup.ldif dn: cn=Example Config,dc=guac-dev,dc=org objectClass: guacConfigGroup cn: Example Config protocol: vnc parameter: hostname=localhost parameter: port=5900 parameter: password=secret member: cn=user1,dc=example,dc=com member: cn=user2,dc=example,dc=com
Добавление информации из файлов *.ldif на контроллере домена AD
Конфигурирование '''/etc/guacamole/guacamole.properties'''
# Use LDAP authentication auth-provider: net.sourceforge.guacamole.net.auth.ldap.LDAPAuthenticationProvider # Configuration for LDAP connection ldap-hostname: LDAP_SERVER_HOSTNAME ldap-port: 389 # The attribute which uniquely identifies users ldap-username-attribute: uid # The base DN which, when appended to the user identifier attribute, # produces the full DN of the user being authenticated. ldap-user-base-dn: ou=people,dc=example,dc=net # The base DN within which all guacConfig objects can be found. ldap-config-base-dn: dc=example,dc=net
Discussion