In questo tutorial, ti mostrerò gli strumenti che ti consentono di accedere al desktop remoto su macchine che eseguono CentOS/RHEL. Tutte queste app funzionano in modalità client-server. Quindi devi eseguire un'app lato server sulla tua macchina remota e successivamente sarai in grado di connetterti ad essa da tutto il mondo. Naturalmente in questo manuale 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 i privilegi sudo. Tutti i comandi funzioneranno su ogni server CentOS 5/6/7/8. Prima di iniziare, devi installare l'ambiente desktop sul tuo 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.
È necessario abilitare il repository EPEL (Extra Packages for Enterprise Linux). Corri
# 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 il server con password:
# x11vnc -storepasswd
Enter VNC password:
Verify password:
Write password to /root/.vnc/passwd? [y]/n y
Password written to: /root/.vnc/passwd
!Non utilizzare password semplici!
Ora siamo pronti per avviare il server:
# x11vnc --reopen --forever -rfbauth ~/.vncpasswd &
Puoi controllare 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 semplicemente a connetterti usando vncviewer.
# yum -y install vnc
# vncviewer YOUR_SERVER_IP
È tutto! Ora hai accesso al tuo desktop. Dopo il riavvio, 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 la modifichiamo:
# cp /lib/systemd/system/[email protected] /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 sopra se utilizzerai la stessa configurazione VNC. Questa è la configurazione che abbiamo usato per questo tutorial.
Ora dobbiamo eseguire il comando vncpasswd per impostare la nostra password di accesso e/o la 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 di protocollo desktop remoto Open Source. Per utilizzare XRDP è necessario che il servizio VNC sia già installato. Quindi dovresti seguire la prima o la seconda opzione di questo tutorial prima dell'installazione di XRDP.
Prima di tutto dobbiamo installare il repository EPEL e il server xrdp:
# yum -y install epel-release
# yum -y install xrdp
Ora iniziamo il servizio:
# systemctl start xrdp.service
Controlla se è in esecuzione 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 tuo server da qualsiasi macchina Windows.
4) Visualizzatore team
Teamviewer non esiste nei repository standard, quindi è necessario installare wget e scaricare il pacchetto rpm 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 il tuo ID per connetterti:
# teamviewer –info
TeamViewer ID: 9XXXXXXX7
Prova a connetterti utilizzando questo ID e la password che hai impostato prima:
5) FreeNX
FreeNX è una soluzione di accesso remoto basata su tecnologie open source di classe enterprise di NoMachine. Se vuoi che esattamente questo strumento ottenga l'accesso remoto, potresti prendere in considerazione l'aggiornamento alla versione cloud.
Prima di tutto dobbiamo aggiungere e EPEL + repository 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 autenticazione passdb:
# echo 'ENABLE_PASSDB_AUTHENTICATION="1"' >> /etc/nxserver/node.conf
Ora dobbiamo creare l'utente per l'accesso remoto e assegnargli la 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 client opennx sul tuo computer:
# yum install opennx
Dopo aver avviato la procedura guidata di opennx, ti verrà chiesto il nome della sessione, l'indirizzo del server e la porta. La cosa più importante è impostare la chiave. Dovrai copiare la chiave dal server /etc/nxserver/client.id_dsa.key e incollarla nella scheda generale delle proprietà della sessione del client.
Condividi i tuoi commenti su questo tutorial e facci sapere se sei a conoscenza di altri strumenti.