Questo capitolo illustra i vantaggi del protocollo SSH™, la sequenza di eventi che si susseguono quando viene stabilita una connessione a un sistema remoto, i diversi livelli di SSH e i metodi per garantire che SSH sia usato dagli utenti che si connettono al vostro sistema.
I metodi più diffusi per collegarsi in modo remoto a un altro sistema (tramite telnet, rlogin o rsh) oppure per copiare i file tra host (ftp o rcp) sono insicuri e andrebbero evitati. Dovreste invece connettervi a un host remoto usando una shell sicura o una rete virtuale privata e cifrata. L'uso di metodi sicuri per collegarsi ad altri sistemi in modo remoto diminuisce i rischi per la sicurezza di entrambi i sistemi (il vostro e quello remoto).
SSH (o Secure SHell) è un protocollo che vi consente di stabilire connessioni sicure tra due sistemi. Il calcolatore client avvia una connessione con un calcolatore server e SSH fornisce le seguenti misure di protezione:
Dopo una connessione iniziale, il client riesce a identificare lo stesso server a cui si connette, durante sessioni successive.
Il client trasmette le proprie informazioni di autenticazione al server, per esempio il nome utente e la password, in forma cifrata.
Tutti i dati inviati e ricevuti durante la connessione vengono trasferiti utilizzando una cifratura complessa, in questo modo è estremamente complesso decifrarli e leggerli.
Il client può utilizzare le applicazioni X11[1] lanciate dal prompt della shell. Viene così fornita un'interfaccia grafica e sicura (chiamata X11 forwarding).
Anche il server può approfittare di SSH, specialmente se esegue numerosi servizi. Se usate port forwarding, potete cifrare protocolli insicuri (per esempio POP) per stabilire una comunicazione sicura con le macchine remote. SSH facilita la cifratura di diversi tipi di comunicazione normalmente inviati in modo poco sicuro tramite le reti pubbliche.
Red Hat Linux 7.1 comprende i pacchetti Openssh server (openssh-server), client (openssh-clients) e il pacchetto generico. Per attivare questi pacchetti è necessario installare anche il pacchetto generico OpenSSH (openssh). Per le istruzioni sull'installazione e l'implementazione di OpenSSH, consultate la Official Red Hat Linux Customization Guide.
I pacchetti OpenSSH richiedono l'installazione di openssl, che comprende numerose librerie cifrate per consentire a OpenSSH di fornire comunicazioni cifrate. Openssl va installato prima dei pacchetti OpenSSH.
Molti programmi client e server possono utilizzare il protocollo SSH, tra cui molte applicazioni open source disponibili gratuitamente. Esistono varie versioni del client SSH per quasi tutti i maggiori sistemi operativi in uso. Anche se gli utenti che si connettono al vostro sistema non possiedono Red Hat Linux possono comunque trovare e utilizzare un client SSH nativo per il proprio sistema operativo.
Tra le minacce al traffico di rete vi sono la rilevazione dei pacchetti, falsi DNS e IP[2] e la diffuzione di informazioni di instradamento contraffatte. In termini generali queste minacce possono essere raggruppate in due categorie:
Intercettazione delle comunicazioni tra due sistemi — questo scenario prevede l'esistenza di una terza parte in qualche punto della rete tra le due entità in comunicazione. Questa terza parte esegue una copia delle informazioni trasmesse tra i due sistemi, per conservarle o inviarle modificate al destinatario originale.
Imitazione di un host particolare — con questa strategia, un sistema intercettante finge di essere il destinatario di un messaggio. Se la strategia funziona, il client non si accorge dell'inganno e continua a comunicare con il sistema intercettante come se il proprio traffico raggiungesse con successo la destinazione desiderata.
Entrambe le tecniche descritte sopra possono intercettare le informazioni e molto probabilmente con scopi ostili. I risultati potrebbero essere disastrosi, se gli intercettatori riescono a rilevare tutti i pacchetti su una LAN oppure se un server DNS
Se SSH viene utilizzato per i login con la shella remota e per la copia dei file, è possibile ridurre notevolmente queste minacce. Una firma digitale di un server fornisce la verifica per la propria identità. L'intera comunicazione tra i sistemi client e server non possono essere utilizzati se intercettati, perché ogni pacchetto è cifrato. I tentativi di assumere l'identità di uno dei due sistemi comunicanti non funzioneranno, poiché ogni pacchetto è cifrato con un codice conosciuto solo dai sistemi locali e remoti.
[1] | X11 si riferisce al sistema di visualizzazione a finestre di X11R6, abbreviato con X. Red Hat Linux comprende XFree86, sistema X Window molto diffuso e basato su X11R6. |
[2] | Per "falso" s'intende spacciarsi per un particolare sistema e in realtà non esserlo. |