В
Tabla de contenido:
Instalación del entorno gráfico
Cogeremos una máquina virtual con Ubuntu Server 18.04 LTS con dos núcleos informáticos, cuatro gigabytes de RAM y un disco duro (HDD) de veinte gigabytes. Una configuración más débil no es adecuada para un escritorio gráfico, aunque esto depende de las tareas a resolver. No olvide utilizar el código de promoción Habrahabr10 para obtener un 10% de descuento en su pedido.
La instalación del entorno de escritorio con todas las dependencias se realiza con el siguiente comando:
sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils
Como en el caso anterior, elegimos XFCE debido a sus requisitos de recursos informáticos relativamente bajos.
Rusificación del servidor e instalación de software.
A menudo, las máquinas virtuales se implementan únicamente con localización en inglés. En el escritorio es posible que necesites ruso, que es fácil de configurar. Primero, instalemos traducciones para programas del sistema:
sudo apt-get install language-pack-ru
Configuremos la localización:
sudo update-locale LANG=ru_RU.UTF-8
Se puede lograr el mismo efecto editando manualmente el archivo /etc/default/locale.
Para la localización de GNOME y KDE, el repositorio tiene los paquetes language-pack-gnome-ru y language-pack-kde-ru; los necesitará si utiliza programas de estos entornos de escritorio. En XFCE, las traducciones se instalan con aplicaciones. A continuación puedes instalar los diccionarios:
# Словари для проверки орфографии
sudo apt-get install hunspell hunspell-ru
# Тезаурус для LibreOffice
sudo apt-get install mythes-ru
# Англо-русский словарь в формате DICT
sudo apt-get install mueller7-dict
Además, es posible que se requiera la instalación de traducciones para algunos programas de aplicación:
# Браузер Firefox
sudo apt-get install firefox firefox-locale-ru
# Почтовый клиент Thunderbird
sudo apt-get install thunderbird thunderbird-locale-ru
# Офисный пакет LibreOffice
sudo apt-get install libreoffice libreoffice-l10n-ru libreoffice-help-ru
Esto completa la preparación del entorno de escritorio, solo queda configurar el servidor RDP.
Instalación y configuración de un servidor RDP
Los repositorios de Ubuntu cuentan con un servidor Xrdp de distribución gratuita, el cual utilizaremos:
sudo apt-get install xrdp
Si todo ha ido bien, el servidor debería iniciarse automáticamente:
sudo systemctl status xrdp
El servidor Xrdp se ejecuta con derechos de usuario xrdp y, de forma predeterminada, toma el certificado /etc/ssl/private/ssl-cert-snakeoil.key, que puede reemplazarse por el suyo. Para tener acceso para leer el archivo, debe agregar el usuario al grupo ssl-cert:
sudo adduser xrdp ssl-cert
La configuración predeterminada se puede encontrar en el archivo /etc/default/xrdp, y todos los demás archivos de configuración del servidor se encuentran en el directorio /etc/xrdp. Los parámetros principales se encuentran en el archivo xrdp.ini, que no es necesario modificar. La configuración está bien documentada y se incluyen las páginas de manual correspondientes:
man xrdp.ini
man xrdp
Todo lo que queda es editar el script /etc/xrdp/startwm.sh, que se ejecuta cuando se inicializa la sesión del usuario. Primero, hagamos una copia de seguridad del script de la distribución:
sudo mv /etc/xrdp/startwm.sh /etc/xrdp/startwm.b
sudo nano /etc/xrdp/startwm.sh
Para iniciar el entorno de escritorio XFCE, necesitará un script similar a este:
#!/bin/sh
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
exec /usr/bin/startxfce4
Tenga en cuenta: en los scripts es mejor escribir la ruta completa a los archivos ejecutables; este es un buen hábito. Hagamos que el script sea ejecutable y en este punto la configuración del servidor Xrdp se puede considerar completa:
sudo chmod 755 /etc/xrdp/startwm.sh
Reinicie el servidor:
sudo systemctl restart xrdp
Configurar un cortafuegos
De forma predeterminada, Xrdp escucha el puerto TCP 3389 en todas las interfaces. Dependiendo de la configuración del servidor virtual, es posible que necesite configurar un firewall Netfilter. En Linux esto normalmente se hace usando la utilidad iptables, pero en Ubuntu es mejor usar ufw. Si se conoce la dirección IP del cliente la configuración se realiza con el siguiente comando:
sudo ufw allow from IP_Address to any port 3389
Puedes permitir conexiones desde cualquier IP como esta:
sudo ufw allow 3389
El protocolo RDP admite el cifrado, pero exponer el servidor Xrdp a redes públicas es una mala idea. Si el cliente no tiene una IP fija, el servidor solo debe escuchar localhost para aumentar la seguridad. Es mejor acceder a él a través de un túnel SSH, que redirigirá de forma segura el tráfico desde la computadora cliente. Tenemos un enfoque similar
Conexión a un servidor RDP
Para trabajar con el entorno de escritorio, es mejor crear un usuario independiente sin privilegios:
sudo adduser rdpuser
Agreguemos el usuario al grupo sudo para que pueda realizar tareas relacionadas con la administración. Si no es necesario, puedes omitir este paso:
sudo gpasswd -a rdpuser sudo
Puede conectarse al servidor utilizando cualquier cliente RDP, incluido el cliente integrado de Servicios de Escritorio remoto de Windows. Si Xrdp está escuchando la interfaz externa, no serán necesarias acciones adicionales. Basta con especificar la dirección IP, el nombre de usuario y la contraseña del VPS en la configuración de conexión. Después de conectarnos, veremos algo como esto:
Después de la configuración inicial del entorno de escritorio, obtendremos un escritorio completo. Como ves, no consume muchos recursos, aunque todo dependerá de las aplicaciones utilizadas.
Si el servidor Xrdp escucha solo a localhost, el tráfico en la computadora cliente deberá empaquetarse en un túnel SSH (sshd debe estar ejecutándose en el VPS). En Windows, puede utilizar un cliente SSH gráfico (por ejemplo, PuTTY) y en sistemas UNIX necesita la utilidad ssh:
ssh -L 3389:127.0.0.1:3389 -C -N -l rdpuser RDP_server_ip
Una vez inicializado el túnel, el cliente RDP ya no se conectará al servidor remoto, sino al host local.
Con los dispositivos móviles es más difícil: habrá que comprar clientes SSH capaces de crear un túnel, y en iOS y iPadOS, el funcionamiento en segundo plano de aplicaciones de terceros es complicado debido a una optimización demasiado buena del consumo de energía. En iPhone y iPad, no podrá crear un túnel en una aplicación separada; necesitará una aplicación recolectora que pueda establecer una conexión RDP a través de SSH. Como por ejemplo
Administrador de sesiones y sesiones de usuario
La capacidad de trabajo multiusuario se implementa directamente en el servidor Xrdp y no requiere configuración adicional. Después de iniciar el servicio a través de systemd, un proceso se ejecuta en modo demonio, escucha en el puerto 3389 y se comunica a través de localhost con el administrador de sesión.
ps aux |grep xrdp
sudo netstat -ap |grep xrdp
El administrador de sesiones generalmente no es visible para los usuarios porque el nombre de usuario y la contraseña especificados en la configuración del cliente se transfieren automáticamente a él. Si esto no sucede o hay un error durante la autenticación, aparecerá una ventana de inicio de sesión interactiva en lugar del escritorio.
El inicio automático del administrador de sesiones se especifica en el archivo /etc/default/xrdp y la configuración se almacena en /etc/xrdp/sesman.ini. Por defecto se ve así:
[Globals]
ListenAddress=127.0.0.1
ListenPort=3350
EnableUserWindowManager=true
UserWindowManager=startwm.sh
DefaultWindowManager=startwm.sh
[Security]
AllowRootLogin=true
MaxLoginRetry=4
TerminalServerUsers=tsusers
TerminalServerAdmins=tsadmins
; When AlwaysGroupCheck=false access will be permitted
; if the group TerminalServerUsers is not defined.
AlwaysGroupCheck=false
[Sessions]
No tienes que cambiar nada aquí, sólo tienes que desactivar el inicio de sesión con derechos de root (AllowRootLogin=false). Para cada usuario autorizado en el sistema, se inicia un proceso xrdp separado: si se desconecta sin finalizar la sesión, los procesos del usuario continuarán ejecutándose de forma predeterminada y podrá conectarse nuevamente a la sesión. La configuración se puede cambiar en el archivo /etc/xrdp/sesman.ini (sección [Sesiones]).
Cambiar la distribución del teclado
Por lo general, no hay problemas con un portapapeles bidireccional, pero con la distribución del teclado ruso tendrás que jugar un poco (la configuración regional rusa ya debería estar
sudo nano /etc/xrdp/xrdp_keyboard.ini
Debe agregar las siguientes líneas al final del archivo de configuración:
[rdp_keyboard_ru]
keyboard_type=4
keyboard_type=7
keyboard_subtype=1
model=pc105
options=grp:alt_shift_toggle
rdp_layouts=default_rdp_layouts
layouts_map=layouts_map_ru
[layouts_map_ru]
rdp_layout_us=us,ru
rdp_layout_ru=us,ru
Todo lo que queda es guardar el archivo y reiniciar Xrdp:
sudo systemctl restart xrdp
Como puede ver, no es difícil configurar un servidor RDP en un VPS Linux, pero
Fuente: habr.com