
Confronto tra Apache Guacamole e autenticazione Active Directory
Abbiamo già parlato delle meraviglie dell'Apache Guacamole in qualche altra occasione, questa piattaforma per una connessione sicura al nostro ambiente tramite RDP, Ssh, VNC… Ideale per le piccole imprese, laboratori o corsi di formazione. Oggi vedremo come integrarlo in Active Directory e pubblicare determinate risorse per utenti diversi!
Cosa ho detto, in Questo post precedente, abbiamo già visto come installare Apache Guacamole, e come proteggerlo dietro un proxy inverso. Utilizzeremo questo prodotto per pubblicare in modo sicuro qualsiasi desktop remoto su Internet utilizzando RDP, così come VNC o SSH tra gli altri. Saremo in grado di consentire in modo sicuro la connessione remota dei nostri utenti all'organizzazione, Permetteremo loro di connettersi bene alle loro posizioni tradizionali, o ad esempio contro un pool di macchine che offrono un desktop, come alcuni server VDI o Desktop remoto.
L'idea di questo post sarà quella di consentire ad alcuni utenti di Active Directory di connettersi con il proprio utente e quindi di non utilizzare utenti locali, Ognuno con una password diversa… E una volta che Apache Guacamole è connesso all'AD, Saremo in grado di creare le connessioni che vogliamo pubblicare successivamente ai nostri utenti.
Per prima cosa installiamo l'estensione per l'autenticazione 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/
Modifichiamo e aggiungiamo nel file di configurazione di Apache Guacamole /etc/guacamole/guacamole.properties la configurazione della connessione ad Active Directory.
guacd-hostname: localhost guacd-port: 4822 #mappatura utente: /ecc/guacamole/fornitore di user-mapping.xml #auth: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider auth-provider: net.sourceforge.guacamole.net.auth.ldap.LDAPAuthenticationProvider ldap-hostname: DIRECCIÓN_IP_CONTROLADOR_DE_DOMINIO porta LDAP: 389 # O sicuro: 636 ldap-utente-base-dn: OU=percorso,DC=dominio,DC=attributo nome utente ldap locale: samAccountName ldap-config-base-dn: OU=percorso,DC=dominio,DC=metodo di crittografia ldap locale: nessuno # O sicuro: Certificato SSL, starttls ldap-search-bind-dn:cn=usuario_LDAP,OU=percorso,DC=dominio,DC=local ldap-search-bind-password:PAROLA D’ORDINE
E riavviamo Tomcat:
sudo systemctl riavvia tomcat9
Ora abbiamo 2 Opzioni, oppure tocca ed estendi il nostro schema AD per aggiungere attributi agli utenti, Che vuoi dire… o l'impostazione di un MySQL sull'apparecchiatura Guacamole stessa, dove gli utenti e le loro assegnazioni saranno memorizzati in un database. È vero che quest'ultimo fa meno paura… Quindi abbiamo installato MariaDB:
sudo apt-get install mariadb-server mariadb-client
Imposta il fuso orario su MariaDB modificando il file /etc/mysql/mariadb.conf.d/50-server.cnf
[Mysqld] ... default-time-zone='+01:00' ...
È il momento di creare il database e l'utente per Guacamole, per prima cosa ci colleghiamo a MySQL:
sudo mysql -uroot
E quello che ho detto, Creiamo il database, l'utente e dare le autorizzazioni corrispondenti:
CREA DATABASE bd_guacamole; CREATE USER 'USUARIO_GUACAMOLE'@'localhost' IDENTIFIED BY 'CONTRASEÑA'; GRANT SELECT,INSERIRE,AGGIORNARE,DELETE ON bd_guacamole.* to 'USUARIO_GUACAMOLE'@'localhost'; PRIVILEGI DI SCARICO;
Per poter utilizzare l'autenticazione MySQL, Per prima cosa scarichiamo la seguente estensione https://apache.org/dyn/closer.lua/guacamole/1.3.0/binary/guacamole-auth-jdbc-1.3.0.tar.gz?action=download lo scarichiamo e lo installiamo:
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/
Scarichiamo il connettore https://dev.mysql.com/downloads/connector/j/ per il nostro Ubuntu, nel mio caso un 20.04 (https://dev.mysql.com/downloads/file/?id=504646) e lo installiamo:
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/.
Creiamo lo schema DB:
gatto guacamole-auth-jdbc-1.3.0/mysql/schema/*.sql | sudo mysql -uroot bd_guacamole
Modifichiamo il nostro amato file di configurazione Guacamole /etc/guacamole/guacamole.properties e aggiungiamo alla fine:
nome-host mysql: localhost porta mysql:3306 database mysql: bd_guacamole nomeutente-mysql: USUARIO_GUACAMOLE mysql-password: PAROLA D’ORDINE
E abbiamo riavviato i servizi Tomcat e Guacd per ricaricare le modifiche precedenti:
sudo systemctl riavvia tomcat9 guacd
Inseriamo Guacamole come guacadmin/guacadmin e cambiamo la password, ma, occhio!
Dobbiamo creare nella nostra Active Directory (all'interno della nostra Base DN) Un utente di nome guacadmin, e NON deve avere la stessa password di cui trattasi. poiché quello con cui abbiamo effettuato l'accesso è l'utente guacadmin di MySQL e l'altro sarà per LDAP. Dal momento che saremo in grado di accedere con gli utenti LDAP e gli utenti MySQL
E se accediamo nuovamente a Guacamole con guacadmin e la password AD saremo in grado di vedere tutti gli utenti della Base DN da “Configurazione” > “Gli utenti”.
Bene, la prossima cosa sarà creare le diverse connessioni che vogliamo, poi li assegneremo, poiché “Configurazione” > “Connessioni” > “Nuova connessione”
Quindi diamo un nome alla connessione, Scegliamo il protocollo, ricorda che può essere RDP per Desktop remoto, Ssh, Telnet, VNC o Kubernetes,
Più in basso, nei parametri, indicheremo l'indirizzo IP locale della macchina di destinazione, Potremmo precompilare i campi nome utente e password, o lasciarli vuoti per consentire all'utente di digitare, Oppure possiamo anche prendere l'utente della sessione con cui ha effettuato l'accesso e indicarlo utilizzando queste due variabili:
${GUAC_USERNAME}
${GUAC_PASSWORD}
E niente, Quindi nella configurazione di ogni utente saremo in grado di assegnare le connessioni individualmente.
Quando ogni utente accede con il proprio account, perché se lo assegniamo solo 1 connessione, Verrai automaticamente connesso a quella squadra. E se ne abbiamo assegnati diversi, Quando effettui l'accesso, sarà in grado di scegliere a quale sessione connettersi 🙂
In un prossimo post vedremo come configurare un'autenticazione a due fattori per rendere ulteriormente sicuro l'accesso. Come al solito, Sperando che tu trovi i post interessanti, Abbracci!