En este tutorial, le mostraré las herramientas que le permiten acceder al escritorio remoto en máquinas que ejecutan CentOS / RHEL. Todas estas aplicaciones funcionan en modo cliente-servidor. Por lo tanto, debe ejecutar una aplicación del lado del servidor en su máquina remota y, después de eso, podrá conectarse desde todo el mundo. Por supuesto, en este manual de referencia, te diré cómo configurar esto de forma segura, para que solo tú puedas acceder a tu servidor.
Antes de comenzar, necesitará acceso SSH a su servidor y permisos para instalar el software. Deberá iniciar sesión como usuario root o usuario con la sudo privilegios. Todos los comandos funcionarán en todos los servidores CentOS 5/6/7/8. Antes de comenzar, debe instalar el entorno de escritorio en su servidor.
# yum groupinstall 'GNOME Desktop Environment' 'X Window System'
1) VNC
x11vnc: el más simple de estos tres métodos para obtener acceso remoto. VNC significa Virtual Network Computing) es un protocolo de gráficos de red muy útil.
Debe habilitar el repositorio EPEL (Paquetes adicionales para Enterprise Linux). Correr
# yum -y install epel-release
Ahora podemos instalar x11vnc. Este comando instalará el servidor y resolverá todas las dependencias:
# yum -y install x11vnc
Entonces protegeremos el servidor con contraseña:
# x11vnc -storepasswd
Enter VNC password:
Verify password:
Write password to /root/.vnc/passwd? [y]/n y
Password written to: /root/.vnc/passwd
¡No utilice contraseñas simples!
Ahora estamos listos para iniciar el servidor:
# x11vnc --reopen --forever -rfbauth ~/.vncpasswd &
Puede comprobar si los servidores se iniciaron:
# netstat -an | grep 5900
tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN
tcp6 0 0 :::5900 :::* LISTEN
Si está bien, simplemente intente conectarse usando vncviewer.
# yum -y install vnc
# vncviewer YOUR_SERVER_IP
¡Eso es todo! Ahora tienes acceso a tu escritorio. Después de reiniciar, simplemente ssh nuevamente y hágalo nuevamente.
x11vnc --reopen --forever -rfbauth ~/.vnc/passwd &
2) servidor TigerVNC
TigerVNC: es una implementación de VNC de alto rendimiento y de plataforma neutral
# yum install -y tigervnc-server
Vamos a copiar example config y editarlo:
# cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service
# vi /etc/systemd/system/vncserver@:1.service
Ejemplo de configuración:
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
Requires=systemd-logind.service
[Service]
Type=oneshot
RemainAfterExit=yes
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l USERNAME -c "/usr/bin/vncserver %i"
ExecStop=/usr/sbin/runuser USERNAME -c '/usr/bin/vncserver -kill %i'
[Install]
WantedBy=multi-user.target
NOTA: Debe cambiar el NOMBRE DE USUARIO en la configuración anterior si usará la misma configuración de VNC. Esta es la configuración que usamos para este tutorial.
Ahora debemos ejecutar el comando vncpasswd para configurar nuestra contraseña de acceso y / o contraseña de solo lectura (una contraseña que permite al usuario ver solo la pantalla remota):
# vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
A view-only password is not used
Ahora habilite el servicio de inicio automático y reinícielo:
$ systemctl enable vncserver@:1.service
$ systemctl restart vncserver@:1.service
Puede verificar el estado del servicio vnc escribiendo:
$ systemctl status vncserver@:1.service
Si todo salió bien, debería tener una salida de terminal similar a esta:
$ systemctl status vncserver@:1.service
● vncserver@:1.service - Remote desktop service (VNC)
Loaded: loaded (/etc/systemd/system/vncserver@:1.service; enabled; vendor preset: disabled)
Active: active (exited) since Wed 2020-09-30 22:04:47 CEST; 7s ago
Process: 3766 ExecStart=/usr/sbin/runuser -l slax -c /usr/bin/vncserver %i (code=exited, status=0/SUCCESS)
Process: 3761 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
Main PID: 3766 (code=exited, status=0/SUCCESS)
Sep 30 22:04:44 localhost.localdomain systemd[1]: Starting Remote desktop service (VNC)...
Sep 30 22:04:47 localhost.localdomain systemd[1]: Started Remote desktop service (VNC).
Y finalmente conéctate a él:
# vncviewer YOUR_SERVER_IP
3) XRDP
XRDP es un servidor de protocolo de escritorio remoto de código abierto. Para utilizar XRDP, debe tener el servicio VNC ya instalado. Por lo tanto, debe seguir la primera o la segunda opción de este tutorial antes de la instalación de XRDP.
En primer lugar, necesitamos instalar el repositorio EPEL y el servidor xrdp:
# yum -y install epel-release
# yum -y install xrdp
Ahora comencemos el servicio:
# systemctl start xrdp.service
Compruebe si se está ejecutando y agréguelo al inicio automático.
# netstat -an | grep 3389
tcp 0 0 0.0.0.0:3389 0.0.0.0:* LISTEN
# systemctl enable xrdp.service
Eso es todo. Ahora puede conectarse a su servidor desde cualquier máquina con Windows.
4) Teamviewer
Teamviewer no existe en repositorios estándar, por lo que necesitamos instalar wget y descargar el paquete rpm de TeamViewer
# yum -y install wget
# wget https://download.teamviewer.com/download/linux/teamviewer.x86_64.rpm
Instálelo usando este comando:
# yum install teamviewer.x86_64.rpm
Y establezca su contraseña:
# teamviewer passwd YOUR_PASSWORD
ok
# systemctl start teamviewerd.service
Ahora solo necesita obtener su identificación para conectarse:
# teamviewer –info
TeamViewer ID: 9XXXXXXX7
Intenta conectarte a él usando esta identificación y contraseña que estableciste antes:
5) FreeNX
FreeNX es una solución de acceso remoto basada en tecnologías de código abierto de clase empresarial de NoMachine. Si desea exactamente que esta herramienta obtenga acceso remoto, puede considerar actualizar a la versión en la nube.
En primer lugar, debemos agregar los repositorios EPEL + nux-dextop, para Centos 6:
# rpm -Uvh https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -Uvh https://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm
Para Centos 7
# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# rpm -Uvh https://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
Instale el servidor y el agente:
# yum install freenx-server nxagent
Habilite la autenticación passdb:
# echo 'ENABLE_PASSDB_AUTHENTICATION="1"' >> /etc/nxserver/node.conf
Ahora necesitamos crear un usuario para acceso remoto y asignarle una contraseña:
# /usr/libexec/nx/nxserver --adduser bob
NX> 100 NXSERVER - Version 3.2.0-74-SVN OS (GPL, using backend: not detected)
NX> 1000 NXNODE - Version 3.2.0-74-SVN OS (GPL, using backend: not detected)
NX> 716 Public key added to: /home/bob/.ssh/authorized_keys2
NX> 1001 Bye.
NX> 999 Bye
#/usr/libexec/nx/nxserver --passwd bob
NX> 100 NXSERVER - Version 3.2.0-74-SVN OS (GPL, using backend: not detected)
New password:
Password changed.
NX> 999 Bye
Ahora instalaremos epel-repos y el cliente opennx en su máquina:
# yum install opennx
Después de iniciar el asistente de opennx, se le preguntará sobre el nombre de la sesión, la dirección del servidor y el puerto. Lo más importante es configurar su clave. Deberá copiar la clave del servidor /etc/nxserver/client.id_dsa.key y pegarla en la pestaña general de las propiedades de la sesión de su cliente.
Comparta sus comentarios sobre este tutorial y háganos saber si conoce otras herramientas.