
Installazione di Apache Guacamole
In questo post vedremo l'installazione di Apache Guacamole, Un interessante strumento basato su software gratuito che ci permetterà di connetterci ai computer in modo sicuro, grazie a HTML5 e HTTPS saremo in grado di accedere ai computer con RDP, VNC, SSH o TELNET.
Cosa ho detto, in questo post vedremo cos'è l'installazione di Apache Guacamole, che grazie alla sua interfaccia web permetterà agli utenti di accedere ai propri computer. L'idea è quella di utilizzare il Guacamole come porta d'accesso, poiché solo pubblicando il servizio HTTPS sarà in grado di incapsulare i protocolli sopra citati, gli utenti saranno in grado di lavorare allo stesso modo attraverso HTML5 integrando il loro computer remoto nel browser. Alla fine del post vedremo come proteggere un po' di più l'ambiente utilizzando un proxy inverso. È vero che con Apache Guacamole oltre a consentire loro di connettersi ai desktop, Potremmo pubblicare le domande, oltre a integrare l'autenticazione di Windows o introdurre 2FA (Autenticazione a due fattori).
In questo post sto lavorando con un Ubuntu 20.04, Quindi iniziamo con l'installazione su una macchina aggiornata e pronta per iniziare! Come al solito, Iniziamo con le dipendenze, Li esortiamo per primi:
Sudo apt-get install libcairo2-dev libjpeg-turbo8-dev libjpeg-dev libpng-dev libtool-bin libossp-uuid-dev make maven -y sudo apt-get install libavcodec-dev libavformat-dev libavutil-dev libswscale-dev freerdp2-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvncserver-dev libwebsockets-dev libpulse-dev -y
Dobbiamo installare Tomcat:
sudo apt install tomcat9 tomcat9-admin tomcat9-common tomcat9-user -y
È ora di scaricare Guacamole, iniziamo con il componente Server, Vedere quale versione è la più recente, Lo scarichiamo, Lo compiliamo e lo installiamo:
tar -xzf guacamole-server-1.2.0.tar.gz cd guacamole-server-1.2.0/ ./configure --with-init-dir=/etc/init.d make sudo make install
Eseguiamo ldconfig per creare collegamenti e cache, Oltre ad aprire la porta 8080TCP nel firewall:
sudo LDCONFIG sudo ufw allow 8080/TCP
Quindi installeremo il client Guacamole che scaricheremo dallo stesso sito web, così come il file WAR. Li decomprimiamo e procediamo con l'installazione:
CD .. tar -xzf guacamole-client-1.2.0.tar.gz cd guacamole-client-1.2.0/ pacchetto mvn sudo mkdir /etc/guacamole sudo cp guacamole-1.2.0.war /etc/guacamole sudo ln -s /etc/guacamole/guacamole.war /var/lib/tomcat9/webapps/
Iniziamo ora qual è la configurazione, abbiamo creato la directory per le estensioni e le librerie Guacamole, e aggiungi la seguente variabile d'ambiente:
sudo mkdir /etc/guacamole/{Estensioni,Movimento di liberazione} eco del sudore "GUACAMOLE_HOME=/ecc/guacamole" >> /ecc/predefinito/tomcat9
Creiamo il file di configurazione Guacamole (/ecc/guacamole/guacamole.properties) per connettersi con guacd e aggiungiamo:
guacd-hostname: localhost guacd-port: 4822 mappatura utente: /etc/guacamole/user-mapping.xml auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider
Colleghiamo la directory di configurazione di Guacamole al servlet Tomcat:
sudo ln -s /etc/guacamole /usr/share/tomcat9/.guacamole
Prima di andare avanti, dobbiamo generare l'hash MD5 per la password che andremo ad utilizzare, Lo tireremo fuori facilmente eseguendo:
echo -n PAROLA UTENTE | OpenSSL MD5 (Puzzare)= d287200e83ee04f67294de90dd72f9c6
Saremo ora in grado di modificare il file in cui definiremo gli accessi ad Apache Guacamole, Questo è, Se utilizziamo utenti locali, possiamo definirli qui così come le risorse che presentiamo loro, Esempio di '/etc/guacamole/user-mapping.xml’ che dovremo sviluppare:
<mappatura utente> <!-- Informazioni sull'autenticazione e sulla configurazione per utente --> <!-- Un utente che utilizza md5 per eseguire l'hashing della password guacadmin user e la sua password con hash md5 di seguito viene utilizzato per accedere all'interfaccia utente Web di Guacamole:> <autorizza nome utente="guacadmin" password="D287200E83EE04F67294DE90DD72F9C6" codifica="metà 5"> <!-- Prima connessione remota autorizzata --> <nome connessione="Centos Server"> <Protocollo>zitto</Protocollo> <nome param="nome host">192.168.1.46</Param> <nome param="porto">22</Param> </connessione> <!-- Seconda connessione remota autorizzata --> <nome connessione="Finestre 2019"> <Protocollo>Rdp</Protocollo> <nome param="nome host">192.168.1.100</Param> <nome param="porto">3389</Param> <nome param="nome utente">amministratore</Param> <nome param="ignore-cert">Vero</Param> </connessione> </autorizzare> </mappatura utente>
E, A proposito, che dopo aver apportato tutte le modifiche all'installazione e alla configurazione sarà indispensabile riavviare i servizi, oltre a consentire loro di avviarsi automaticamente con il sistema:
sudo systemctl riavvia tomcat9 sudo systemctl abilita tomcat9 sudo systemctl riavvia guacd sudo systemctl abilita guacd
Ed è ora di provarlo! No?
Accederemo tramite un browser web, Puntamento su HTTP://DIRECCION_IP_GUACAMOLE:8080/guacamole e secondo il nome utente e la password definiti nel file precedente.
Questa sarebbe l'interfaccia la prima volta che l'abbiamo vista, dove avremo le risorse che ci sono state pubblicate. E se ci siamo collegati di recente a un computer lo avremo in cima a una rapida occhiata.
![]() |
![]() |
E quando fai clic su qualsiasi connessione, si aprirà la connessione RDP integrata nel browser, o VNC, o SSH, o Telnet… Vi lascio questo link con tutto il manuale e la guida ufficiale per poterlo configurare secondo le vostre esigenze, Un'app, autenticazione con LDAP, OTP/Gettone…
Uno spasso, No? il male per ora è la sicurezza poiché questo è HTTP, Quindi almeno dovremo metterci dentro un proxy inverso, e anche che passi attraverso SSL…
Abilitazione del proxy inverso con Apache
Bene, Bene, se vogliamo dargli un ulteriore livello di sicurezza, Dovremo installare Apache su un'altra macchina (o nello stesso…) per fungere da proxy inverso:
sudo apt-get install apache2
Abilitiamo i seguenti moduli apache:
Sudo A2ensite Default-SSL sudo A2Enmod SSL sudo A2Enmod proxy sudo A2Enmod proxy_http sudo A2Enmod proxy_balancer sudo A2Enmod lbmethod_byrequests sudo SystemCTL Restart Apache2
E modifichiamo il file SSL predefinito (/ecc/apache2/siti-disponibili/default-ssl.conf), a cui dovremo indicare i nostri certificati del sito, così come l'URL del nostro Guacamole, lasciando qualcosa come:
<IfModule mod_ssl.c> <VirtualHost _predefinito_:443> ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combinato SSLEngine su SSLCertificateFile /etc/apache2/ssl/bujarra.crt SSLCertificateKeyFile /etc/apache2/ssl/bujarra.key SSLProxyEngine su SSLProxyVerify none SSLProxyCheckPeerCN off SSLProxyCheckPeerName off SSLProxyCheckPeerExpire off <Ubicazione /guacamole/> Consenti ordine,deny Allow from all ProxyPass http://DIRECCION_IP_GUACAMOLE:8080/guacamole/ flushpackets=su ProxyPassReverse http://DIRECCION_IP_GUACAMOLE:8080/Guacamole/ </Ubicazione> SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key <Corrispondenza dei file "\.(CGI|shtml|Phtml|php)$"> SSLOptions +StdEnvVars </Corrispondenza dei file> <Elenco /usr/lib/cgi-bin> SSLOptions +StdEnvVars </Directory> </VirtualHost> </IfModule>
Riavviamo Apache e gli indichiamo di avviarsi ogni volta che avvio la macchina con:
sudo systemctl restart apache2 sudo systemctl enable apache2
E non ci resta altro da fare che provare! Apriamo un browser contro: https://DIRECCION_IP_PROXY/guacamole/ e il nostro dispiegamento dovrebbe essere un po' più sicuro.
Come sempre sperando che li troviate interessanti, Ma questi tipi di soluzioni sono molto utili per le piccole imprese, Micro PMI, impedendo loro di pubblicare direttamente RDP su Internet. Con questo tipo di soluzione apriamo un'unica porta verso Internet, Il 443TCP, Il resto chiuso. Facile e veloce, A un certo punto abbiamo uno strumento per consentire il telelavoro nelle aziende prive di risorse, Centri Studi, Collegi…
Un abbraccio!