Capitolo 20. Protocollo SSH

SSH™ (o Secure SHell) è un protocollo che facilita i collegamenti sicuri tra due sistemi, usando un'architettura del tipo client/server permettendo agli utenti di registrarsi in sistemi host server, in modo remoto. A differenza di altri protocolli remoti di comunicazione, come FTP o Telnet, SSH cripta la sessione di login, impedendo alle persone non autorizzate di ottenere le password in chiaro.

SSH è stato progettato per sostituire applicazioni precedenti, meno sicure utilizzate per l'accesso a sistemi remoti come telnet o rsh. Un programma chiamato scp sostituisce i programmi meno recenti per copiare i file tra host, quali rcp. Poichè queste applicazioni non cifrano le password tra il client e il server, si consiglia di utilizzarle il meno possibile. Se usate dei metodi sicuri per collegarvi ad altri sistemi remoti, correte meno rischi per la sicurezza del vostro sistema e del sistema a cui vi collegate.

20.1. Caratteristiche di SSH

Il protocollo SSH fornisce le seguenti misure di protezione:

Poichè il protocollo SSH codifica tutto ciò che invia e riceve, esso può essere usato per cifrare protocolli che altrimenti non sarebbero sicuri. Se usate la tecnica chiamata port forwarding, un server SSH può diventare un condotto per rendere sicuri protocolli non sicuri, come POP, aumentando la sicurezza dei dati e del sistema in generale.

Red Hat Enterprise Linux include il pacchetto OpenSSH generico (openssh), server OpenSSH (openssh-server) ed i pacchetti del client (openssh-clients). Per istruzioni sull'installazione e impiego di OpenSSH, consultate il capitolo OpenSSH nella Red Hat Enterprise Linux System Administration Guide. Notare anche che pacchetti OpenSSH richiedono l'installazione del pacchetto OpenSSL (openssl), il quale installa numerose librerie per la cifratura che consentono a OpenSSH di fornire comunicazioni cifrate.

20.1.1. Perché usare SSH?

Utenti maliziosi dispongono di un'ampia varietà di strumenti per interrompere, intercettare e reindirizzare il traffico di rete allo scopo di ottenere l'accesso al vostro sistema. In generale queste minacce possono essere raggruppate nel seguente modo:

  • Intercettazione delle comunicazioni tra due sistemi — in questo scenario un aggressore può trovarsi in qualche punto della rete tra le due entità in comunicazione ed eseguire una copia delle informazioni trasmesse tra i due sistemi. L'aggressore potrebbe intercettare e conservare le informazioni, o modificarle e inviarle al destinatario originale.

    Questo attacco può essere sventato attraverso l'utilizzo di una comune utility di rete per la rilevazione delle intrusioni, puó essere rappresentata da un pacchetto sniffer.

  • Imitazione di un host particolare — Con questa strategia, il sistema di un aggressore finge di essere il destinatario di un messaggio. Se la strategia funziona, il sistema dell'utente non si accorge dell'inganno.

    Questo attacco può essere sventato attraverso tecniche note come DNS poisoning [2] o IPspoofing [3].

Entrambe le tecniche descritte sopra consentono l'intercettazione di informazioni potenzialmente importanti e, se l'intercettazione avviene per scopi ostili, i risultati possono essere disastrosi.

Se SSH viene usato per i login con la shell remota e per la copia dei file, le minacce alla sicurezza si riducono notevolmente. Questo perchè il server e l'SSH client utilizzano le firme digitali per verificare l'identità degli utenti. Inoltre, tutte le comunicazioni tra i sistemi client e server sono cifrate. I tentativi di assumere l'identità di uno dei due sistemi comunicanti non funzioneranno, poichè ogni pacchetto viene cifrato con un codice conosciuto solo dai sistemi locali e remoti.

Note

[1]

X11 si riferisce al sistema di visualizzazione a finestre X11R6.7, generalmente conosciuto come Sistema X Window o X. Red Hat Enterprise Linux comprende XFree86, un sistema X Window Open Source.

[2]

Il DNS poisoning si verifica quando un intruso ottiene l'accesso a un server DNS, indirizzando i sistemi client a un host duplicato.

[3]

L'IP spoofing si verifica quando un intruso invia pacchetti di rete che sembrano provenire da un host fidato della rete.