Apache Guacamole-Authentifizierung gegen Active Directory

Wir haben bereits bei anderer Gelegenheit über die Wunder von Apache Guacamole gesprochen, diese sichere Verbindungsplattform zu unserer Umgebung über RDP, SSH, VNC… ideal für kleine Unternehmen, Labore oder Formationen. Heute werden wir sehen, wie man es in Active Directory integriert und bestimmte Ressourcen für verschiedene Benutzer veröffentlicht!

ich sagte:, in dieser vorherige Beitrag, Wir haben bereits gesehen, wie man Apache Guacamole installiert, und wie man es nach einem Reverse-Proxy sichert. Wir werden dieses Produkt verwenden, um jeden Remote-Desktop über RDP sicher im Internet zu veröffentlichen, wie VNC oder SSH unter anderem. Wir können die Remote-Verbindung unserer Benutzer mit der Organisation sicher zulassen, wir werden es ihnen ermöglichen, sich gut an ihre traditionellen Positionen anzuschließen, o por ejemplo contra un pool de máquinas que ofrezcan un escritorio, como pueda ser algo de VDI o unos servidores de Escritorio Remoto.

La idea de este post será permitir que ciertos usuarios del Directorio Activo puedan conectarse con su propio usuario y así no utilizar usuarios locales, cada uno con una contraseña distintaY una vez conectado Apache Guacamole con el AD, ya podremos crear las conexiones que queremos publicar luego a nuestros usuarios.

Primero instalamos la extensión para la autenticación LDAP :

wget http://apache.mirror.iphh.net/guacamole/1.3.0/binary/guacamole-auth-ldap-1.3.0.tar.gz
tar xvzf guacamole-auth-ldap-1.3.0.tar.gz
sudo cp ./guacamole-auth-ldap-1.3.0/guacamole-auth-ldap-1.3.0.jar /etc/guacamole/extensions/

Editamos y añadimos en el fichero de configuración de Apache Guacamole /etc/guacamole/guacamole.properties la configuración de conexión a Directorio Activo.

guacd-hostname: localhost
guacd-port: 4822
#user-mapping: /etc/guacamole/user-mapping.xml
#auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider
auth-provider: net.sourceforge.guacamole.net.auth.ldap.LDAPAuthenticationProvider
ldap-hostname: DIRECCIÓN_IP_CONTROLADOR_DE_DOMINIO
ldap-port: 389 # O seguro: 636
ldap-user-base-dn: OU=ruta,DC = domain,DC=local
ldap-username-attribute: samAccountName
ldap-config-base-dn: OU=ruta,DC = domain,DC=local
ldap-encryption-method: keiner # O seguro: ssl, starttls
ldap-search-bind-dn:cn=usuario_LDAP,OU=ruta,DC = domain,DC=local
ldap-search-bind-password:PASSWORT

Und wir starten Tomcat neu:

sudo systemctl restart tomcat9

Ahora tenemos 2 Optionen, o tocar y extender el esquema de nuestro AD para añadir unos atributos a los usuarios, que como que noo montar un MySQL en el propio equipo de Guacamole, donde se almacenarán en una BD los usuarios y sus asignaciones. Verdad que esta última da menos miedoAsí que instalamos MariaDB:

sudo apt-get install mariadb-server mariadb-client

Establecemos la zona horaria en MariaDB editando el fichero /etc/mysql/mariadb.conf.d/50-server.cnf

[mysqld]
...
default-time-zone='+01:00'
...

Es hora de crear la BD y el usuario para Guacamole, primero nos conectamos a MySQL:

sudo mysql -uroot

Und sie sagten:, creamos la base de datos, el usuario y damos los permisos correspondientes:

CREATE DATABASE bd_guacamole;
CREATE USER 'USUARIO_GUACAMOLE'@'localhost' IDENTIFIED BY 'CONTRASEÑA';
GRANT SELECT,INSERT,UPDATE,DELETE ON bd_guacamole.* to 'USUARIO_GUACAMOLE'@'localhost';
FLUSH PRIVILEGIEN;

Para poder utilizar la autenticación con MySQL, primero descargamos la siguiente extensión https://apache.org/dyn/closer.lua/guacamole/1.3.0/binary/guacamole-auth-jdbc-1.3.0.tar.gz?action=download la descargamos y la instalamos:

tar zxfv guacamole-auth-jdbc-1.3.0.tar.gz
sudo cp guacamole-auth-jdbc-1.3.0/mysql/guacamole-auth-jdbc-mysql-1.3.0.jar /etc/guacamole/extensions/

Descargamos el conector https://dev.mysql.com/downloads/connector/j/ para nuestro Ubuntu, in meinem Fall ein 20.04 (https://dev.mysql.com/downloads/file/?id=504646) und installiert:

sudo dpkg -i mysql-connector-java_8.0.25-1ubuntu20.04_all.deb
sudo ln -s /usr/share/java/mysql-connector-java-8.0.25.jar /etc/guacamole/lib/.

Creamos el esquema de la BD:

cat guacamole-auth-jdbc-1.3.0/mysql/schema/*.sql | sudo mysql -uroot bd_guacamole

Editamos nuestro querido fichero de configuración de Guacamole /etc/guacamole/guacamole.properties y añadimos al final:

mysql-hostname: localhost
mysql-port:3306
mysql-database: bd_guacamole
mysql-username: USUARIO_GUACAMOLE
mysql-password: PASSWORT

Y reiniciamos los servicios de Tomcat y Guacd para recargar los cambios anteriores:

sudo systemctl Neustart tomcat9 guacd

Wir geben Guacamole als guacadmin / guacadmin ein und ändern das Passwort, aber, Auge!

Wir müssen in unserem Active Directory erstellen (innerhalb unserer Basis-DN) ein Benutzer namens guacadmin, und es sollte NICHT das gleiche Passwort wie hier haben. da der, mit dem wir uns angemeldet haben, der MySQL-Benutzer guacadmin ist und der andere für LDAP. Da wir uns mit LDAP-Benutzern und MySQL-Benutzern anmelden können

Und wenn wir uns erneut in Guacamole mit guacadmin und dem AD-Passwort einloggen, können wir alle Benutzer des Base DN von sehen „Konfiguration“ > „Benutzer“.

Nun, als nächstes müssen wir die verschiedenen Verbindungen herstellen, die wir wollen, dann werden wir sie zuweisen, von „Konfiguration“ > „Verbindungen“ > „Neue Verbindung“

Also geben wir der Verbindung einen Namen, wir wählen das protokoll, Denken Sie daran, dass es sich um RDP für Remotedesktop handeln könnte, SSH, Telnet, VNC oder Kubernetes,

unten, in den Parametern, wir geben die lokale IP-Adresse des Zielcomputers an, Wir könnten die Felder für Benutzername und Passwort vorab ausfüllen, oder lassen Sie sie leer, damit der Benutzer sie schreiben kann, oder wir können auch den Benutzer der Sitzung, mit der er eingeloggt war, nehmen und ihn anhand dieser beiden Variablen angeben indicate:

${GUAC_USERNAME}
${GUAC_PASSWORD}

und nichts, dann können wir in der Konfiguration jedes Benutzers die Verbindungen individuell zuweisen.

Indem Sie sich einloggen und jeder Benutzer mit seinem Konto, Nun, wenn wir es nur zuweisen 1 Verbindung, Sie werden automatisch gegen dieses Team eingeloggt. Und wenn wir mehrere zugewiesen haben, Beim Verbinden kann er auswählen, mit welcher Sitzung er sich verbinden möchte 🙂

In einem nächsten Beitrag werden wir sehen, wie man einen doppelten Authentifizierungsfaktor konfiguriert, um den Zugriff weiter zu sichern. wie immer, Ich hoffe, die Beiträge sind für dich interessant, Umarmungen!

Hector Herrero
Letzte Artikel von Hector Herrero (Alle anzeigen)