Autenticació d' Apache Guacamole contra Directori Actiu

Ja hem parlat de les meravelles d'Apache Guacamole en alguna altra ocasió, aquesta plataforma de connexió segura al nostre entorn via RDP, SSH, VNC… ideal per a empreses petites, labs o formacions. Avui veurem com integrar-lo en Directori Actiu i publicar determinats recursos a diferents usuaris!

El que s'ha dit, en en aquest post anterior, ja vam veure com instal·lar Apache Guacamole, i com assegurar-lo després d'un proxy invers. Aquest producte l'utilitzarem per publicar a Internet de manera segura qualsevol escriptori remot mitjançant RDP, igual que VNC o SSH entre altres. Podrem permetre de manera segura la connexió remota dels nostres usuaris a l'organització, permetrem que es connectin bé als seus llocs tradicionals, o per exemple contra un pool de màquines que ofereixin un escriptori, com pot ser alguna cosa de VDI o uns servidors d'Escriptori Remot.

La idea d'aquest post serà permetre que certs usuaris del Directori Actiu es puguin connectar amb el seu propi usuari i així no utilitzar usuaris locals, cadascun amb una contrasenya diferent… I un cop connectat Apache Guacamole amb l'AD, ja podrem crear les connexions que volem publicar després als nostres usuaris.

Primer instal·lem l'extensió per a l'autenticació LDAP :

wget http://apache.mirror.iphh.net/guacamole/1.3.0/binary/guacamole-auth-ldap-1.3.0.tar.gztar xvzf guacamole-auth-ldap-1.3.0.tar.gzsudo 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=dominio,DC=local
ldap-usuari-attribute: samAccountName
ldap-config-base-dn: OU=ruta, DC=dominio,DC=local
ldap-encryption-method: none # O seguro: ssl, starttls
ldap-search-bind-dn:cn=usuario_LDAP,OU=ruta, DC=dominio,DC=local
ldap-search-bind-password:CONTRASENYA

Y reiniciamos Tomcat:

sudo systemctl restart tomcat9

Ahora tenemos 2 opcions, o tocar y extender el esquema de nuestro AD para afegir uns atributes als usuaris, que com que no… o montar un MySQL en el propi equip de Guacamole, on se almacenarán en una BD els usuaris i les seves assignacions. Verdad que està última da menys miedo… Así que instal·lamos 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

I el dit, creamos la base de datos, el usuario y damos los permisos correspondientes:

CREATE DATABASE bd_guacamole;
CREATE USER 'USUARIO_GUACAMOLE'@'localhost' IDENTIFIED BY 'PASSWORD';
GRANT SELECT,INSERT,UPDATE,DELETE ON bd_guacamole.* to 'USUARIO_GUACAMOLE'@'localhost';
FLUSH PRIVILEGES;

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 instal·lamos:

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 our Ubuntu, en el meu cas un 20.04 (https://dev.mysql.com/downloads/file/?id=504646) y lo instalamos:

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 el nostre querido fichero de configuración de Guacamole /etc/guacamole/guacamole.properties i afegimos al final:

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

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

sudo systemctl restart tomcat9 guacd

Entrem a Guacamole com a guacadmin/guacadmin i li canviem la contrasenya, però, Compte!

Hem de crear al nostre Directori Actiu (dins del nostre Base DN) un usuari anomenat guacadmin, i NO ha de tenir la mateixa contrasenya que aquí. ja que amb el que ens hem connectat és l'usuari guacadmin de MySQL i l'altre serà per a LDAP. Ja que podrem iniciar sessió amb usuaris LDAP i usuaris MySQL

I si tornem a iniciar sessió a Guacamole amb guacadmin i la contrasenya de l'AD podrem veure tots els usuaris del Base DN des de “Configuració” > “Usuaris”.

Doncs el següent ja serà crear les diferents connexions que vulguem, després ja les assignarem, des de “Configuració” > “Connexions” > “Nova Connexió”

Així que li donem un nom a la connexió, triem el protocol, recordar que pot ser RDP per a Escriptori Remot, SSH, Telnet, VNC o Kubernetes,

Més avall, en els paràmetres, indiquem l'adreça IP local de la màquina de destinació, podríem pré-emplenar els camps d'usuari i contrasenya, o deixar-los buits perquè l'usuari els escrigui, o també podem agafar l'usuari de la sessió amb què es va connectar i indicar-ho mitjançant aquestes dues variables:

${GUAC_USERNAME}
${GUAC_PASSWORD}

I res, després, ja en la configuració de cada usuari, podrem assignar-li les connexions de manera individual.

Quan cada usuari es connecti amb el seu compte, doncs si només li assignem una 1 connexió, es connectarà automàticament a aquest equip. I si li hem assignat diverses, en connectar-se podrà triar a quina sessió connectar-se 🙂

En un post següent veremos com configurar un doble factor d'autenticació per assegurar encara més els accessos. Com sempre, esperant que els seus siguin interessants els posts, abraçades!

Posts recomanats

Autor

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, no dubtis a contactar amb mi, us intentareu ajudar sempre que pugui, compartir és viure ;) . Gaudir dels documents!!!