2016-02-17

Instalar Entorno Grafico XFCE y XRDP en Linux

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.

  1. Opción 1: Entorno gráfico mínimo (Escritorio, Administrador de Archivo y ventana de terminal). 
  2. Opcion 2: Entorno gráfico liviano completo, software de oficina, navegador, audio, etc.

Instalar un entorno mínimo.
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

Usar Tasksel para seleccionar un entorno, dependiendo cuál se elige, puede instalar paquetes grandes de softwares de oficina, internet, multimedia, Etc.
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

Editar el archivo rules.v4 y agregar -A INPUT -p tcp -m state --state NEW -m tcp --dport 3389 -j ACCEPT antes de la línea INPUT -j REJECT

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
O
iptables-restore < /etc/iptables.up.rules

Podemos corroborar.
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