Questo articolo aderisce alla campagna (lanciata da me adesso):

Forse cercavi: vnc ubuntu ?

Risposta:NO!

..con la speranza che anche VNC KUBUNTU entri nella cache di Google. :)

Una guida completa, passo a passo, utile per abilitare un server VNC utilizzabile da qualsiasi utente. In questo modo e’ possibile loggarsi per iniziare una nuova sessione.
Se disconnettiamo il client VNC non viene terminata la sessione X (a meno di un log-out esplicito) consentendoci di ri-connette la stessa sessione di nuovo. Il server VNC utilizza un display separato (:1) al posto di quello usato dal server X. Cosi’ due o piu’ sessioni possono essere attivate nello stesso istante.

=================
Installazione pacchetti
=================

NB: Utilizzeremo vnc4server al posto di vncserver altrimenti quest’ultimo non funzionera’ correttamente

sudo apt-get install vnc4server xinetd xvncviewer

Per il login remoto utilizzeremo XDMPC e per abilitarlo andiamo a modificare il file di configurazione del nostro login manager (KDM). Apriamo un terminale e digitiamo:

sudo kate /etc/kde3/kdm/kdmrc

Alla fine del file troviamo:

[Xdmcp]
Enable=false
Willing=/etc/kde3/kdm/Xwilling

Modifichiamolo in:

[Xdmcp]
Enable=true
Port=177
Xaccess=/etc/kde3/kdm/Xaccess
Willing=/etc/kde3/kdm/Xwilling

Salviamo il file e sistemiamo anche /etc/kde3/kdm/Xaccess:

sudo kate /etc/kde3/kdm/Xaccess

Cerchiamo le seguenti righe:

#* #any host can get a login window
#* CHOOSER BROADCAST #any indirect host can get a chooser

Abilitiamole rimuovendo il primo “#” come nell’esempio sottostante:

* #any host can get a login window
* CHOOSER BROADCAST #any indirect host can get a chooser

A questo punto abbiamo bisogno di stoppare il processo KDM per fargli interpretare i files di configurazione appena modificati. Il metodo piu’ semplice, senza ricorrere a reboot o logout, e’ il seguente:

ps -ef | grep kdm

Prendiamo in esame:

root 5385 1 0 Sep05 ? 00:00:00 /usr/bin/kdm

Il numero dopo root e’ il nostro PID da uccidere tramite:

sudo kill -HUP 5385

========================
Impostare la password per il VNC
========================

Apriamo un terminale:

sudo vncpasswd /root/.vncpasswd

Inseriamo la nostra password e prepariamoci ad utilizzare il superdemone XINETD

============================
Impostare il demone di servizi Xinetd
============================

Xinetd, replace di inetd, e’ un cosidetto Superdemone o Wrapper..un demone di basso livello che si occupa dell’intercomunicazione dei servizi interni alla LAN.
Tale demone si appoggia anche su due file presenti in /etc

host.allow
host.deny

Questo ci consente una sicurezza maggiore in quanto dovremo aprire una porta del firewall per il funzionamento del VNC, e Xinetd e’ in grado di accettare le connessioni provenienti dal file host.allow e di negare l’accesso a quelle listate in host.deny
Tramite delle semplici regole contenute in /etc/xinetd.d possiamo far utilizzare questo demone con tantissimi altri programmi (qmail, telnet etc..).

Chiusa questa breve parentesi (per maggiori informazioni su XINETD leggere la guida riportata nel link precedente), aggiungiamo la regola per il nostro VNC:

sudo kate /etc/xinetd.d/Xvnc

NB: Quanto andremo ad aggiungere adesso e’ stato da me modificato rispetto alla guida originale, studiata per Kubuntu Dapper 6.06 (ci sono delle differenze):

service Xvnc
{
type = UNLISTED
disable = no
socket_type = stream
protocol = tcp
wait = yes
user = root
server = /usr/bin/Xvnc
server_args = -inetd :1 -query localhost -geometry 1024×768 -depth 16 -once -fp /usr/share/fonts/X11/misc -DisconnectClients=0 -NeverShared passwordFile=/root/.vncpasswd -extension XFIXES
port = 5901
}

Alcuni parametri sono, come ben si vede, modificabili a piacere..ma e’ preferibile mantenere questi almeno fino alla riuscita dell’operazione (poi possiamo sbizzarrirci).
Abbiamo praticamente terminato, ora si tratta di testare quanto abbiamo appreso fino ad ora.
Teniamo bene a mente questi comandi veloci per resettare sia xinetd che il vncserver:

sudo /etc/init.d/xinetd stop
sudo killall Xvnc
sudo /etc/init.d/xinetd start

Anche se riceviamo l’errore:

Xvnc: no process killed

Non fa nulla, il server e’ stato comunque terminato proprio come ci aspettavamo.
Per provare in locale, ovvero sul computer dove abbiamo installato il nostro VNCserver, lanciamo:

vncviewer localhost:1

Se vediamo apparire il nostro KDM come da screen:

Free Image Hosting at www.ImageShack.us

Significa che tutto funziona e siamo pronti ad accettare anche le connessioni remote, semplicemente installando xvncviewer anche sul computer remoto e collegandosi tramite indirizzo interno ES:

vncviewer 192.168.0.6:1

Al prompt della password inseriamo quella impostata in precedenza per il vncserver.
Se ci fossero qua e la dei problemi ad individuare una istanza di Xinetd attiva, il comando piu’ semplice e’:

sudo netstat -tap | grep xinetd

Che restituisce un output simile a questo:

tcp 0 0 *:5901 *:* LISTEN 1194/xinetd

- Note su firewall e router -

Il VNC utilizza la porta 5901, percio’ va impostata nelle regole di iptable (o firestarter o quasiasi altra GUI) per accettare il traffico in entrata. Se abbiamo un router che assegna degli indirizzi privati (192.168.0.*) dobbiamo creare un nuovo servizio e inserirlo nelle regole del firewall, forwardando la porta 5901, altrimenti il VNC server non sara’ accessibile da remoto.
NB: La password..non scordiamoci la password! altrimenti con un rapido scan by NMAP e’ un gioco da ragazzi individuare il servizio attivo e tentare un login anonimo. Grazie a Xinetd (che qualcuno nemmeno considera, e chi mi sta leggendo se mi sta leggendo e’ meglio che se ne stia proprio zitto) non solo possiamo utilizzare in alternativa i files host.allow e deny, ma la porta 5901 non verra’ mappata da un ipotetico scan perche’ Xinetd non inviera’ alcun pacchetto di risposta. ;)
..tie’..

- Note sulla sicurezza -

Questo setup permette a qualsiasi utente di avviare una sessione remota X-session utilizzando una password per il login ; questo significa che se l’utente si disconnette senza effettuare un logout, qualsiasi altro utente in possesso di tale password puo’ connettersi subito dopo e ripristinare la stessa sessione avviata dal primo utente. Se non abbiamo intenzione di fare log out prima di disconnetterci, e’ consigliabile perlomeno bloccare lo schermo della sessione VNC. Da notare inoltre che mentre un utente remoto e’ loggato tramite VNC, nessun’altra connessione puo’ essere accettata. Un VNC client in attesa (idle) verra’ disconnesso dopo un ora, ma questo tempo puo’ essere modificato utilizzando l’opzione:

-IdleTimeout

Nella riga server_args in /etc/xinetd.d/Xvnc. ESEMPIO:

-IdleTimeout 300

Imposta a 5 minuti la scadenza della sessione.

Guide, consigli, approfondimenti

- Gnome VNC howto
- Kde VNC howto
- Xdmpc-KDM Howto

Related Posts Plugin for WordPress, Blogger...

Il tuo indirizzo ip:
38.107.179.230

Valutazione 3.00 su 5
Categories: Senza categoria

Commenti via Facebook:


13 Responses so far.


  1. blood ITALY scrive:

    io amo divilinu :D
    ieri sono stato a sklerare con “desktop sharing” di kubuntu e non ho nemmeno capito se è un server vnc o una cosa simile..
    bene..oggi provo!!
    grazie mille!!

      Quota

  2. divilinu ITALY scrive:

    @blood
    pure il desktop sharing di kde e’ ottimo..e’ in programma howto anche su quello ;)

      Quota

  3. lele85 ITALY scrive:

    Quello di KDE è facilissimo! E funziona anche molto bene! Sinceramente non ho questo tipo di esigenze, m’ha l’ho provato così per sfizio! :)

      Quota

  4. khelidan ITALY scrive:

    Ma è tuo lo screen??Vedo una iso archlinux….. :)

      Quota

  5. divilinu ITALY scrive:

    @khelidan
    hehe..ma non vi sfugge nulla..
    sto facendo qualche prova con qemu.. :)
    @tutti
    questo sistema e’ davvero comodo..permette piu’ login, una buona sicurezza e facendo logout si chiude la sessione vnc col server che rimane UP.
    L’unica cosa che non ho inserito nella guida e’ che quando si sgancia il client a volte il monitor del server rimane “buio”…lo si resuscita con ctrl+alt+f7 (credo sia il display di default)

      Quota

  6. dario ITALY scrive:

    divilinu… tu che sei esperto nel settore… ;-) sai aiutarmi qua: http://forum.ubuntu-it.org/index.php?topic=114042.msg745981#msg745981
    ?

      Quota

  7. divilinu ITALY scrive:

    @dario
    sei nel posto giusto :)
    ho scritto tante cose sugli slideshow..non dovresti avere problemi (fai una piccola ricerca nel blog)

      Quota

  8. blood ITALY scrive:

    caro divi,
    ti voglio solo dire che sto scrivendo questo post tramite vnc dal lavoor al mio cputer di casa…
    che dire..
    senza la tua guida mi sa che sarei ancora a sbatterci la testa!
    grazie mille!

      Quota

  9. divilinu ITALY scrive:

    @blood
    grazie del feedback..effettivamente questo metodo fila via liscio senza grossi problemi ;)

      Quota

  10. El.CABaNa ITALY scrive:

    semplice, chiaro e… perfettamente funzionante!

    Grazie mille

    El

    ps:per la mail togli le mutande ;)

      Quota

  11. divilinu ITALY scrive:

    @El.CABaNa
    ciao..quali mutande? :D

      Quota

  12. El.CABaNa ITALY scrive:

    se leggi il mio indirizzo ci sono le “mutande” all’interno (es. pippomutande@cippa.com)
    se togli le “mutande” trovi l’indirizzo corretto ;)

      Quota

Leave a Reply