XDRP en CentOS 8. Instalación
¿Qué es XRDP?
XRDP no es más que un clon gratuito del software de acceso remoto de Windows RDP que funciona en la mayor parte de las distribuciones de Linux y UNIX (esto incluye a FreeBSD, Net-BSD, OpenBSD, HP-UX, AIX, Solaris, etc.).
¿Quien creó XRDP?
XRDP fue creado a mediados del año 2004 por el programador Jay Sorg basándose para ello en el software rdesktop y FreeRDP los cuales ya habían implementado una solución libre de acceso RDP. El servidor XRDP en CentOS 8 implementa la última versión del mismo, la 0.9.
Instalación de XDRP en CENTOS 8
Cabe señalar que esta guía se ha realizado para la instalación de un servidor XRDP en Centos 8 pero la misma también valdría para cualquier sistema Linux derivado o parecido: Linux Rehat 8, Oracle Linux 8, Fedora, Scientific Linux 8…
Para realizar la instalación del servidor XRDP en CentOS 8 lo primero que tendremos que hacer es entrar en la consola de comandos del servidor con permiso de administrador root y teclear lo siguiente:
sudo dnf -y install xrdp
sudo systemctl enable xrdp
sudo systemctl start xrdp
Si recibimos un mensaje de error, puede ser debido a que no tenemos instalado el repositorio EPEL. Para instalarlo, hemos de meter los siguientes comandos:
dnf -y install epel-release
No hay ni que decir que es estrictamente necesario también tener instalado un entorno gráfico, que podremos instalar de la siguiente forma:
sudo dnf groupinstall "Server with GUI"
Ajustes del servidor XDRP en CentOS 8
Para poder arrancar nuestro servidor XRDP en CentOS 8 utilizando el entorno de escritorio GNOME, hay que modificar el fichero /etc/xrdp/xrdp.ini
introduciendo el siguiente comando:
sudo bash -c 'echo "exec gnome-session" >> /etc/xrdp/xrdp.ini'
Configuración del firewall
Para abrir el firewall y que el mismo permita acceder al puerto XRDP en CENTOS 8 (puerto 3389) hay que introducir los siguientes comandos en la consola:
sudo firewall-cmd --zone=public --permanent --add-port=3389/tcp sudo firewall-cmd --reload
Ahora vamos a activar y a arrancar el servicio:
sudo systemctl enable xrdp sudo systemctl start xrdp
Configuración de SElinux
Creado por la famosa NSA norteamericana, SELinux es un sistema de seguridad que por defecto viene activo en CentOS y en todas sus distribuciones hermanas: Red Hat, Oracle Linux, Scientific Linux y Fedora.
En teoría SElinux se encarga de vigilar continuamente el sistema y bloquea cualquier actividad sospechosa. El problema es que para SElinux todo es sospechoso, así que hay que decirle al mismo qué servicios queremos permitir. Esto lo podremos hacer mediante los siguientes comandos:
chcon --type=bin_t /usr/sbin/xrdp chcon --type=bin_t /usr/sbin/xrdp-sesman
Cambio de puerto XRDP en CentOS 8
Dejar el puerto 3389 abierto en Internet a todo el mundo es algo bastante arriesgado. Existen cientos de programas automatizados que intentan explotar las vulnerabilidades del sistema XRDP, muchos de los cuales son muy utilizados por los crackers.
Hay soluciones como Fail2Ban que nos permiten proteger el sistema frente a ataques de fuerza bruta, desgraciadamente, debido a la naturaleza del protocolo RDP estos programas no suelen funcionar muy bien con XRDP.
Una recomendación sería cambiar el puerto donde XRDP está escuchando, de esta forma podremos evitar en cierto medida los ataques al mismo.
Para hacer esto tendremos que editar el fichero /etc/xrdp/xrdp.ini
como usuario root y cambiar la línea port=3389
al puerto que deseemos, por ejemplo el 11840 port=11840
Una vez hecho esto tendremos que abrir el correspondiente puerto en el firewall:
sudo firewall-cmd --add-port=11840/tcp --permanent sudo firewall-cmd --reload
No deberíamos olvidar también cerrar el puerto 3389 en el firewall:
sudo firewall-cmd --remove-port=3389/tcp --permanent
sudo firewall-cmd --reload