Condivisione del desktop tramite x11vnc+SSH
Introduzione¶
x11vnc è un potente programma VNC. Ciò che rende x11vnc diverso dagli altri programmi VNC è che un amministratore può prendere la sessione X esistente di un utente invece di essere costretto a crearne una nuova. Questo rende X11VNC ideale per fornire assistenza remota ai desktop Linux.
Questa guida spiega come impostare un server X11vnc e come connettersi ad esso da remoto.
Nota
Uno dei principali vantaggi dell'utilizzo di x11vnc rispetto a SSH è che elimina la necessità di aprire altre porte sul computer, riducendo così al minimo la superficie di attacco.
Presupposti¶
Per questa guida, si presuppone che si disponga di quanto segue:
- Rocky Linux Workstation
- Privilegi
sudo
Impostazione del server VNC¶
Per catturare la sessione X, è necessario installare il server x11vnc sulla workstation Rocky.
Disattivare Wayland¶
Per prima cosa, è necessario disabilitare Wayland. Aprire il file custom.conf
usando il proprio editor di testo:
sudo vim /etc/gdm/custom.conf
Togliere il commento a WaylandEnable=false
:
# GDM configuration storage
[daemon]
WaylandEnable=false
[security]
[xdmcp]
[chooser]
[debug]
# Uncomment the line below to turn on debugging
#Enable=true
Riavviare il servizio gdm
:
sudo systemctl restart gdm
Installare e configurare x11vnc¶
Abilitare il repository EPEL:
sudo dnf install epel-release
Creare una password per x11vnc:
x11vnc -storepasswd ~/.x11vnc.pwd
Creare un nuovo file con il proprio editor di testo. Si utilizzerà per creare un servizio per eseguire x11vnc:
sudo vim /etc/systemd/system/x11vnc.service
Copiare e incollare il testo seguente nel file, quindi scrivere e uscire:
Nota
Sostituire il percorso `rfbauth` con il percorso del file di password creato in precedenza. Inoltre, sostituire i valori `User` e `Group` con l'utente a cui si intende fornire assistenza remota.
[Unit]
Description=Start x11vnc at startup
After=display-manager.service
[Service]
Type=simple
Environment=DISPLAY=:1
Environment=XAUTHORITY=/run/user/1000/gdm/Xauthority
ExecStart=/usr/bin/x11vnc -auth /var/lib/gdm/.Xauthority -forever -loop -noxdamage -repeat -rfbauth /home/server/.x11vnc.pwd -rfbport 5900 -shared
User=server
Group=server
[Install]
WantedBy=multi-user.target
Attivare e avviare il servizio x11vnc:
sudo systemctl enable --now x11vnc.service
Connessione al server VNC dalla workstation Rocky¶
Installare il repository EPEL¶
sudo dnf install epel-release
Installare un client VNC¶
Installare TigerVNC. Il server non viene utilizzato, ma si utilizzerà il client:
sudo dnf install tigervnc
Creare il tunnel SSH¶
Creare un tunnel SSH per connettersi al server VNC in modo sicuro:
ssh -L 5900:localhost:5900 REMOTEIP
Avviare il visualizzatore VNC¶
Aprite il vostro visualizzatore VNC con il seguente comando:
vncviewer
Collegarsi al server VNC inserendo 127.0.0.1 o localhost in TigerVNC e connettersi.
Inserire la password x11vnc creata in precedenza.
Congratulazioni! Ora è possibile controllare il desktop da remoto!
Connessione a una macchina attraverso Internet¶
Finora questo articolo ha mostrato come impostare un server x11vnc e come connettersi ad esso utilizzando VNC inoltrato attraverso un tunnel SSH. È importante notare che questo metodo funziona solo per i computer della stessa rete locale (LAN). Supponendo di volersi collegare a un computer su un'altra LAN. Un modo per farlo è impostare una VPN. Di seguito sono riportate alcune guide su come impostare una VPN:
Conclusione¶
Congratulazioni! È stato configurato con successo un server x11vnc e ci si è collegati ad esso utilizzando un client TigerVNC. Questa soluzione è ideale per l'assistenza remota, in quanto condivide la stessa sessione X dell'utente, garantendo un'esperienza di assistenza senza soluzione di continuità.
Author: Joseph Brinkman
Contributors: Steven Spencer, Ganna Zhyrnova, Franco Colussi