[ubuntu-it] VNC server

Marco Fabbri mrfabbri a gmail.com
Gio 30 Mar 2006 14:28:35 BST


On 3/30/06, Marduk <puppetsmaster a interfree.it> wrote:
> Qualcuno sa' dirmi come si fa ad avviare vncserver senza alcun utente
> loggato e senza usare ssh per avvviare un instanza vnc????? Grazie
>
Qualche tempo fa ho buttato giù qualche appunto sul tema a scopo di
memorandum, dovrebbero risultarti utili:

Scopo
Configurare un server vnc autonomo per controllo remoto, e configurare
il servizio in modo che sia avviato da inetd.

A. Materiale Necessario
sul host che farà da server vnc sono necessari vncserver e (demone ssh
che dovresti già avere)
apt-get install vnc4server
(apt-get install sshd)

B. Configurazione
La configurazione coinvolge login manager (gdm in questo caso) e inetd

1. è necessario modificare /etc/gdm/gdm.conf in modo che accetti
connesioni via tcp, i.e.

nella sezione [xdmcp]
acommentare la linea Enable=true

(*NOTA) questo permette di connettersi al login via la porta :177 indi è
meglio che suddetta porta sia firewallata (la sessione vnc sarà
inoltrata via tunnel ssh sul host, per cui la connessione vnc<-->gdm
avviene localmente)

2. configura il buon vecchio internet super demone (inetd) in modo da
avviare un server vnc ogni qualvolta che un cliente vnc si connette alla
porta 5950, più clienti avranno diverse sessioni vnc

(*NOTA) vnc per associare porta a #display utilizza la regola porta=5900
+#display e.g. #display 50 --> porta 5950

si aggiunge in coda al file /etc/inetd.cof facendolo seguire da una riga
vuota (ciò che segue a dispetto di evolution è tutto su una riga)

5950    stream  tcp nowait nobody /usr/bin/Xvnc Xvnc -inetd -geometry
800x600 -depth 16 -query localhost -once -securitytypes=none

(*NOTE) le opzioni più significative
-nowait alloca per ogni cliente una nuova sessione, i.e. nessun altro
utente può vedere la tua sessione vnc, per contro quando mi disconnetto
da vnc viene anche terminata la mia sessione di lavoro non è possibile
disconnettersi e riconnettersi alla stessa sessione di lavoro
-query localhost effettua la richiesta di login al gdm locale
-securitytypes=none elimina l'autenticazione di vnc (l'autenticazione
viene comunque effettuata a livello di ssh prima e di login poi - la cui
password viaggia, grazie ad ssh, criptata)

Per utilizzare il servervnc in modalità persistente, i.e.
disconnettendosi e riconnettendosi alla stessa sessione di lavoro (la
porta su cui è attivo il servizio sarà legata ad una sola sessione) è
necessario utilizzare l'opzione wait ed abilitare l'autenticazione vnc,
per evitare hijiaking della sessione, si aggiunge in coda al
file /etc/inetd.cof facendolo seguire da una riga vuota (al solito ciò
che segue a dispetto di evolution è tutto su una riga)

5951    stream tcp wait mfabbri /usr/bin/Xvnc Xvnc -inetd -query
localhost -once passwordFile=/home/mfabbri/.vnc/passwd

dove mfabbri è l'utente per cui vogliamo avere la sessione persistente
(in questa configurazione sarà necessario avere una riga per ogni utente
di cui si vuole abilitare la sessione persistente)

Una volta apportate le modifiche a inetd.conf per fare ricaricare ad
inetd suddetto file è necessario inviare il segnale di hang up SIGHUP
i.e.

sudo killall -SIGHUP inetd

Per generare il  passwordFile /home/mfabbri/.vnc/passwd è necessario
eseguire il comando vncpasswd (in questo caso come utente mfabbri)

C. Esecuzione
Sul computer da cui si vuole controllare il server remoto $PIPPOSERVER
eseguire

vncviewer -via $PIPPOSERVER :50

per la sessione persistente invece
vncviewer -via $PIPPOSERVER :51

se il visualizzatore vnc non supporta l'opzione via si può ovviare
eseguendo su una console

ssh -L 5950:mfabbri a localhost:5950 $PIPPOSERVER

e su un altra console

vncviewer :50

Saluti,

--
Marco

=====
As Variety strives to Infinity,
it becomes Uniformity.

Variety is a good approximation of Truth.



More information about the ubuntu-it mailing list