5 strumenti per abilitare l’accesso desktop remoto su RHEL/CentOS 7

In questo tutorial, ti mostrerò gli strumenti che ti consentono di accedere a Desktop remoto su macchine che eseguono CentOS/RHEL. Tutte queste applicazioni funzionano in modalità client-server. Quindi devi eseguire un’applicazione lato server sulla tua macchina remota e successivamente sarai in grado di connetterti ad essa da tutto il mondo. Naturalmente, in questa guida di riferimento, ti dirò come configurarlo in modo sicuro in modo che solo tu possa accedere al tuo server.
Prima di iniziare, avrai bisogno dell’accesso SSH al tuo server e delle autorizzazioni per installare il software. Dovrai accedere come utente root o utente con privilegi sudo. Tutti i comandi funzioneranno su ogni server CentOS 5/6/7/8. Prima di iniziare, è necessario installare l’ambiente desktop sul server.
# yum groupinstall 'GNOME Desktop Environment' 'X Window System'
1) VNC
x11vnc: il più semplice di questi tre metodi per ottenere l’accesso remoto. VNC sta per Virtual Network Computing) è un protocollo grafico di rete molto utile.
Devi abilitare il repository EPEL (Extra Packages for Enterprise Linux). Correre
# yum -y install epel-release
Ora possiamo installare x11vnc. Questo comando installerà il server e risolverà tutte le dipendenze:
# yum -y install x11vnc
Quindi proteggeremo con password il server:
# x11vnc -storepasswd
Enter VNC password:
Verify password:
Write password to /root/.vnc/passwd? [y]/n y
Password written to: /root/.vnc/passwd
!Non utilizzare semplici password!
Ora siamo pronti per avviare il server:
# x11vnc --reopen --forever -rfbauth ~/.vncpasswd &
Puoi verificare se i server sono stati avviati:
# netstat -an | grep 5900
tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN
tcp6 0 0 :::5900 :::* LISTEN
Se va bene, prova a connetterti usando vncviewer.
# yum -y install vnc
# vncviewer YOUR_SERVER_IP
È tutto! Ora hai accesso al desktop. Dopo il riavvio basta ssh di nuovo e fallo di nuovo.
x11vnc --reopen --forever -rfbauth ~/.vnc/passwd &
2) Server TigerVNC
TigerVNC – è un’implementazione ad alte prestazioni e indipendente dalla piattaforma di VNC
# yum install -y tigervnc-server
Copiamo la configurazione di esempio e modifichiamola:
# cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
# vi /etc/systemd/system/vncserver@:1.service
Esempio di configurazione:
[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: è necessario modificare il NOME UTENTE nella configurazione precedente se si utilizzerà la stessa configurazione VNC. Questa è la configurazione che ho usato per questo tutorial.
Ora dobbiamo eseguire il comando vncpasswd per configurare la nostra password di accesso e/o password di sola visualizzazione (una password che consente all’utente di visualizzare solo lo schermo remoto):
# vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
A view-only password is not used
Ora abilita il servizio di avvio automatico e riavvialo:
$ systemctl enable vncserver@:1.service
$ systemctl restart vncserver@:1.service
Puoi controllare lo stato del servizio vnc digitando:
$ systemctl status vncserver@:1.service
Se tutto è andato bene, dovresti avere un output del terminale simile a questo:
$ 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).
E infine connettiti ad esso:
# vncviewer YOUR_SERVER_IP
3) XRDP
XRDP è un server Open Source Remote Desktop Protocol. Per utilizzare XRDP, devi avere già installato il servizio VNC. Quindi dovresti seguire la prima o la seconda opzione in questo tutorial prima di installare XRDP.
Innanzitutto, dobbiamo installare il repository EPEL e il server xrdp:
# yum -y install epel-release
# yum -y install xrdp
Ora avviamo il servizio:
# systemctl start xrdp.service
Controlla se funziona e aggiungilo all’avvio automatico.
# netstat -an | grep 3389
tcp 0 0 0.0.0.0:3389 0.0.0.0:* LISTEN
# systemctl enable xrdp.service
È tutto. Ora puoi connetterti al server da qualsiasi computer Windows.
4) Visualizzatore di squadra
Teamviewer non esiste nei repository standard, quindi dobbiamo installare wget e scaricare il pacchetto rpm di TeamViewer
# yum -y install wget
# wget https://download.teamviewer.com/download/linux/teamviewer.x86_64.rpm
Installalo usando questo comando:
# yum install teamviewer.x86_64.rpm
E imposta la tua password:
# teamviewer passwd YOUR_PASSWORD
ok
# systemctl start teamviewerd.service
Ora devi solo ottenere l’id per accedere:
# teamviewer –info
TeamViewer ID: 9XXXXXXX7
Prova ad accedere utilizzando questo ID e password che hai impostato in precedenza:
5) FreeNX
FreeNX è una soluzione di accesso remoto basata su tecnologie open source di classe enterprise di NoMachine. Se desideri che questo strumento ottenga l’accesso remoto, puoi prendere in considerazione l’aggiornamento alla versione cloud.
Prima di tutto dobbiamo aggiungere i repository EPEL + nux-dextop, per Centos 6:
# rpm -Uvh https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm
Per Cento 7
# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
Installa server e agente:
# yum install freenx-server nxagent
Abilita l’autenticazione passdb:
# echo 'ENABLE_PASSDB_AUTHENTICATION="1"' >> /etc/nxserver/node.conf
Ora dobbiamo creare un utente per l’accesso remoto e assegnargli una password:
# /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
Ora installeremo epel-repos e il client opennx sulla tua macchina:
# yum install opennx
Dopo aver avviato la procedura guidata opennx, ti verrà chiesto il nome della sessione, l’indirizzo del server e la porta. La cosa più importante è configurare la tua chiave. Dovrai copiare la chiave da /etc/nxserver/client.id_dsa.key del server e incollarla nella scheda generale delle proprietà della sessione del client.
Condividi i tuoi commenti su questo tutorial e facci sapere se conosci altri strumenti.