En el articulo anterior, dejamos lista una instacia de AWS con S.O. Ubuntu 18.04, con la intención de instalar en la misma un servidor Guacamole, y asi dar acceso a nuestro conjunto de maquinas virtuales (que instalaremos en un futuro)

Bien pues ya podemos dar inicio a nuestro trabajo. Para ello, nos conectamos a nuestra cuenta en AWS, (ver los pasos en el anterior articulo), y, a continuación realizamos una conexión por putty, o por web-browser, según comentamos anteriormente; a partir de ese punto, recordad que entramos como usuario sin privilegios, por lo que lo primero que deberemos realizar es adquirir permisos de «root», y para ello, nos bastara con hacer un

$ sudo su

veréis que a partir de este momento, el «PROMPT termina en # por lo que estamos en modo root y podemos empezar con la instalación

Instalando Tomcat y dependencias

Lo primero que debemos hacer, es instalar el servidor tomcat, ya que es con el que va a trabajar Guacamole, para eso, podemos hacer:

# apt install tomcat8 tomcat8-admin tomcat8-common tomcat8-user -y

y a continuación,  instalamos también todas las dependencias de Guacamole

apt install -y  gcc-6 g++-6 libcairo2-dev libjpeg-turbo8-dev libpng-dev \
libossp-uuid-dev libavcodec-dev libavutil-dev libswscale-dev libfreerdp-dev \
libpango1.0-dev libssh2-1-dev libvncserver-dev libssl-dev libvorbis-dev libwebp-dev

Al finalizar, ya tendremos instalado el servidor Tomcat, que funciona en el puerto 8080, y todas las dependencias que necesitamos para poder compilar Guacamole, ya que el server no lo podemos encontrar compilado…

Pero, para que nuestra maquina sea visible en el puerto 8080, deberemos abrir el firewall de AWS, y para eso, vamos a ver nuestra instancia :

Cambiar seguridad de instancia en AWS

nos desplazamos totalmente hacia la derecha, y en la columna de «Security Groups» pulsamos encima del nuestro; en mi caso se llama «launch-wizard-8» para modificar los permisos.

Nos aparece la lista de todos las reglas de seguridad que hayamos creado, y que de momento solo es una,

Modificar regla de seguridad AWS

de forma que volvemos a hacer clic, esta vez encima de ella y nos aparece las reglas de Inbound/outbound que soporta esa entrada

AWS. Reglas firewall

vemos que solo tenemos abierto el puerto 22 para SSH, pero, podemos pulsar en «Edit inbound rule» para abrir el puerto 8080 que es el que necesitamos para Tomcat

AWS. Añadiendo una regla inbound al firewall

y, como no deseamos modificar esta (IMPORTANTE!!!!), si no añadir una nueva, podemos pulsar el botón de «Add»

AWS Añadir acceso al firewall por el puerto 8080

y le añadimos una nueva regla, en donde damos acceso por el puerto 8080, desde cualquier direccion (0.0.0.0/0)

Ahora ya podemos pulsar en «Save rules»

Y si queremos verificar como funciona Tomcat, podemos ver la direccion IP publica de nuestro servidor

Der Ip publica AWS

en mi caso: 15.188.194.171, y, sabiendo que tomcat tiene que escuchar en el puerto 8080, escribimos en el navegador

http://15.188.194.171:8080/

y vereis aparecer la informacion de vuestro servidor; en mi caso:

Instalando Guacamole

Vamos a descargar ahora la ultima version de Guacamole Server

# wget https://mirror.dkd.de/apache/guacamole/1.1.0/source/guacamole-server-1.1.0.tar.gz

Descomprimimos el archivo

# tar vfx guacamole-server-1.1.0.tar.gz

y cambiamos directorio, para entrar en él

# cd guacamole-server-1.1.0/

Y. antes de seguir, añadir un modulo mas, del que depende nuestro servidor, si queremos acceder sin problemas a equipos Windows.

# apt-get install -y freerdp2-x11 freerdp2-dev

Utilizamos una opcion que nos permite configurar automáticamente nuestro servidor

# autoreconf -fi

Y ya podemos realizar la configuración

# ./configure --with-init-dir=/etc/init.d

Al finalizar la misma, nos informara de las opciones seleccionadas y será algo como esto

Vemos que ya soporta los protocolos RDP y VNC, con lo que no deberíamos tener problemas para conectarnos a maquinas que tengan estos supervisores remotos. Podemos realizar la compilación e instalación.

# make
# make install

Podemos configurar para que cada vez que arranquemos, se active el demonio «guacd» responsable de las conexiones, y a continuación, ya lo dejamos activado

# ldconfig
# systemctl enable guacd
# systemctl start guacd

Instalacion del cliente Guacamole.

Lo primero que debemos aclarar es que no debemos confundirnos con la utilización de la palabra «cliente», para referirnos a este software. Se trata de un cliente, porque va a utilizar los recursos del servidor recién instalado, para trabajar; sin embargo, desde nuestro punto de vista, como usuarios de Guacamole, no dejara de ser un servicio del servidor.

Esta parte es la que se encarga de mostrar la pantalla de login, verificar la contraseña e invocar a «guacd» para conectar la maquina remota con el usuario.

En este caso, podemos conseguir el software ya compilado , por lo que los descargamos, creamos un directorio en /etc para conservar el .war, y es donde podremos añadir los ficheros de configuración que necesitamos, por ultimo, añadiremos la variable «GUACAMOLE_HOME»

# wget http://us.mirrors.quenda.co/apache/guacamole/1.1.0/binary/guacamole-1.1.0.war
# mkdir /etc/guacamole
# cp guacamole-1.1.0.war /etc/guacamole/guacamole.war
# ln -s /etc/guacamole/guacamole.war /var/lib/tomcat8/webapps/
# mkdir /etc/guacamole/{extensions,lib}
# echo "GUACAMOLE_HOME=/etc/guacamole" | tee -a /etc/default/tomcat8

 

Configurando el aplicativo

Nos queda establecer como se conecta el cliente, al demonio «guacd», y eso lo hacemos en el fichero  /etc/guacamole/guacamole.properties, de forma que podemos abrirlo con

# nano /etc/guacamole/guacamole.properties

y salimos salvando con Ctrl + 0, Enter, Ctrl + x

Nos encargamos que se pueda leer este archivo desde Tomcat, creando un enlace simbólico de este fichero, en el directorio de tomcat

# ln -s /etc/guacamole /usr/share/tomcat8/.guacamole

Ya solo queda crear usuarios, y esto, lo podríamos hacer en una base de datos, pero de momento, vamos a utilizar un fichero de configuración que también tiene esa misión, y que es /etc/guacamole/user-mapping.xml, con lo que utilizando nuevamente

# nano /etc/guacamole/user-mapping.xml

Si suponemos que tenemos un usuario UNO que va a utilizar la contraseña PASS para poder acceder a una máquina Linux por SSH, o a un servidor Windows por RDP, podríamos escribir algo como esto

<user-mapping>
   <authorize 
      username="UNO"
      password="PASS"
>

<!-- Primera conexion -->
   <connection name="Ubuntu-Server">
      <protocol>ssh</protocol>
      <param name="hostname">15.188.194.171</param>
      <param name="port">22</param>
      <param name="username">ubuntu</param>
   </connection>

<!-- Segunda conexion -->
   <connection name="Windows 10">
      <protocol>rdp</protocol>
      <param name="hostname">15.188.48.194</param>
      <param name="port">3389</param>
      <param name="security">any</param>
      <param name="ignore-cert">true</param>
   </connection>

</authorize>
</user-mapping>

Podemos probar que hasta ahora todo funciona, reiniciando demonios

# systemctl restart tomcat8
# systemctl restart guacd

y accediendo a la IP, en mi caso  http://15.188.194.171:8080/guacamole , recibimos la pantalla de login

Indicamos el usuario y la contraseña indicada en user-mapping.xml y vemos aparecer la lista de conexiones que hemos autorizado a ese usuario

El que nos podamos conectar a esas maquinas, dependerá que existan, pero de momento, hemos llegado hasta aquí.

Tambien, quiero dejar una nota acerca de un posible problema que podeis encontrar al hacer la conexion con W10. Si no consigue conectar, puede que tengais que modificar el registro de Windows 10 modificando en

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp] 

Los siguientes valores

Change “SecurityLayer” value to 1 Verify “UserAuthentication” value is 0

De cualquier forma dejamos para más adelante la creación de las máquinas virtuales…..

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.