Introducción
Vamos a configurar un servidor Debian 10 que ya está funcionando para conectarnos con un cliente de Escritorio Remoto De Windows Microsoft RDP, En el caso de mi servidor, está basado en una Turnkey Linux, esos sistemas no están preparados para usarlos directamente, no tiene pantalla, monitor y mouse.
Corregido el 07/02/2022 gracias a la publicación de Diego del blog Apuntes it, te recomiendo que si estás utilizando una vps Oracle o Google pases por el blog y también veas su video en YouTube.
Instalar un entorno gráfico
Instalar un entorno Gráfico, Uno recomendado es el que vamos a usar Xfce por ser uno de los más livianos y con mayor compatibilidad.
- Opción 1: Entorno gráfico mínimo (Escritorio, Administrador de Archivo y ventana de terminal).
- Opcion 2: Entorno gráfico liviano completo, software de oficina, navegador, audio, etc.
apt install -y xfce4 xorgxrdp xorg dbus-x11 x11-xserver-utils xfce4-terminal desktop-base xinit
Solo con apt install -y xfce4 xorgxrdp xorg ya funciona, pero es recomendable instalar lo otro.
Xinit nos da la opción de iniciar xfce con el comando startxfce4 desde terminal.
En el proceso nos va a preguntar el gestor de inicio y seleccionamos Lightdm
Se puede instalar algunas apps básicas que pueden ser útiles con el paquete goodies de Xfce y algunas herramientas para el servidor X11.
apt install -y xfce4-goodies dbus-x11 x11-xserver-utils
apt update && apt install tasksel -y
Ejecutamos Tasksel.
tasksel
En la ventana que aparece seleccionamos Debian Desktop Environment, marcamos con Espacio, elegimos el entorno de escritorio, para posicionarnos sobre ok y luego Enter para instalar.
Instalar un gestor de sesiones.
Este gestor es el que nos va a permitir escribir nuestro usuario y contraseña cuando conectamos una pantalla / monitor. (Este paso no es necesario si va a usar el entorno gráfico únicamente por escritorio remoto).
apt install -y lightdm xserver-xorg-input-all
systemctl set-default graphical.target
systemctl reboot
Si queremos volver a dejar que inicie en modo texto
systemctl set-default multi-user.target
systemctl reboot
A partir de ahora, al reiniciar, el sistema arrancará en modo gráfico, con la
ventana de lightdm para escribir usuario y contraseña.
Instalación del Servidor de Escritorio Remoto
apt install xrdp -y
Automáticamente, se ejecuta después de instalar, verificar que se esté
ejecutando el servicio.
systemctl status xrdp
Crear el usuario xrdp y ponerle en el grupo ssl-cert, de lo contrario, inicia con una pantalla en blanco, ya que no tendría permisos para acceder a los certificados ssl.
adduser xrdp ssl-cert
Si dice que ya existe el usuario.
usermod -a -G ssl-cert xrdp
Abrir el Firewall
TurnKey Linux
vim /etc/iptables.up.rules
Ubuntu
vim /etc/iptables/rules.v4
Quedaría así
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3389 -j ACCEPT
Recargamos la configuración del firewall
iptables-restore < /etc/iptables/rules.v4
iptables-restore < /etc/iptables.up.rules
iptables -L INPUT
UFW - Uncomplicated Firewall
Para el firewall UFW, usar el comando para abrir el puerto 3389 para la red LAN.
ufw allow from 192.168.0.0/24 to any port 3389
Se puede cambiar 192.168.0.0/24 por 0.0.0.0/0 para permitir acceso desde otras redes.
Vuelva a cargar el UFW para aplicar las nuevas reglas.
ufw reload
Crear usuario Nuevo
adduser mi_usuario
Cambiamos o creamos una contraseña
passwd mi_usuario
Configurar Xfce para cada usuario.
Crear el archivo de configuración .xsession la carpeta de cada usuario que se va a conectar
su mi_usuario
echo xfce4-session > ~/.xsession
Configurar lo mismo pero sin loguearse en el usuario
echo xfce4-session > /home/mi_usuario/.xsession
chown -R mi_usuario:users /home/mi_usuario/.xsession
chmod 664 /home/mi_usuario/.xsession
Condigurar Xrdp para que inicie con Xfce4.
Abrir el archivo,/etc/xrdp/startwm.sh
comentar la línea
exec /bin/sh /etc/X11/Xsession
y al final agregar
startxfce4
vim /etc/xrdp/startwm.sh
#exec /bin/sh /etc/X11/Xsession
startxfce4
Agregar las siguientes dos líneas antes de test -x /etc/X11/Xsession && exec /etc/X11/Xession
Unset DBUS_SESSION_ADDRESS
Unset XDG_RUNTIME_DIR
el archivo debería terminar así:
Unset DBUS_SESSION_ADDRESS
Unset XDG_RUNTIME_DIR
test -x /etc/X11/Xsession && exec /etc/X11/Xsession
# exec /bin/sh /etc/X11/Xsession
startxfce4
Guardamos y reiniciamos xrdp
systemctl restart xrdp