VNC Mini-FAQ

(a cura di Carlo Luciano Bianco <clbianco@tiscalinet.it>)

Versione 0.1.4 beta2...

... ovvero: "Dicesi HTML..." ;-)

Sommario

0. Premessa.
0.1) Cosa è questo documento?
0.2) A chi si rivolge?
0.3) Mi debbo fidare ciecamente di quello che leggo in questo testo?
0.4) Dove posso trovare l'ultima versione di questo testo?
0.5) Cosa c'è di nuovo in queste FAQ?

1. VNC.
1.1) VNC: Cosa è? A cosa serve?
1.2) Che vantaggi ha VNC rispetto ad altri programmi analoghi?
1.3) Io uso Unix/Linux/BSD/ecc. VNC non mi serve, tanto posso usare una sessione X remota. Giusto?
1.4) A leggere qui VNC sembra fenomenale! Ma avrà anche qualche difetto, no?
1.5) Quanti VNC esistono? Quale devo usare?
1.6) Come posso installare VNC sotto Windows?
1.7) Come posso installare VNC sotto Unix?
1.8) Come posso impostare VNC per avere la massima velocità di connessione possibile per il mio sistema?
1.9) Quanto è sicuro VNC? Se lo installo qualche malintenzionato potrebbe usare il mio computer a mia insaputa?
1.10) Ma installare VNC non minaccia la mia privacy?

2. SSH.
2.1) Cosa è SSH?
2.2) Dove posso trovare SSH per il mio PC? Quale versione debbo installare?
2.3) Come faccio a installare SSH sulla mia macchina?

3. Usare SSH per rendere più sicuro VNC.
3.1) Come configurare il server SSH.
3.2) Come configurare il server VNC.
3.3) Come configurare il client SSH.
3.4) Come configurare il client VNC ed effettuare la connessione.

4. Riferimenti.
4.1) Su VNC.
4.2) Su SSH.

0. Premessa.

0.1) Cosa è questo documento?

Questo documento vuole essere un semplice elenco di risposte alle domande più comuni su VNC e sul suo uso tramite SSH che periodicamente appaiono sui newsgroup it.comp.sicurezza.varie e it.comp.sicurezza.windows. Non ha assolutamente la pretesa di essere una guida completa all'installazione e all'uso di VNC, per cui si rimanda ai link forniti.

0.2) A chi si rivolge?

Per usare in maniera "proficua" e, soprattutto, "sicura" la coppia VNC & SSH è necessario un minimo di conoscenza sia del funzionamento di una rete TCP/IP che dell'amministrazione del sistema operativo su cui si vogliono installare. Pertanto queste conoscenze saranno date per scontate nel prosieguo.

0.3) Mi debbo fidare ciecamente di quello che leggo in questo testo?

Assolutamente no! Il contenuto di questo testo è frutto della mia personalissima esperienza e non è assolutamente detto che su un altro computer le cose funzionino nello stesso e identico modo. In particolare sconsiglio caldamente di installare VNC & SSH direttamente su una macchina collegata ad una rete pubblica e che magari contiene anche dati importanti. È altamente consigliabile effettuare prima una esauriente serie di prove su una macchina "sacrificabile" collegata ad una rete privata e poi, solo quando si è sicuri di essere in grado di mettere tutto a punto correttamente, installare i programmi sulla macchina su cui verranno effettivamente usati. In altre parole, tutto quello che posso dire su quanto ho scritto è: "A me così ha funzionato. A voi non so."

0.4) Dove posso trovare l'ultima versione di questo testo?

All'indirizzo: http://clbianco.altervista.org/vnc/vncfaq.html

0.5) Cosa c'è di nuovo in queste FAQ?

Versione 0.1.4 beta2... ovvero: "Dicesi HTML..." ;-)
a) Completamente riscritte le pagine di tutto il sito usando HTML 4.01 e CSS e in modo da seguire le linee guida del W3C-WAI per l'accessibilità dei contenuti web (si vedano i loghi a fondo pagina). Spero che adesso non ci siano problemi di visualizzazione con nessun tipo di browser, ma in caso contrario vi prego di segnalarmeli così che possa porvi rimedio il prima possibile.
b) Da questa versione la FAQ è disponibile solo in formato HTML.
c) Modificata la risposta 0.4 con l'indirizzo diretto della pagina.
d) Aggiornata la risposta 1.5 e aggiunte le descrizioni di Ultr@VNC, uVNC, PalmVNC, VNCviewer for PocketPC.
e) Aggiornata la risposta 1.6 per la nuova versione di TightVNC.
f) Aggiornata la risposta 2.3 tenendo conto della fine dello sviluppo della distribuzione di OpenSSH curata da Networksimplicity.
g) Aggiornata la risposta 3.2 tenendo conto del nuovo nome della casella di spunta per attivare le connessioni loopback in TightVNC 1.2.8 e del fatto che il loopback funziona ora anche sotto Unix.
h) Aggiornata la risposta 4.1 con i link alle nuove distribuzioni citate nella risposta 1.5.
i) Qualcosa mi dice che anche la risposta 0.5 è stata modificata... ;-)

Versione 0.1.3 beta1 ...ovvero: "la risposta che tutti stavate aspettando"... ;-)
a) Inserita la domanda 1.8 con le istruzioni per configurare VNC per avere la massima velocità di connessione.
b) Rinumerate le domande successive di conseguenza.
c) I lettori più attenti avranno notato una modifica nella domanda 0.5... ;-)

Versione 0.1.2 alpha2 ...ovvero: "ci avviciniamo a grandi passi alla 1.0.0, nostra meta finale"... ;-)
a) Aggiornata la domanda 1.5 per quanto riguarda RealVNC e TightVNC.
b) Inserita la domanda 1.7 con le istruzioni per compilare ed installare TightVNC 1.2.6 sotto Unix. Le successive domande sono state rinumerate di conseguenza.
c) È stata modificata anche la domanda 0.5, nel caso qualcuno avesse dei dubbi... ;-)

Versione 0.1.1 alpha1 ...ovvero: chi va piano... ;-)
a) Completamente riscritta la domanda 1.6, con le istruzioni dettagliate per installare e configurare TightVNC sotto Windows. Le istruzioni per l'installazione in ambiente Unix seguiranno a breve (spero...).
b) Corretto un refuso nella domanda 1.5.
c) Introdotta la domanda 0.5... ;-)

Versione 0.1.0 pre-alpha1 ...e non dite che non vi ho avvertito! ;-)
a) Prima versione pubblicata.

1. VNC.

1.1) VNC: Cosa è? A cosa serve?

VNC vuole dire "Virtual Network Computer". È un programma che permette di controllare il proprio computer da una postazione remota. Quando ci si collega da un qualunque computer alla propria macchina con VNC, sullo schermo si apre una finestra che riproduce in tutto e per tutto e in tempo reale lo schermo della macchina remota. A questo punto si può lavorare all'interno di questa finestra esattamente come se si fosse seduti fisicamente davanti a schermo, tastiera e mouse della propria macchina, anche se in realtà ci si trova a chilometri di distanza.

1.2) Che vantaggi ha VNC rispetto ad altri programmi analoghi?

Molti. I principali sono:
a) VNC è multipiattaforma. Questo vuole dire che potete usarlo su qualunque piattaforma, e la compatibilità è totale. In particolare, potete collegarvi a una macchina Windows per usarla da remoto da una macchina Unix, oppure potete collegarvi dal vostro PC con Windows ad una workstation Unix remota, oppure ancora potete collegarvi da una macchina che monta MacOS ad un PC con Linux, ecc.
b) VNC è estremamente compatto. In altre parole, il file .zip contenente sia il server che il client entra tranquillamente su un normale floppy HD da 1.44MB.
c) VNC non è per nulla invasivo. L'installazione del server non apporta praticamente nessuna modifica al sistema, neanche sotto Windows. Inoltre il client non necessita di alcuna installazione per funzionare. Quindi potete tranquillamente mettere il client su un floppy e portarvelo appresso per usarlo quando ne avete bisogno, senza dover installare nulla sul computer che state usando in quel momento per collegarvi.
d) Del client esiste addirittura una versione scritta in Java. Quindi potete collegarvi da qualunque macchina che abbia installata una Java Virtual Machine.
e) I sorgenti di VNC sono disponibili. Quindi potete sapere esattamente cosa faccia e, se proprio non esiste una versione già pronta per la vostra macchina, nessuno vi vieta di compilarvela da voi, magari con delle aggiunte che vi possono essere utili.
f) VNC è gratuito. La qual cosa non guasta di certo... ;-)

1.3) Io uso Unix/Linux/BSD/ecc. VNC non mi serve, tanto posso usare una sessione X remota. Giusto?

Sbagliato. Ci sono moltissimi vantaggi nell'usare VNC al posto di una sessione X remota. Ad esempio:
a) Potete collegarvi alla vostra workstation Unix anche da una macchina che non abbia installato un X server. Ad esempio, potete collegarvi da un PC con Windows.
b) D'accordo, esistono anche X server per Windows. Ma il client VNC entra comodamente su un floppy e non necessita di alcuna installazione. Avete mai provato a mettere un X server per Windows già pronto all'uso su un floppy?
c) La sessione X remota dura fino a che siete collegati e viene chiusa quando vi scollegate. Quindi, se dovete avviare sulla macchina Unix remota un processo che durerà molte ore, l'unica possibilità è restare collegati fino al termine del processo. Invece, se usate VNC, potete collegarvi, lanciare il processo, scollegarvi, andare su un altro computer, ricollegarvi molte ore dopo e ritrovare la vostra sessione sulla macchina Unix esattamente come l'avete lasciata, come se non vi foste mai scollegati.

1.4) A leggere qui VNC sembra fenomenale! Ma avrà anche qualche difetto, no?

Sì, VNC ha almeno un grosso difetto. Questo suo essere intrinsecamente multipiattaforma, questo suo essere estremamente "educato" nei confronti del sistema su cui è installato, lo si paga in termini di prestazioni. VNC funziona (detto in modo grossolano) catturando lo schermo e spedendolo via internet come immagine. La cattura avviene usando funzioni ad alto livello e la quantità di dati che deve essere trasmessa via rete è molto grande. Quindi, se la connessione non è molto veloce, il sistema diventa quasi inutilizzabile. Per questo sono stati sviluppati dei sistemi particolari come il "Tight encoding" (vedi domanda 1.5).

1.5) Quanti VNC esistono? Quale devo usare?

Ne esistono molti. La disponibilità dei sorgenti ha fatto sì che venissero sviluppate molte diverse "distribuzioni", ognuna con i suoi pregi e i suoi difetti e ottimizzata per un compito particolare. Quella che segue non vuole essere certo una lista esaustiva, vista la velocità con cui si susseguono nuove versioni e nuove "distribuzioni" e vengono aggiornate quelle esistenti, ma si limita a fornire un panorama generale della situazione:
a) VNC "liscio": la versione originale sviluppata dai laboratori della Olivetti e poi ceduta ai laboratori di Cambridge della AT&T. È la versione "base" da cui tutte le altre sono derivate. Non supporta nessun sistema di compressione dei dati, quindi può essere utilizzata senza problemi solo con una connessione dai 100Mb in su. È assolutamente inutilizzabile via modem. È disponibile per le piattaforme Unix, Win32, Mac (beta), Java (solo viewer) e WinCE 2.x (beta, solo viewer). Non è più sviluppata e i suoi autori si dedicano ora a RealVNC.
b) RealVNC: evoluzione di VNC "liscio", sviluppata dallo stesso team a più di un anno dalla sua ultima versione. Incorpora moltissime migliorie, incluso uno speciale "encoding" per connessioni lente. Non si basa sulle varie distribuzioni di VNC uscite nel frattempo, ma proviene da una linea di sviluppo totalmente separata e parallela. Incorpora un sistema per misurare automaticamente la banda disponibile all'inizio di ogni connessione. In tal modo è in grado di impostare automaticamente i parametri di compressione per avere la massima velocità possibile. Purtroppo non supporta il "Tight encoder" che, in base a quanto ho sentito dire ma non ho mai verificato di persona, rimane il migliore quando la banda è veramente poca (leggi: modem 56K). È disponibile per le piattaforme Unix e Win32.
c) TightVNC: ovvero VNC con "Tight encoder". Date le limitazioni del VNC "liscio" in presenza di connessioni lente, è stato sviluppato da Constantin Kaplinsky il "Tight encoder" per comprimere il più possibile i dati inviati in internet e ridurre la richiesta di banda. In aggiunta alla codifica "tight", le immagini dello schermo che vengono inviate via internet possono essere compresse in formato JPEG (se lo schermo è a 24 o 32 bpp) e/o possono essere compresse con la libreria zlib. Il sistema funziona così bene da essere utilizzabile addirittura con una connessione via modem a 56Kbps. È stata annunciata una nuova versione che dovrebbe incorporare molte delle migliorie introdotte dalle altre distribuzioni basate su TightVNC (VdaccVNC e eSVNC), rendendole quindi disponibili anche agli utenti Unix. È disponibile per le piattaforme Unix, Win32 e Java (solo viewer). Nel seguito parlerò principalmente di questa distribuzione, visto che è quella che uso io... ;-)
d) VdaccVNC: ovvero "Video Driver ACCelerated VNC". È una versione sviluppata da Rudi de Vos a partire da TightVNC per tentare di renderlo ancora più veloce. La cattura dello schermo avviene non ad alto livello, ma a livello del driver della scheda video. In questo modo la cattura è molto più veloce e impegna meno la CPU di sistema. L'altra faccia della medaglia è la necessità di installare nel sistema operativo un driver video apposito che si interfacci al driver video esistente. Questo può ovviamente portare a problemi di compatibilità e a blocchi di sistema, facendo venire meno la "non invasività" di VNC di cui parlavamo più sopra. Attualmente il driver esiste per WinNT4/2000/XP. Una ulteriore miglioria rispetto al "TightVNC" standard riguarda la possibilità di condividere via internet una sola applicazione invece dell'intero desktop, come già avviene con le sessioni X remote sotto Unix. Inoltre è possibile avere un desktop diverso per ogni utente connesso, di nuovo come già avviene sotto Unix. Queste differenze da TightVNC riguardano solo il server e quindi, anche se il server di VdaccVNC esiste solo per Windows, la connessione può essere effettuata a partire da qualunque macchina usando il normale client di TightVNC. Le ultime versioni di VdaccVNC incorporano però anche una speciale "cache" di trasmissione e quindi richiedono l'uso di un client apposito. Alcune delle migliorie, come la possibilità di condividere una singola applicazione o la possibilità di avere desktop multipli, potrebbero essere incorporati nelle prossime versioni "ufficiali" di TightVNC, a patto che questo non crei problemi per la natura "multipiattaforma" di TightVNC. VdaccVNC non viene più sviluppato. Gli autori di VdaccVNC e eSVNC hanno unito i loro sforzi e stanno ora sviluppando Ultr@VNC.
e) eSVNC: Un'altra versione derivata da TightVNC e di recentissimo rilascio (la prima versione risale a giugno 2002) creata da Samuel Folliard. Include molte migliorie, come la possibilità di ridurre la risoluzione dello schermo remoto per ridurre la quantità di dati da trasmettere via internet o la possibilità di trasferire dei files dal client al server e viceversa. Attualmente esiste solo per Windows, ma molte di queste funzionalità dovrebbero essere incorporate nella prossima versione "ufficiale" di TightVNC che dovrebbe uscire in autunno, rendendole quindi disponibili anche agli utenti Unix. eSVNC non viene più sviluppato. Gli autori di VdaccVNC e eSVNC hanno unito i loro sforzi e stanno ora sviluppando Ultr@VNC.
f) Ultr@VNC: una nuova versione di VNC creata dagli autori di VdaccVNC e eSVNC. Non è stata ancora rilasciata ufficialmente ma è disponibile per il download la "Release candidate 1.06". Sulla carta questa distribuzione dovrebbe essere una vera bomba, dato che vuole mettere insieme tutte le caratteristiche migliori di VdaccVNC, di eSVNC, di TightVNC e di RealVNC e vuole anche aggiungerne molte altre. Per citarne alcune: configurazione automatica delle impostazioni di compressione in base alla banda disponibile (RealVNC), trasferimento di files dal client al server (eSVNC), cattura dello schermo tramite driver video (VdaccVNC), autenticazione NT "nativa" (user, pass e dominio) invece della semplice password di VNC, riscalatura automatica dello schermo per ridurre i dati da trasferire (eSVNC), cache di trasmissione (VdaccVNC), gestione del cursore remoto sul client (TightVNC), "tight encoder" (TightVNC), supporto di plug-in per effettuare ulteriori operazioni su dati trasmessi tra client e server (cifratura, ulteriori controlli dei diritti di accesso, ecc.), possibilità di cambiare la modalità video del server senza interrompere la connessione, finestra di chat testuale tra client e server, connessione XDMCP, ecc. Tutto ciò è disponibile solo per Win32, ma client e server Ultr@VNC sono compatibili con tutte le altre distribuzioni. Questo può eliminare molti problemi in caso di ambienti misti Unix/Win32, anche se ovviamente le funzioni avanzate sono disponibili solo quando si usano sia il client che il server di Ultr@VNC.
g) TridiaVNC: Una versione commerciale di VNC con molte funzioni aggiuntive, come ad esempio il supporto per una autenticazione "NT-nativa" degli utenti remoti sotto WinNT/2K. Si basa su TightVNC per quanto riguarda il sistema di compressione dei dati. Esiste anche una versione gratuita ma con molte meno funzioni aggiuntive.
h) uVNC: una versione del server di VNC per computer a 8 bit, incluso il Commodore 64. Dovrebbe essere compatibile con ogni tipo di client.
i) PalmVNC: una versione di VNC che comprende una versione modificata del server di VNC "liscio" per Win32 e un client per Palm. Dovrebbe funzionare anche con il server standard, ma in tal caso non sarebbero disponibili le funzioni di riscalatura dello schermo.
j) VNCviewer for PocketPC: una versione per PocketPC del client di VNC "liscio".

1.6) Come posso installare VNC sotto Windows?

La procedura descritta è relativa a TightVNC 1.2.8 su Win2K/SP2, ma può essere applicata ad altre distribuzioni con minimi cambiamenti.
a) La prima cosa da fare è ovviamente collegarsi al sito http://www.tightvnc.org/ e andare nella sezione "download". Da qui è possibile scaricare un file .exe autoscompattante e autoinstallante per Win32 (tightvnc-1.2.8-setup.exe). In alternativa, è anche possibile scaricare un semplice file .zip da scompattare in un cartella qualunque creando poi a mano le icone del menù avvio. Ovviamente si possono scaricare anche i sorgenti.
b) Una volta scaricato il file di installazione, basta avviarlo, scegliere la cartella in cui installare il programma (ad esempio c:\programmi\tightvnc) e rispondere "next" a un paio di domande. In pochi secondi l'installazione termina e non è necessario riavviare la macchina. Alla fine dell'installazione dovrete decidere se installare il server di TightVNC come "servizio", caricandolo quindi a ogni accensione della macchina e rendendo disponibile la connessione dall'esterno anche se nessun utente è loggato in locale, oppure se lanciare il TightVNC server solo quando ne avete bisogno. Potrete cambiare questa decisione in qualunque momento.
c) Ora vi trovate con un nuovo gruppo di programmi nel menù avvio: il gruppo TightVNC:

-- Immagine: Gruppo di icone di TightVNC nel menu' avvio. All'interno del gruppo principale, con le icone per avviare il client e il server, ve ne sono altri due. Uno contiene i link alla documentazione e l'altro gli strumenti di amministrazione del server quando viene installato come servizio. Fine immagine. --

Al suo interno si trovano le icone per avviare il client, per avviare il server, un sottogruppo "Administration" per l'impostazione dei parametri del server e un altro sottogruppo con i link alla documentazione.
d) Se non lo avete fatto prima e volete installare TightVNC come "servizio", nel sottogruppo "Administration" cliccate sull'icona "Install VNC Service". Si aprirà una finestra avvertendovi dell'avvenuta installazione. Anche in questo caso riavviare la macchina non è necessario, basta andare nel pannello di controllo, nell'elenco dei "servizi", premere col tasto destro su "WinVNC" e scegliere "start". A questo punto è consigliabile riandare nel sottogruppo "Administration" e cliccare su "Run Service Helper". Si attiverà in questo modo l'icona accanto all'orologio da cui controllare lo stato del server e modificarne le impostazioni. Ovviamente da ora in poi l'avvio del servizio sarà automatico ad ogni avvio del sistema e l'avvio del "service helper" sarà automatico ad ogni login, sia in locale che da remoto.
e) Ok, ora dovete solo configurare il server. Nel solito sottogruppo "Administration" c'è l'icona "Show Default Settings" e nel gruppo principale "TightVNC" c'è l'icona "Show User Settings". Il server, quando qualcuno cerca di connettersi dall'esterno, per prima cosa controlla quale utente è loggato in locale e poi carica e rende effettive le opzioni che quell'utente ha impostato nella finestra "Show User Settings". Se nessun utente è loggato in locale o se l'utente attualmente loggato non ha impostato nessuna opzione personalizzata, il server userà le opzioni impostate in "Show Default Settings". Le due finestre ("Show User Settings" e "Show Default Settings") sono assolutamente identiche e contengono le medesime opzioni, quindi ne riporto solo una per brevità:

-- Immagine: Finestra delle opzioni del server di TightVNC. Qui è possibile impostare la password e le altre opzioni della connessione. Si possono anche impostare diverse modalità di cattura dello schermo. Fine immagine. --

La prima cosa da impostare è la password nell'apposita casella. Come tutte le altre opzioni, anche la password può essere diversa a seconda dell'utente che è attualmente loggato in locale sulla macchina, ma non può essere diversa in base all'utente che si sta connettendo da remoto. Anche se nella casella è possibile impostare una password di qualunque lunghezza, solo i primi 8 caratteri vengono effettivamente registrati ed utilizzati. È possibile anche impostare una password aggiuntiva "in sola visione". I client che si collegano usando questa password possono vedere il desktop della macchina server ma non possono interagire con esso. Dopo aver scelto la password, è possibile impostare la porta su cui il server dovrà mettersi in ascolto. Se non si hanno fondati motivi per non farlo, si può tranquillamente lasciare questa opzione su "auto". È anche consigliabile impostare la disattivazione della tastiera e del mouse "locali" in presenza di una connessione remota. Le opzioni di "polling" riguardano il modo in cui il server controlla cosa viene modificato sullo schermo per inviarlo al client. Il server dovrebbe riuscire a intercettare tutti gli aggiornamenti dello schermo in automatico, ma per alcune finestre (come il prompt dei comandi) questo non funziona e sorge la necessità di controllarne periodicamente "a mano" il contenuto. È ovviamente consigliabile attivare il "polling" solo per le finestre che effettivamente lo richiedono, pena un decadimento delle prestazioni. Di default questo trattamento è riservato al solo prompt dei comandi, e solo se in primo piano. È anche possibile impostare il server per "lockare" la workstation o eseguire un logoff quando l'ultimo client si disconnette. Da ultimo, si può scegliere se far rimuovere al server l'immagine di sfondo del desktop durante le connessioni (altamente consigliabile, a meno che non si abbia una connessione davvero veloce).
g) Ora provate a premere sul bottone "Advanced". Si aprirà una finestra di questo tipo:

-- Immagine: Finestra delle opzioni avanzate del server di TightVNC. Da qui si abilita la possibilità di connettersi sull'interfaccia del localhost, fondamentale per stabilire un tunnel SSH. Fine immagine. --

Da qui è possibile impostare il server per chiedere una conferma all'utente eventualmente loggato in locale prima di accettare una connessione da remoto. Ovviamente, se la risposta dell'utente locale non arriva entro un certo tempo, la connessione può essere accettata automaticamente o rifiutata automaticamente. In questa finestra è anche possibile impostare la priorità delle connessioni. Ovvero, se un utente è già loggato da remoto e il server riceve la richiesta di una seconda connessione, che deve fare? Deve disconnettere la connessione precedente e avviare la nuova, rifiutare la nuova connessione e restare con la vecchia o trasformare la vecchia sessione in una sessione "condivisa" tra i due utenti remoti? La scelta è solo vostra... ;-) Il server di VNC contiene anche un piccolo server HTTP, che viene usato per connettersi tramite il client Java e un browser web. Personalmente non uso il client Java e quindi ho disabilitato il server HTTP deselezionando l'opportuna casella in questa finestra delle opzioni "Advanced", ma questo non vuole dire che voi dobbiate fare lo stesso. Molto importanti in questa stessa finestra sono le due opzioni riguardanti le connessioni "loopback", cioè sull'interfaccia 127.0.0.1. Di default sono disabilitate, ma se si vuole usare un tunnel SSH (vedi punto 3.2), devono essere attivate entrambe: "Allow loopback connections" e "Allow only loopback connections". Infine, si possono impostare le opzioni riguardanti il file di log (se attivarlo o meno e quanto farlo dettagliato) e per disabilitare le password "vuote" (cosa altamente consigliabile!).
h) Da ultimo, ricordate che l'icona del server accanto all'orologio (sia esso il "service helper" o una istanza del server avviata all'occasione) cambia colore in presenza di una connessione:

Non connesso: -- Immagine: Icona del server di TightVNC in assenza di connessioni attive a colori normali. Fine immagine. --, Connesso: -- Immagine: Icona del server di TightVNC in presenza di connessioni attive a colori invertiti. Fine immagine. --.

1.7) Come posso installare VNC sotto Unix?

Anche l'installazione sotto Unix è molto semplice:
a) La prima cosa da fare è installare le librerie richieste per la compilazione, cioè la zlib e la jpeg. Ma questo sono molto probabilmente già installate sul vostro sistema.
b) Poi dovete scaricare il .tar.gz con i sorgenti e scompattarlo. Si creerà in tal modo una sottodirectory chiamata "vnc_unixsrc".
c) Se necessario, aprite con un editor di testo il file "imakefile" nella sottodirectory "vncviewer" e impostate la posizione corretta delle librerie zlib e jpeg nel vostro sistema. Inizialmente potete anche saltare questo punto ed eseguirlo solo in un secondo momento, se durante il primo tentativo di compilazione incappate in un errore causato da librerie mancanti.
d) Nella cartella "vnc_unixsrc" lanciate il comando "xmkmf" e, poi, il comando "make World". Se siete fortunati, e le librerie sono tutte al posto giusto, avrete in tal modo compilato tutto tranne il server di VNC.
e) Entrate ora nella sottodirectory "Xvnc/config/cf", aprite il file "vnclibs.def" con un editor di testo e modificate il percorso delle librerie jpeg e zlib. Se questa operazione era stata necessaria al punto "c", lo sarà molto probabilmente anche adesso. Se, invece, allora si era rivelata inutile, potete anche saltare questo punto.
f) Ritornate nella cartella "Xvnc" ed eseguite, nell'ordine, "./configure" e "make". Se tutto va bene, avete compilato anche il server.
g) A questo punto, tornate nella cartella "vnc_unixsrc" ed eseguite "./vncinstall /usr/local/bin /usr/local/man", ove "/usr/local/bin" è la cartella in cui volete installare i binari appena compilati e "/usr/local/man" è la cartella in cui volete mettere le manpages.
h) Copiate infine a mano il contenuto della sottocartella "classes" ove appropriato, se volete usare la versione Java del client su questa macchina.
i) Aprite il file "/usr/local/bin/vncserver" e modificatelo secondo le vostre esigenze. In particolare, modificate la path ove sono installati i font, o VNC avrà dei problemi a funzionare. Per sapere quale è l'esatta "fontpath" del vostro sistema, potete usare il comando "xset -q".
j) Perfetto, ora avete finito. Tutto quello che dovete fare ora è "loggarvi" sulla machina col nome utente di chi dovrà usare VNC e lanciare "vncserver". La prima volta che lo lancerete, vi verrà richiesto di impostare una password, che sarà la password di login su VNC di quel particolare utente. Poi vi verrà detto su che "display" è stata aperta la sessione VNC dell'utente e potrete collegarvici col client. Se il desktop standard di VNC non vi soddisfa, potete modificare il file "xstartup" nella sottocartella ".vnc" nella HOME dell'utente, in modo da avviate il window manager preferito.
k) Ricordate che la sessione VNC su Unix resta attiva anche dopo che chiudete il client e vi disconnettete. Se vi riconnettete in un secondo momento, ritrovate il vostro desktop proprio come lo avevate lasciato, con tutti i programmi aperti e funzionanti. Per chiudere la sessione definitivamente dovete usare il comando "vncserver -kill :n" ove "n" è il numero del vostro "display". Penso che questo comando debba essere dato loggandosi su un altro canale diverso da VNC (ad esempio con telnet o ssh), ma non ne sono sicuro al 100%.
l) Ovviamente più utenti possono avere più sessioni VNC aperte contemporaneamente. Ogni sessione sarà su un diverso "display".

1.8) Come posso impostare VNC per avere la massima velocità di connessione possibile per il mio sistema?

La velocità di VNC dipende da vari fattori. La connessione è formata da varie fasi, ognuna delle quali ha le sue esigenze in termini di velocità, che non sono necessariamente compatibili con quelle delle altre fasi. Si dovrà pertanto provare più volte per trovare il miglior compromesso. Le varie fasi sono:
a) Il server analizza lo schermo e individua le parti modificate che devono essere spedite al client. Qui non c'è molto da fare per migliorare la velocità, l'unico modo per velocizzare questa fase è usare una distribuzione di VNC particolarmente "ottimizzata" in tal senso. Ad esempio, Vdacc-VNC cattura a livello di driver video invece che di API ad alto livello ed è quindi più veloce, però esiste solo per Win32. Secondo l'autore di eSVNC, un forte miglioramento della velocità di questa fase si ha eliminando ogni forma di accelerazione grafica sul server, agendo dal pannello di controllo:

-- Immagine: Finestra del Pannello di Controllo per la disattivazione dell'accelerazione grafica. Fine immagine. --

Personalmente non ho mai provato e quindi non saprei dire, ma sulle mailing list ho letto molti commenti di persone decisamente soddisfatte da questo "trucco".
b) Il server codifica queste parti di schermo con l'encoding scelto dall'utente e applica l'eventuale compressione. Per accelerare questa fase è necessario usare un "encoding" veloce e impostare la compressione al minimo o, meglio, disabilitarla del tutto. Per avere la massima velocità possibile in questa fase, le opzioni del client dovranno essere impostate nel seguente modo (l'immagine si riferisce a TightVNC 1.2.6, ma le differenze dalle altre distribuzioni sono minime):

-- Immagine: Opzioni del client per velocizzare al massimo la fase di codifica/decodifica. Encoding Hextile e nessuna compressione. Fine immagine. --

La migliore velocità in questa fase si ottiene con l'encoding "hextile" e nessuna compressione. Questo però comporta un utilizzo di banda molto grande.
c) Il server spedisce via rete i dati al client. Neanche a dirlo, per avere la massima velocità in questa fase è necessario impostare la compressione al massimo (l'immagine si riferisce a TightVNC 1.2.6, ma le differenze dalle altre distribuzioni sono minime):

-- Immagine: Opzioni del client per velocizzare al massimo la trasmissione. Encoding Tight, compressione al massimo e compressione jpeg al massimo. Fine immagine. --

La velocità massima nella trasmissione si ottiene con l'encoding "Tight", la compressione al massimo (9) e la compressione JPEG al massimo (0). Questo però comporta un carico di lavoro molto grande sulla CPU del server. Un ulteriore miglioramento si ha con eSVNC, che può ridurre la risoluzione dello schermo del server per ridurre la quantità di dati da spedire via rete. Purtroppo è disponibile solo per Win32. Bisogna ricordare che non sempre attivare "restrict pixels to 8-bit" comporta una minor richiesta di banda. Sui pixel a 8 bit, infatti, non può essere applicata la compressione JPEG. Quindi una connessione a 24 bit compressa JPEG può richiedere meno banda di una a 8 bit senza compressione JPEG.
d) Il client riceve i dati, li decodifica e aggiorna lo schermo in maniera corrispondente. Di nuovo, come nel punto b), una minore compressione si traduce in un minor carico di lavoro del client e quindi in una maggiore velocità. Vdacc-VNC incorpora una "cache" nel client, che può velocizzare di molto la connessione. Ad esempio, se riducete a icona una finestra e poi la ri-espandete, non serve che sia rispedito via rete il contenuto della finestra. Anche eSVNC ha adottato la stessa cache, ma entrambi sono disponibili solo per Win32. La nuova versione di TightVNC (la 1.3 attualmente in fase di sviluppo) dovrebbe implementarla anch'essa, quindi la "cache" sarà presto disponibile anche sotto Unix.

Quindi, per avere la connessione più veloce possibile, è necessario sapere quale delle fasi qui sopra sia il collo di bottiglia del proprio sistema, e velocizzarla al massimo, anche a scapito delle altre. Farò qualche esempio che mi viene dalla mia esperienza personale:
a) I due computer (client e server) sono connessi direttamente con una LAN da 100 Mbit. In questo caso il collo di bottiglia non è certo la connessione. Impostate in modo da velocizzare al massimo le fasi b) e d), cioè l'encoder "hextile" e nessuna compressione, tanto avete banda a sufficienza per una connessione non compressa.
b) Almeno uno dei computer è connesso con un modem analogico a 56K. In questo caso, il collo di bottiglia è invece la connessione. Attivate il "Tight" encoder e impostate la compressione al massimo.

Questi sono solo due esempi estremi e non vanno presi alla lettera. Se la CPU del server è molto lenta o ha molto carico, potrebbe essere opportuno non impostare la compressione al massimo neanche su modem a 56K. E se la LAN da 100 Mbit è sovraccarica, magari un po' di compressione può essere di aiuto. Il mio consiglio quindi è:
a) prima di tutto, in base a quanto scritto qui sopra, scegliete la distribuzione di VNC più veloce per il vostro sistema;
b) poi armatevi di pazienza, fate un po' di prove sul campo e cercate il miglior compromesso tra velocità di codifica/decodifica e velocità di trasmissione.

1.9) Quanto è sicuro VNC? Se lo installo qualche malintenzionato potrebbe usare il mio computer a mia insaputa?

Dipende. Il server di VNC, per funzionare, deve necessariamente aprire una porta TCP e restare in attesa di una connessione. Qualche malintenzionato potrebbe entrare se la password di VNC è banale, oppure potrebbe tentare di sfruttare qualche "bug" non ancora scoperto di VNC per eseguire codice arbitrario sulla macchina. In generale, installare VNC comporta gli stessi rischi che comporta installare un qualunque servizio sulla macchina. La password con cui ci si autentica all'inizio della connessione non viene inviata in chiaro, quindi non può essere intercettata. Dopo l'autenticazione, però, la connessione prosegue in chiaro e quindi in teoria può essere intercettata. Intercettare una sessione di VNC non è per nulla facile, visto che non è composta da una serie di stringhe di testo come una sessione telnet, però in teoria il rischio c'è. Inoltre, la password di VNC è una sola, che deve essere quindi nota a tutti gli utenti. È vero che è possibile impostare diverse password, ma solo in base all'utente attualmente collegato in locale, non in base all'utente che cerca di collegarsi da remoto. Quindi, visto che la password dovrà essere nota a un certo numero di persone, è possibile che qualche malintenzionato la scopra anche se è stata scelta in maniera opportuna. La probabilità che ciò avvenga è direttamente proporzionale al numero di persone che debbono essere a conoscenza della password. Salvo esigenze molto particolari, è sempre consigliabile "proteggere" VNC con un tunnel SSH, che fornisce ben altre garanzie di sicurezza sia in fase di autenticazione che durante la connessione vera e propria.

1.10) Ma installare VNC non minaccia la mia privacy?

In linea puramente teorica, se state lavorando su una macchina con VNC installato e attivo, qualcuno potrebbe collegarsi dall'esterno, vedere esattamente il vostro stesso desktop e spiare tutto quello che fate. In pratica questo rischio non si pone per una serie di motivi:
a) L'icona di VNC nella tray area cambia colore in presenza di una connessione attiva. Quindi nessuno può collegarsi per spiarvi senza che voi ve ne accorgiate.
b) È buona norma impostare VNC per ignorare la tastiera e il mouse locali in presenza di una connessione remota. Questo per evitare che, ad esempio, mentre si sta lavorando da remoto qualcuno urti per sbaglio il mouse "locale" sul tavolo e sposti il cursore dal pulsante "OK" a quello "Annulla" proprio mentre si sta premendo il pulsante del mouse remoto. Ma questo è anche un ulteriore motivo per cui nessuno può collegarsi e spiarvi a vostra insaputa.
c) Se proprio dovete fare qualcosa di altamente riservato e non volete correre alcun rischio, potete sempre disattivare momentaneamente VNC o impostarlo per richiedere una password diversa da quella standard quando voi siete loggati (se il vostro amministratore è d'accordo, ovviamente).
d) Se il vostro amministratore vuole essere sempre e comunque in grado di collegarsi alla vostra macchina con VNC, anche mentre state lavorando, non dovete comunque preoccuparvi. Egli (se vuole) ha infatti in ogni caso tanti di quei metodi per spiarvi che disattivare VNC non gli cambia davvero nulla... ;-).
e) Se disattivate l'icona di VNC nella tray area, lasciate il mouse e la tastiera locali attivi durante la connessione remota, non proteggete VNC con SSH e usate "pippo" come password di VNC, beh, in questo caso ve la siete proprio cercata! ;-)

2. SSH.

2.1) Cosa è SSH?

Una trattazione completa di SSH è al di là degli scopi di questo documento. Si rimanda pertanto ai link forniti in calce. Per gli scopi che ci prefiggiamo ci basterà dire che SSH (che vuole dire "Secure SHell") è un protocollo che consente di aprire una finestra di terminale in modalità a caratteri su una macchina remota ed utilizzarla come se si fosse in locale. Non è assolutamente un'alternativa a VNC, visto che consente solo di aprire un terminale remoto in modalità a caratteri e non di avere un desktop grafico remoto, però ne è il complemento ideale. La connessione SSH tra due macchine è interamente criptata e quindi non è intercettabile. Le password non vengono inviate in chiaro sulla rete, ma criptate anch'esse. L'autenticazione dell'utente può avvenire sia con le tradizionali password di login che con un sistema di firma digitale con chiave DSA o RSA. Inoltre SSH può essere usato per creare un tunnel cifrato tra le due macchine per farvi passare un altra connessione TCP: il client si mette in ascolto su una determinata porta sull'indirizzo IP locale e qualunque connessione a quella porta viene inviata attraverso il canale cifrato SSH ad una opportuna porta sulla macchina remota. In questo modo è possibile connettersi su un canale criptato a servizi che in teoria non supporterebbero questa possibilità. Ad esempio è possibile connettersi a un server di posta POP3 attraverso un canale cifrato SSH, mettendo in comunicazione con un tunnel la porta 110 locale con la porta 110 del computer remoto. Oppure è possibile collegarsi su un canale criptato con VNC a una macchina remota a cui ci si sia preventivamente collegati con SSH. Esistono due versioni del protocollo SSH: SSH1 e SSH2. La prima è ormai vecchia ed ha anche alcuni problemi di sicurezza, completamente assenti nella seconda. Si sconsiglia pertanto nel modo più assoluto di installare sistemi di connessione che supportino solo il vecchio protocollo SSH1. Nel seguito, quando mi riferirò al protocollo SSH, sarà implicito che sto parlando di SSH2.

2.2) Dove posso trovare SSH per il mio PC? Quale versione debbo installare?

Vi sono essenzialmente solo due programmi in grado di funzionare da server SSH. Il primo si chiama, per l'appunto, "SSH" ed è quello che per primo ha introdotto questo protocollo (sia nella versione 1 che nella versione 2). E gratuito solo per uso non commerciale o anche per uso commerciale nella sola versione per Unix. Il secondo si chiama "OpenSSH" ed è stato sviluppato in maniera indipendente dal primo dal team di sviluppo di OpenBSD. È totalmente gratuito per ogni piattaforma. Tutto quello che dirò nel seguito riguarda OpenSSH, ma è applicabile anche a SSH con minimi aggiustamenti.

Per quanto riguarda invece il client, sia SSH che OpenSSH ne comprendono uno. A volte, però, potrebbe non essere possibile o semplicemente essere scomodo installare un sistema SSH completo sul PC da cui ci si vuole connettere. Questo soprattutto nel caso in cui il PC in questione usi Windows, visto che SSH viene installato quasi di default sia in Linux che in Unix. Si preferirebbe quindi avere un semplice client SSH per Windows che consenta di connettersi alla propria macchina, magari abbastanza piccolo e compatto da entrare nello stesso floppy su cui ci portiamo appresso il client VNC, e che non richieda alcuna installazione. Un programma del genere (un vero e proprio "coltellino svizzero") esiste e si chiama PuTTY.

2.3) Come faccio a installare SSH sulla mia macchina?

Dipende dalla macchina, ovviamente. Se è una macchina Unix/Linux/BSD/ecc. ci sono ottime probabilità che SSH sia già installato di default. Se non lo è, chiedete al più presto al vostro amministratore di installarlo. Nel caso siate voi l'amministratore, non abbiate timore: tutto quello che dovete fare è scaricare da internet l'archivio .tar.gz del programma che avete deciso di installare, scompattarlo in una cartella temporanea e poi compilarlo e installarlo con gli script forniti (a patto di avere già installate tutte le librerie necessarie alla compilazione). Ovviamente poi dovrete leggere attentamente la manpage relativa e impostare le dovute opzioni nel file di configurazione. Infine dovrete riprendere la lettura di questo documento e configurare SSH in modo da consentire il tunnel della connessione VNC.

Se invece la vostra è una macchina Windows, le cose si fanno leggermente più complicate. Non perché non esista la possibilità di installare SSH sotto Windows, anzi, ma perché la procedura è abbastanza diversa da una normale installazione di un programma per Windows, a meno che non vi rivolgiate alla versione commerciale di SSH. Principalmente avete due possibilità.
a) La prima è installare Cygwin, che è un ambiente simil-Unix per Windows. Cygwin consente di compilare sotto Windows in maniera quasi indolore programmi scritti per Unix, rendendo disponibili una serie di funzioni che invece Windows non supporta in maniera nativa. Cygwin comprende al suo interno versioni ricompilate per Windows di moltissimi programmi, tra cui anche OpenSSH. Il programma di installazione di Cygwin consente di scegliere quali "pacchetti" installare, quindi non è necessario installare l'ambiente completo se è solo OpenSSH che si vuole avere. Installando Cygwin, tra le altre cose, si avrà anche la possibilità di connettersi tramite SSH alla propria macchina Windows con una vera e propria finestra di terminale remoto in modalità a caratteri, con "bash" come shell di sistema.
b) La seconda possibilità è usare una versione di OpenSSH esplicitamente "portata" sotto Windows resa disponibile da Networksimplicity. In questo caso l'installazione è più semplice, ma bisogna rinunciare a un pò di cose che non possono essere supportate da Windows in maniera nativa. Ad esempio la finestra di terminale remoto usa command.com o cmd.exe invece di bash come shell. Questa versione di OpenSSH non è più né sviluppata né supportata dall'autore, quindi è altamente consigliabile usare quella di Cygwin, visto che può essere utile per una marea di altre cose (include tra l'altro anche una versione ad hoc sia di X-Free86 come server X che di KDE, WindowMaker, XFCE, ecc., nel caso servisse stabilire una sessione X remota...).

3. Usare SSH per rendere più sicuro VNC.

3.1) Come configurare il server SSH.

Nel file di configurazione del server SSH (solitamente "/etc/sshd_config") è necessario specificare l'opzione "AllowTCPForwarding yes". Nel caso non si stia usando OpenSSH, la sintassi del comando potrà essere leggermente diversa. Anche se non è richiesto per la connessione con VNC, si consiglia di disabilitare nel suddetto file di configurazione tutti i sistemi di autenticazione che non verranno usati. Se si decide di autenticare gli utenti con le password tradizionali, lasciare solo "PasswordAuthentication" su "yes" e impostare tutte le altre opzioni su "no". Analogamente, se si opta per l'autenticazione con firma digitale, impostare solo "PubkeyAuthentication" su "yes" e tutte le altre su "no". E così via. In questo modo eventuali "bug" di OpenSSH nella gestione dei metodi di autenticazione non utilizzati non mineranno la sicurezza del sistema. Si consiglia inoltre di disabilitare del tutto il supporto al vecchio protocollo SSH1, per evitare che una errata configurazione del client SSH causi l'apertura di una connessione meno sicura di quello che si pensa.

3.2) Come configurare il server VNC.

Questa è una parte abbastanza delicata. Non basta infatti impostare VNC per accettare le connessioni attraverso il tunnel SSH, ma è necessario impostarlo per accettare solo le connessioni provenienti dal tunnel SSH. Diversamente, l'uso del tunnel sarebbe solo una inutile complicazione per gli utenti autorizzati, mentre i malintenzionati lo eviterebbero senza problemi. Quando si stabilisce il tunnel SSH, è lo stesso server SSH installato sulla macchina ad aprire la connessione alla porta a cui punta il tunnel. Quindi, dal punto di vista di VNC, una connessione attraverso un tunnel SSH è una connessione sull'interfaccia 127.0.0.1, cioè che proviene dalla stessa macchina su cui VNC è installato. Questo tipo di connessioni è rifiutato di default da VNC, ma in questo caso la connessione è fatta a partire dalla stessa macchina solo in apparenza, a causa della presenza del tunnel, e quindi bisogna impostare VNC per accettarla. Di più, bisogna impostare VNC per accettare solo le connessioni che provengono dalla stessa macchina, in modo da far sì che ci si possa connettere a VNC solo attraverso il tunnel SSH. Nel caso si stia usando TightVNC (o una versione da esso derivata) sotto Windows, nella finestra delle opzioni avanzate è necessario spuntare sia la casella "Allow loopback connections" che la casella "Allow only loopback connections". Nel caso invece in cui si stia usando VNC "liscio", sarà necessario modificare un paio di chiavi nel registro di configurazione (si rimanda al manuale di VNC per una spiegazione dettagliata). Nel caso in cui si sia usando VNC (qualunque versione, almeno che io sappia) sotto Unix, sarà necessario lanciare il server VNC con il parametro "-localhost".

3.3) Come configurare il client SSH.

Ok, questo è più facile. Nel caso stiate usando il client di OpenSSH dalla riga di comando di Cygwin o di una macchina Unix, dovete usare il seguente parametro: "-L 5901:127.0.0.1:5900". Questo parametro vuole dire che le connessioni effettuate sulla macchina locale alla porta 5901 verranno inviate in tunnel alla porta 5900 (quella di VNC) della macchina remota sull'interfaccia del localhost (questo è il senso di quel 127.0.0.1). In altre parole, alla macchina remota sembrerà che qualcuno tenti di connettersi alla porta 5900 a partire da sé stessa e VNC quindi accetterà la connessione. Se invece state usando PuTTY, c'è una apposita finestra di dialogo in cui specificare i tunnel da stabilire, con la stessa sintassi vista qui sopra: dalla 5901 alla 127.0.0.1:5900. La scelta di usare la porta 5901 invece della 5900 sulla macchina locale è motivata dal fatto che anche su questa macchina vi potrebbe essere installato VNC e in tal caso la porta 5900 sarebbe già impegnata. Le porte ai due estremi del tunnel SSH possono essere benissimo diverse, non c'è motivo per cui debbano essere uguali. Attivare la compressione dei dati sul canale SSH non è una buona idea se si usa TightVNC. Infatti in tal caso la connessione è già compressa il più possibile e una ulteriore compressione ottiene il solo risultato di assorbire risorse dalla CPU del sistema (sia di quello locale che di quello remoto) senza apportare benefici in termini di richieste di banda.

3.4) Come configurare il client VNC ed effettuare la connessione.

Questa è la parte più facile. Basta impostarlo per connettersi a "127.0.0.1:1", cioè alla porta 5901 della macchina locale (che è il primo estremo del tunnel). Ovviamente la connessione SSH con il relativo tunnel dovrà essere già aperta. La connessione verrà inviata automaticamente e in modo del tutto trasparente alla porta 5900 della macchina remota (l'altro estremo del tunnel) dove il server VNC è in ascolto. Dovrete solo fare un pò di prove per trovare i valori ottimali delle opzioni di compressione nel client di TightVNC. Infatti, mettendo tutte le impostazioni al massimo la banda richiesta è minima, ma l'utilizzo di CPU sia sul server che sul client è massimo e questo rallenta il sistema. Viceversa, a una compressione minima corrisponde un utilizzo minimo della CPU ma una richiesta di banda molto maggiore, banda che potrebbe non essere disponibile. La massima velocità si ottiene quindi impostando la compressione al livello minimo consentito dalla vostra connessione, e questo livello potrà essere trovato solo con un pò di prove.

4. Riferimenti.

4.1) Su VNC.

VNC "liscio": http://www.uk.research.att.com/vnc
RealVNC: http://www.realvnc.com
TightVNC: http://www.tightvnc.org
VdaccVNC: http://services.simac.be/vnc
eSVNC: http://perso.wanadoo.fr/samfd/esvnc
Ultr@VNC: http://ultravnc.sourceforge.net TridiaVNC: http://www.tridiavnc.com
uVNC: http://www.sics.se/~adam/uvnc
PalmVNC: http://palmvnc2.free.fr
VNCviewer for PocketPC: http://www.cs.utah.edu/~midgley/wince/vnc.html

Una fonte inesauribile di informazioni è costituita dalle mailing list su VNC. Ne trovate un elenco alla pagina: http://www.uk.research.att.com/vnc/intouch.html. Vi è anche una lista specifica su TightVNC raggiungibile da http://www.tightvnc.org. Queste mailing list sono accessibili anche su usenet tramite il server news.gmane.org.

Poi, ovviamente, c'è il link dei link: http://www.google.com... ;-)

4.2) Su SSH.

SSH: http://www.ssh.com
OpenSSH: http://www.openssh.org
Cygwin: http://www.cygwin.com
NetworkSimplicity: http://www.networksimplicity.com/openssh/
PuTTY: http://www.chiark.greenend.org.uk/~sgtatham/putty/


--- Valid HTML 4.01! --- Valid CSS! --- Level Triple-A conformance icon, W3C-WAI Web Content Accessibility Guidelines 1.0 ---

--- Bobby WorldWide Approved AAA --- Cynthia Tested! --- Bobby WorldWide Approved 508 ---

--- Backward Compatible --- See your web site through colorblind eyes with the colorblind web page filter. --- Lynx Inspected ---

--- Created with VIM! --- Viewable With Any Browser --- Graphics by GIMP ---