Instalando Apache Guacamole
En este post vamos a ver la instalación de Apache Guacamole, una interesante herramienta basada en software libre que nos permitirá conectar a equipos de una manera segura, gracias a HTML5 y HTTPS podremos acceder a equipos con RDP, VNC-ra, SSH o TELNET.
Esan dut, Apa Guacamole-ren instalazioa horrela ikusiko dugu, Eskerrak eman nahi dizkiote erabiltzaileei bere taldeetara sartzeko. Guacamole modu atebide gisa erabiltzen du, Ya que bakarrik publikatzen du zerbitzua HTTPS podrá encapsular los protocolos aurretik komentarioak, erabiltzaileek lan egin ahal izango dute forma berdinean HTML5 integrando su talde remoto nabigatzailean. Al final del post veremos cómo securizar un poco más el ingurune mediante un proxy alderantziz. Es cierto que with Apache Guacamole a parte de permitir que se conektatu a a escritorio, podremos publicar aplicaciones, así integrar la autenticación de Windows o meter un 2FA (doble factor de autenticación).
En este post estoy trabajando con un Ubuntu 20.04, beraz, hasiko gara eguneratutako eta hasteko prest dagoen makinaren instalazioarekin! Betiko moduan, menpekotasunekin hasiko gara, lehenik eta behin instalatuko ditugu:
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
Tomcat instalatu behar dugu:
sudo apt install tomcat9 tomcat9-admin tomcat9-common tomcat9-user -y
Es hora de descargar Guacamole, empezamos con el componente Servidor, vemos qué versión es la más reciente, deskargatzen dugu, compilamos y lo instalamos:
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
Ejecutamos ldconfig para crear vínculos y caché, además de abrir en el firewall el puerto 8080tcp:
sudo ldconfig sudo ufw allow 8080/tcp
A continuación instalaremos el Cliente de Guacamole que descargaremos de la misma web, así como el fichero WAR. Los descomprimimos y procedemos a su instalación:
cd .. tar -xzf guacamole-client-1.2.0.tar.gz cd guacamole-client-1.2.0/ mvn package sudo mkdir /etc/guacamole sudo cp guacamole-1.2.0.war /etc/guacamole sudo ln -s /etc/guacamole/guacamole.war /var/lib/tomcat9/webapps/
Comenzamos ahora lo que es la configuración, creamos el directorio para las extensiones y librerías de Guacamole, y añadimos la siguiente variable del entorno:
sudo mkdir /etc/guacamole/{extensions,lib}
sudo echo "GUACAMOLE_HOME=/etc/guacamole" >> /etc/default/tomcat9
Creamos el fichero de configuración de Guacamoles (/etc/guacamole/guacamole.properties) para que conecte con guacd y añadimos:
guacd-hostname: localhost guacd-port: 4822 user-mapping: /etc/guacamole/user-mapping.xml auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider
Enlazamos el directorio de configuración de Guacamole al servlet de Tomcat:
sudo ln -s /etc/guacamole /usr/share/tomcat9/.guacamole
Jarraitzean aurretik, necesitamos generar el hash MD5 para la contraseña que vamos a querer usar, fácilmente lo sacaremos ejecutando:
echo -n CONTRASEÑA | openssl md5
(stdin)= d287200e83ee04f67294de90dd72f9c6
Orain Apache Guacamole-ra sarrera zehaztuko ditugun fitxategia editatu ahal izango dugu, hau da, tokiko erabiltzaileak erabiltzen baditugu, hemen defini ditzakegu baita aurkezten dizkiegun baliabideak ere, adibidea: '/etc/guacamole/user-mapping.xml'’ garatuko duguna:
<user-mapping>
<!-- Erabiltzailearen autentifikazioa eta konfigurazio informazioa -->
<!-- Pasahitza hashatzeko md5 erabiltzen duen erabiltzailea
guacadmin erabiltzailea eta honen md5 hashatutako pasahitza behean Guacamole Web UI-ra sartzeko erabiltzen da -->
<baimendu
erabiltzaile-izena="guacadmin"
password="d287200e83ee04f67294de90dd72f9c6"
kodetzea="md5">
<!-- Lehenengo baimendutako urrutiko konexioa -->
<konexioaren izena="Servidor Centos">
<protokoloa>ssh</protokoloa>
<param izena="hostname">192.168.1.46</param>
<param izena="port">22</param>
</konexioa>
<!-- Bigarren baimendutako urrutiko konexioa -->
<konexioaren izena="Windows 2019">
<protokoloa>rdp</protokoloa>
<param izena="hostname">192.168.1.100</param>
<param izena="port">3389</param>
<param izena="username">administradorea</param>
<param izena="ziurtagirik ez kontuan hartu">true</param>
</konexioa>
</baimendu>
</user-mapping>
Y, baita ere, sistemaren instalazioa eta konfigurazio aldaketak egin ondoren zerbitzuak berrabiaraztea funtsezkoa izango da, eta baita automatikoki sistema martxan jar daitezen ahalbidetzea ere:
sudo systemctl restart tomcat9 sudo systemctl enable tomcat9 sudo systemctl restart guacd sudo systemctl enable guacd
Eta ordua iritsi da probatzeko! ¿no?
Web nabigatzaile baten bidez sartuko gara, http helbidera zuzenduz://DIRECCION_IP_GUACAMOLE:8080/guacamole eta aurreko fitxategian definitutako erabiltzaile eta pasahitzaren arabera.
Hau izango litzateke interfazea lehen aldiz ikusiko bagenu bezala, non argitaratu dizkiguten baliabideak izango ditugun. Eta azkenaldian edozein ordenagailurekin konektatu bagara, goiko aldean ikusiko dugu azterketa azkar batekin.
![]() |
![]() |
Eta edozein konexioan klik eginez, nabigatzailean integratuta RDP konexioa irekiko digu, edo VNC, edo SSH, edo Telnet… Hemen uzten dizuet esteka hau guztia eskuliburu eta gida ofizialarekin, zure beharrizanetara egokitzeko, app bat, LDAP bidezko autentifikazioa, OTP/Token…
Oso ona, ¿no? Ezkerra orain seguritatea da, hau HTTP delako, así que al menos habrá que meterle un proxy inverso, y también que vaya por SSL…
Habilitando Reverse Proxy con Apache
Onena, pues si queremos darle una capa más de seguridad, deberemos instalar apache en otra máquina (o en la misma…) para que nos haga de proxy inverso:
sudo apt-get install apache2
Habilitamos los siguientes modules de 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
Y editamos el fichero predeterminado de SSL (/etc/apache2/sites-available/default-ssl.conf), al que tendremos que indicar nuestros certificados del sitio, así como la URL de nuestro Guacamole, quedando algo como:
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/bujarra.crt
SSLCertificateKeyFile /etc/apache2/ssl/bujarra.key
SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
<Location /guacamole/>
Order allow,deny
Allow from all
ProxyPass http://DIRECCION_IP_GUACAMOLE:8080/guacamole/ flushpackets=on
ProxyPassReverse http://DIRECCION_IP_GUACAMOLE:8080/guacamole/
</Location>
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
</IfModule>
Reiniciamos apache e indicamos que inicie también cada vez que arranque la máquina con:
sudo systemctl restart apache2 sudo systemctl enable apache2
¡Y no quedaría más que probar! Abrimos un navegador contra: https://DIRECCION_IP_PROXY/guacamole/ y debería estar algo más segura nuestro despliegue.
Como siempre esperando que os puedan resultar interesantes, pero este tipo de soluciones vienen muy bien a las pequeñas empresas, micro pymes, evitando que puedan publicar RDP a internet directamente. Soluzio mota honekin Interneteko atari bat irekiko dugu bakarrik, 443tcp, gainerakoa itxita. Erraza eta azkarra, Momentu batean tresna izango dugu baliabiderik ez duten enpresetan telelana ahalbidetzeko, ikastegiak, colegios…
Muxu bat!











































