Apache Guacamole es una aplicación de escritorio remoto gratuita, de código abierto, basada en la web y sin cliente que admite protocolos estándar como VNC, RDP y SSH. Le permite acceder a PC con Linux y Windows desde un navegador web a través de RDP, SSH o VNC. No tiene cliente, por lo que no necesita instalar ningún complemento o software de cliente. Está hecho de dos componentes Guacamole Server y Guacamole Client. El servidor Guacamole proporciona componentes nativos y del lado del servidor necesarios para conectarse a una PC remota, mientras que el cliente Guacamole es una aplicación web HTML 5 que se utiliza para conectarse a la PC remota.
En este tutorial, le mostraremos cómo instalar el servidor Guacamole en CentOS 8.
Requisitos
- Un servidor que ejecuta CentOS 8.
- Se configura una contraseña de root en el servidor.
Cómo empezar
Primero, deberá instalar algunos paquetes necesarios en su servidor. Puede instalarlos todos con el siguiente comando:
dnf install -y unzip curl make cmake wget gcc zlib-devel compat-openssl10
Después de instalar todos los paquetes necesarios, deberá habilitar el repositorio EPEL, PowerTools y Devel en su sistema. Puede habilitarlos con el siguiente comando:
dnf install epel-release -y
dnf config-manager --set-enabled PowerTools
dnf config-manager --enable Devel
A continuación, instale otras herramientas necesarias con el siguiente comando:
dnf install cairo-devel libuv-devel libjpeg-turbo-devel libjpeg-devel libpng-devel libtool uuid-devel freerdp-devel pango-devel libvncserver-devel pulseaudio-libs-devel openssl-devel libvorbis-devel libwebp-devel libssh2-devel libtheora opus lame-libs
A continuación, deshabilite el repositorio de Devel con el siguiente comando:
dnf config-manager --disable Devel
A continuación, deberá compilar la biblioteca telnet en su sistema.
Primero, descárgalo con el siguiente comando:
curl -s https://api.github.com/repos/seanmiddleditch/libtelnet/releases/latest | grep browser_download_url | cut -d '"' -f 4 | wget -qi -
Una vez descargado, extraiga el archivo descargado con el siguiente comando:
tar -xf libtelnet-*.tar.gz
A continuación, cambie el directorio al directorio extraído y configúrelo con el siguiente comando:
cd libtelnet-*/
./configure
A continuación, instálelo en su sistema con el siguiente comando:
make
make install
Una vez instalado, puede continuar con el siguiente paso.
Instalar Java
Guacamole es un software basado en Java, por lo que Java debe estar instalado en su servidor. Si no está instalado, puede instalarlo con el siguiente comando:
dnf install java-11-openjdk-devel
Una vez instalado, verifique la versión de Java usando el siguiente comando:
java -version
Deberías obtener el siguiente resultado:
openjdk version "11.0.9.1" 2020-11-04 OpenJDK Runtime Environment (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04) OpenJDK 64-Bit Server VM (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)
Instalar Tomcat
Apache Tomcat se usa para servir contenido de cliente de guacamole. Por lo tanto, deberá instalar Tomcat en su servidor.
Primero, cree un usuario y un grupo separados para Tomcat con el siguiente comando:
groupadd --system tomcat
useradd -d /usr/share/tomcat -r -s /bin/false -g tomcat tomcat
A continuación, descargue la última versión de Tomcat con el siguiente comando:
wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.43/bin/apache-tomcat-9.0.43.tar.gz
Una vez que se complete la descarga, extraiga el archivo descargado con el siguiente comando:
tar -xvf apache-tomcat-9.0.43.tar.gz
A continuación, mueva el Tomcat al directorio /usr/share
mv apache-tomcat-9.0.43 /usr/share/tomcat
A continuación, establezca la propiedad adecuada en el directorio de Tomcat:
chown -R tomcat:tomcat /usr/share/tomcat/
Una vez que haya terminado, puede continuar con el siguiente paso.
Crear un archivo de servicio de Systemd para Tomcat
A continuación, deberá crear un archivo de servicio systemd para Tomcat. Puedes crearlo con el siguiente comando:
nano /etc/systemd/system/tomcat.service
Agregue las siguientes líneas:
[Unit] Description=Tomcat Server After=syslog.target network.target [Service] Type=forking User=tomcat Group=tomcat Environment=JAVA_HOME=/usr/lib/jvm/jre Environment='JAVA_OPTS=-Djava.awt.headless=true' Environment=CATALINA_HOME=/usr/share/tomcat Environment=CATALINA_BASE=/usr/share/tomcat Environment=CATALINA_PID=/usr/share/tomcat/temp/tomcat.pid Environment='CATALINA_OPTS=-Xms512M -Xmx1024M' ExecStart=/usr/share/tomcat/bin/catalina.sh start ExecStop=/usr/share/tomcat/bin/catalina.sh stop [Install] WantedBy=multi-user.target
Guarde y cierre el archivo, luego vuelva a cargar el demonio systemd con el siguiente comando:
systemctl daemon-reload
A continuación, inicie el servicio Tomcat y habilítelo para que se inicie al reiniciar el sistema:
systemctl start tomcat
systemctl enable tomcat
También puede verificar el estado de Tomcat con el siguiente comando:
systemctl status tomcat
Deberías obtener el siguiente resultado:
? tomcat.service - Tomcat Server Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: disabled) Active: active (running) since Tue 2021-02-16 09:34:45 EST; 6s ago Process: 26546 ExecStart=/usr/share/tomcat/bin/catalina.sh start (code=exited, status=0/SUCCESS) Main PID: 26551 (java) Tasks: 35 (limit: 12523) Memory: 89.7M CGroup: /system.slice/tomcat.service ??26551 /usr/lib/jvm/jre/bin/java -Djava.util.logging.config.file=/usr/share/tomcat/conf/logging.properties -Djava.util.logging.man> Feb 16 09:34:45 centos8 systemd[1]: Starting Tomcat Server... Feb 16 09:34:45 centos8 systemd[1]: Started Tomcat Server.
Instalar Apache Guacamole
Primero, descarga la última versión de Guacamole con el siguiente comando:
wget https://downloads.apache.org/guacamole/1.3.0/source/guacamole-server-1.3.0.tar.gz
Una vez que se complete la descarga, extraiga el archivo descargado con el siguiente comando:
tar -xvzf guacamole-server-1.3.0.tar.gz
A continuación, cambie el directorio al directorio extraído y configúrelo con el siguiente comando:
cd guacamole-server-1.3.0
./configure --with-init-dir=/etc/init.d
A continuación, instálelo en su sistema con el siguiente comando:
make
make install
ldconfig
A continuación, vuelva a cargar el demonio systemd con el siguiente comando:
systemctl daemon-reload
A continuación, inicie el servicio Guacamole y habilítelo para que se inicie al reiniciar el sistema:
systemctl start guacd
systemctl enable guacd
Puede verificar el estado del Guacamole con el siguiente comando:
systemctl status guacd
Deberías obtener el siguiente resultado:
? guacd.service - LSB: Guacamole proxy daemon Loaded: loaded (/etc/rc.d/init.d/guacd; generated) Active: active (running) since Tue 2021-02-16 09:37:15 EST; 4s ago Docs: man:systemd-sysv-generator(8) Process: 35723 ExecStart=/etc/rc.d/init.d/guacd start (code=exited, status=0/SUCCESS) Tasks: 1 (limit: 12523) Memory: 12.1M CGroup: /system.slice/guacd.service ??35726 /usr/local/sbin/guacd -p /var/run/guacd.pid Feb 16 09:37:15 centos8 systemd[1]: Starting LSB: Guacamole proxy daemon... Feb 16 09:37:15 centos8 guacd[35723]: Starting guacd: guacd[35724]: INFO: Guacamole proxy daemon (guacd) version 1.3.0 started Feb 16 09:37:15 centos8 guacd[35723]: SUCCESS Feb 16 09:37:15 centos8 guacd[35726]: Listening on host 127.0.0.1, port 4822 Feb 16 09:37:15 centos8 systemd[1]: Started LSB: Guacamole proxy daemon.
Instalar Cliente Guacamole
A continuación, cree un directorio para Guacamole y descargue el archivo del cliente Guacamole con el siguiente comando:
mkdir /etc/guacamole
wget https://downloads.apache.org/guacamole/1.3.0/binary/guacamole-1.3.0.war
Una vez descargado, mueva el archivo descargado al directorio /etc/guacamole:
mv guacamole-1.3.0.war /etc/guacamole/guacamole.war
A continuación, cree un enlace simbólico del archivo guacamole.war al directorio /usr/share/tomcat:
ln -s /etc/guacamole/guacamole.war /usr/share/tomcat/webapps/
A continuación, configure el directorio de inicio de Guacamole con el siguiente comando:
echo "GUACAMOLE_HOME=/etc/guacamole" | tee -a /etc/default/tomcat
A continuación, cree un archivo de configuración de Guacamole con el siguiente comando:
nano /etc/guacamole/guacamole.properties
Agregue las siguientes líneas:
guacd-hostname: localhost guacd-port: 4822 user-mapping: /etc/guacamole/user-mapping.xml auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider
Guarde y cierre el archivo y luego cree un enlace simbólico del directorio /etc/guacamole:
ln -s /etc/guacamole /usr/share/tomcat/.guacamole
Configurar Guacamole
A continuación, deberá crear un archivo de mapeo de usuarios de Guacamole para definir el servidor remoto al que desea conectarse desde Guacamole.
Primero, genera una contraseña secreta con el siguiente comando:
echo -n your-password | openssl md5
Debería ver el siguiente resultado:
(stdin)= 0f6e4a1df0cf5ee97c2066953bed21b2
A continuación, cree un archivo user-mapping.xml con el siguiente comando:
nano /etc/guacamole/user-mapping.xml
Agregue los detalles de su servidor remoto Windows y Linux como se muestra a continuación:
<user-mapping> <authorize username="admin" password="0f6e4a1df0cf5ee97c2066953bed21b2" encoding="md5"> <!-- First authorized Remote connection --> <connection name="CentOS 8"> <protocol>ssh</protocol> <param name="hostname">69.87.218.51</param> <param name="port">22</param> </connection> <connection name="Windows Server"> <protocol>rdp</protocol> <param name="hostname">15.185.162.149</param> <param name="port">3389</param> <param name="username">administrator</param> </connection> </authorize> </user-mapping>
Guarde y cierre el archivo, luego reinicie el servicio Guacamole y Tomcat para aplicar los cambios:
systemctl restart tomcat guacd
Una vez que haya terminado, puede continuar con el siguiente paso.
Configurar cortafuegos
A continuación, deberá permitir el puerto 4822 y 8080 a través de un firewall. Puede permitirlos con el siguiente comando:
firewall-cmd --permanent --add-port=4822/tcp
firewall-cmd --permanent --add-port=8080/tcp
A continuación, vuelva a cargar el cortafuegos para aplicar los cambios:
firewall-cmd --reload
Acceder a la interfaz de usuario web de Guacamole
Ahora, abra su navegador web y acceda a la interfaz web de Guacamole usando la URL http://your-server-ip:8080/guacamole . Debería ver la siguiente pantalla:
Proporcione su nombre de usuario y contraseña de administrador y haga clic en Iniciar sesión botón. Debería ver el tablero de Guacamole en la siguiente pantalla:
En la pantalla anterior, puede ver los servidores Windows y Linux. Puede hacer clic en para conectarse y administrar los servidores remotos.
Conclusión
¡Felicidades! Ha instalado y configurado con éxito el servidor Guacamole en CentOS 8. Ahora puede agregar más servidores remotos a su servidor Guacamole y administrarlos a través de un navegador web.