Incluso siendo un profesional, la carrera tecnológica va con tanta rapidez en su desarrollo que es fácil perderse e incluso, llegar a ser un junior habiendo sido un senior dominando nuevas interfaces.
Los servicios gratuitos Amazon EC-2 son toda una ventaja, tanto para PYMES, estudiantes, científicos e incluso, aficionados. Poder disponer de una máquina virtual gratuita durante un año es todo un chollo que nos facilita los servicios AWS.
Sin embargo, la instalación de Linux para muchos continúa siendo un reto. Más si solamente contamos con una consola de comandos al inicio, ni DVD, ni pincho. Únicamente una Bash, una dirección IP, un par de claves RSA y un usuario root creado en la kernel del OS que hemos decidido instalar.
Si te has enfrentado a programas con dificultad al establecer conexión SSH o instalar una interfaz gráfica Xfce en una instancia Amazon Ec-2, entonces este tutorial es para ti.
A continuación, te explicaremos paso a paso cómo cargar todo el paquete Xfce y darle capacidades de conexión VNC para el manejo gráfico del servidor.
Al final de este post, incluimos un vídeo para acompañarte en la instalación y que te sea más fácil, ¡Comenzamos!
Table of Contents
- Conectar mediante SSH a nuestro servidor
- Crear un nuevo usuario
- Asignar una llave pública a un usuario
- Otorgar permisos de administrador
- Establecer una nueva conexión e instalar la paquetería
- Conectar por VNC mediante Tunneling SSH a nuestra MV
- Vídeo tutorial: Cómo instalar Xfce para Debian 11 en Amazon Ec-2 I
Conectar mediante SSH a nuestro servidor
Lo primero que debemos hacer es conectarnos a la máquina virtual, en este caso, una instancia ec-2 de Amazon AWS. La tenemos configurada mediante autenticación SSH con nuestro usuario por defecto que es “admin”.
Abrimos nuestra consola de comandos, o nuestra bash para ejecutar la siguiente línea desde nuestro usuario local:
sudo ssh -i ruta_con_fichero_pem admin@dns_publica_del_servidor
Nos pedirá nuestra contraseña de administrador. A continuación, la introducimos y estaríamos conectados ya con nuestra máquina virtual Debian.
Crear un nuevo usuario
Ahora, dado que instalar desde el usuario root no está permitido, debemos crear un usuario nuevo y añadirlo al grupo de sudoers de nuestra máquina virtual. Para ello, debemos ejecutar el siguiente comando:
sudo adduser nombre_de_usuario
La terminal nos pedirá que asignemos una contraseña al usuario y, tras pulsar enter, nos pedirá rellenar información accesoria, pero es opcional rellenarla. Para nuestro propósito bastará con asignarle un nombre.
Una vez creado el usuario, y debido a que tenemos configurado el inicio de sesión mediante SSH, debemos asignar la llave pública al nuevo usuario para que empareje con la llave privada que tenemos guardada en nuestro ordenador.
Asignar una llave pública a un usuario
Para ello, vamos a ubicar primero nuestra llave pública en nuestra máquina local. Teniendo a la mano la dirección donde se encuentran, ejecutaremos el siguiente comando:
sudo ssh-keygen -y -f ruta_de_la_llave
La terminal nos brindará el string con la llave pública que debemos copiar para luego asignar al usuario que hemos creado. Esto nos permitirá luego conectarnos desde nuestra máquina con este nuevo usuario.
Desde la máquina con la sesión inicial donde hemos creado el usuario, tenemos que acceder a nuestro usuario root, ya que estamos con el usuario de administrador. Para hacer este cambio, debemos colocar el siguiente comando: escribir su terminal, y luego introducir la contraseña de root.
En caso de que no conozcamos la contraseña root, debemos ejecutar el siguiente comando para introducir una nueva:
sudo passwd
El sistema nos permitirá que introduzcamos y verifiquemos una nueva contraseña. Ahora sí, colocamos su (si aún no lo hemos hecho), introducimos la contraseña root y estaríamos conectados con el usuario raíz.
Hacemos un cd ../../ si estamos en la carpeta de administrador para ubicarnos en el kernel del sistema y luego dirigirnos hacia la ruta del usuario creado con un cd /home/nombre_de_usuario/
Dentro de la carpeta de usuario, ejecutamos un mkdir para crear un nuevo directorio:
mkdir -p .ssh/
Esto nos creará un directorio oculto donde tendremos luego que crear un fichero que contenga la llave pública que hemos copiado anteriormente, ejecutando en la terminal desde /home/ nombre_de_usuario el siguiente comando:
nano .ssh/authorized_keys
Se nos habilitará un campo para escribir y pegaremos allí la clave pública de nuestro fichero pem. Luego, pulsaremos control + X para guardar, escribiremos Y y pulsaremos enter para salir.
Otorgar permisos de administrador
Una vez hecho esto, y antes de conectarnos con el nuevo usuario, debemos asignarlo al grupo de sudoers para que pueda ejecutar las instalaciones necesarias:
sudo usermod -aG sudo nombre_de_usuario
Una vez hecho esto, el usuario ya tendría privilegios de administrador que se puede comprobar, conectados, ejecutando el comando groups. Si sudo aparece, entonces somos administradores.
Establecer una nueva conexión e instalar la paquetería
Ahora, desde una nueva consola de nuestra máquina local, estableceremos conexión SSH con nuestro servidor utilizando como credenciales el usuario que hemos creado desde administrador.
sudo ssh -i ruta_de_llave/fichero.pem nombre_de_usuario@dns_del_servidor
Ya una vez hecho esto, estaríamos conectados con un usuario no raíz del sistema para ejecutar la instalación de la GUI desde nuestra terminal.
Ahora, conectados y con poderes sudo, debemos actualizar los repositorios de nuestro OS Debian para poder instalar la interfaz de Xfce4 que utilizaremos y también los paquetes para configurar nuestro servidor VNC que nos permitirá acceder posteriormente de manera remota a la máquina e interactuar con la interfaz gráfica que instalaremos.
Ejecutamos: sudo apt update y comprobará los ficheros disponibles para actualizar.
Una vez tenemos los repositorios disponibles y actualizados, debemos instalar nuestra interfaz Xfce que nos permitirá darle una gráfica a nuestra máquina Debian que por defecto solo viene configurada con una terminal. Ejecutamos:
sudo apt install task-xfce-desktop dbus-x11
Se empezará a instalar una serie de paquetes y ficheros que van a componer todo el contenido de nuestra interfaz. Tras llegar a un porcentaje de instalación, la termina cambiará su forma y nos permitirá seleccionar de un menú desplegable la configuración de nuestro teclado. Por defecto, dejamos inglés y pulsamos enter, a continuación la instalación continuará, preparándose para desempacar y desempacando archivos. Tomará algo de tiempo hasta que la instalación se termine, así que debemos esperar.
Una vez que termine la instalación, debemos descargar los paquetes para configurar nuestro servidor VNC que nos dará acceso remoto a la interfaz XFCE. Para ello, ejecutamos el comando:
sudo apt install tightvncserver
Una vez descargado y desempaquetado los ficheros del servidor VNC, debemos configurar una contraseña de acceso que nos pedirá cuando intentemos conectarnos desde Real VNC. Para ello basta con escribir vncserver en la terminal de comandos.
Se nos pedirá configurar una contraseña, que deberá ser de entre seis u ocho caracteres, en caso de ser mayor, el sistema la truncará automáticamente por lo que no debes preocuparte pues solo contarán los primeros 8 caracteres a la hora de verificar y conectarte. También nos preguntará si queremos configurar una contraseña para dar acceso sin control, es decir, para que un usuario se conecte y pueda observar solamente. En nuestro caso, colocaré n porque no me interesa crear una sesión específica.
Ahora, debemos ejecutar el fichero que le indica al servidor qué interfaz arrancar una vez que se ha establecido conexión, para ello debemos ir a la ruta de nuestro VNC pero antes debemos parar el arranque inicial que hemos hecho del servidor. Con los datos que nos ha proporcionado para este nuevo ordenador, debemos fijarnos más que en la IP en el puerto que viene tras : en la dirección. Lo utilizaremos para parar el proceso con el siguiente comando:
Vncserver -kill :PORT
Ahora que hemos detenido el proceso, debemos configurar el fichero de arranque para nuestro servidor VNC. Antes, nos aseguramos de hacer un respaldo del original en caso de algún fallo:
mv ~/.vnc/xstartup ~/.vnc/xstartup.bak
Esto nos habilitará un espacio en memoria disponible para crear un ficher xstartup con la configuración que deseamos para conectarnos exitosamente. Para ello, debemos escribir la siguiente línea:
nano ~/.vnc/xstartup
Se nos desplegará como en la configuración de la llave pública, un campo para introducir valores de texto, allí colocaremos lo siguiente:
bash #!/bin/bash
xrdb $HOME/.Xresources startxfce4 &
Ahora, le asignamos permisos de ejecución para que pueda correr cuando nos conectamos con la siguiente línea:
chmod +x ~/.vnc/xstartup
Esto hará que tenga los permisos necesarios para ejecutarse cuando abramos el Real VNC o cliente VNC preferido para conectarnos a la máquina. Una vez asignado el permiso de ejecución, reiniciamos el servidor ejecutando de nuevo el comando vncserver.
Conectar por VNC mediante Tunneling SSH a nuestra MV
Estaríamos muy cerca de tener nuestro servidor configurado. Las conexiones que se establecen por VNC no son seguras por lo que debemos crear un túnel para redirigir una conexión a localhost por el puerto 5901 en vez de hacer directamente.
En nuestra máquina local, en la terminal, escribimos lo siguiente:
sudo ssh -i ruta_de_llave_pem -L 5901:127.0.0.1:5901 -C -N -l usuario dirección_dns_del_servidor
La consola se quedará parpadeando, lo que significaría que el túnel estaría habilitado para redirigir una conexión a localhost usando el puerto 90. Ahora solo bastaría con abrir nuestro cliente VNC favorito, y llamar a la URL localhost:5901, se nos pedirá la contraseña habilitada previamente para el tightvncserver, y luego podríamos entrar a la interfaz perfectamente.
Vídeo tutorial: Cómo instalar Xfce para Debian 11 en Amazon Ec-2 I
Desarrollador Linux
Me encanta la informática, la flexibilidad de Linux, lo fascinante de la virtualización y todo lo relacionado con la ciberseguridad y el pentesting. Suelo escuchar blues, electro y a veces, juego ajedrez.