Instale y use Guacamole Remote Desktop en CentOS 8

Inicio de sesión Guacamole

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 previos

  • Un servidor que ejecuta CentOS 8.
  • Se configura una contrase√Īa de root en el servidor.

Empezando

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: Publicidad

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 de 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 firewalld para aplicar los cambios:

firewall-cmd --reload

Acceda 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://su-servidor-ip:8080/guacamole. Debería ver la siguiente pantalla:

Inicio de sesión Guacamole

Proporcione su nombre de usuario y contrase√Īa de administrador y haga clic en el Acceso bot√≥n. Deber√≠a ver el tablero de Guacamole en la siguiente pantalla:

escritorio remoto guacamole

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.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *