SSH (seconda parte)

Port Forwarding e X Forwarding

SSH intercetta le richieste dei programmi, le cifra e le spedisce attraverso la rete. Il flusso dei dati generato da altre applicazioni che usando il protocollo di trasferimento TCP può essere cifrato al momento della spedizione e decifrato sul computer remoto.

Questa tecnica, detta port forwarding, è spesso usata per rendere sicura la trasmissione di informazioni mediante protocolli insicuri come Telnet, SMTP, IMAP, POP…

Se ci si vuole connettere a un server IMAP facendo si che la password e il nome utente non passino per la rete in chiaro si può usare la tecnica di port forwarding, tuttavia è necessario che il server abbia attivo un server SSH.

Local forwarding

Con l’inoltro locale i dati, pronti per essere spediti sulla rete, vengono intercettati dal client ssh che li cifra e li mette in circolo. I dati vengono raccolti dal server ssh sul computer remoto che li decifra e li inoltra alla porta dove l’applicazione IMAP è in ascolto.

Si deve fare un tunnelling, impartendo il comando sul computer locale:

$ ssh -L2333:localhost:143 server.example.com

Quest’impostazione rimane attiva finché non viene fatto il logout della sessione.

La porta 143 del localhost viene inoltrata sulla 2333 mentre il parametro -L indica che è stato fatto un fordwarding locale (local forwarding), l’ultimo parametro server.example.com sta per il nome della macchina remota oppure il suo IP address.

Per poter scaricare i messaggi è necessario configurare il programma di posta elettronica per collegarsi al server e indicare come porta 2333 anziché 143.

Come funziona il meccanismo?

Il programma di posta invia i messaggi alla porta 2333.

Il client SSH, sul computer locale, riceve i dati dalla porta 2333, li cifra e li spedisce attraverso la rete al server IMAP.

Il server decifra i dati e li manda alla sua porta 143.

I dati vengono inviati dal server al computer locale facendo il procedimento inverso.

E’ possibile specificare nel file di configurazione del client ssh l’inoltro locale inserendo la riga (se si usa OpenSSH):

LocalForward 2333 localhost:143

local forwarding ssh

Remote forwading

L’inoltro remoto è diverso da quello locale: Il server, sul quale è stato impartito il comando, quando riceve delle richieste alla porta 143 invierà le risposte usando il canale cifrato instaurato verso la porta 2333 del client.

Sul server IMAP si deve utilizzare il comando:

$ ssh -R2333:localhost:143 client.example.com

Dove -R sta per remote forwarding, 2333 è la porta remota al quale verrà inoltrati i dati, poi c’è l’indirizzo IP del server e la porta di ricezione delle richieste.

Solamente le richieste di client.exmple.com riceveranno questo trattamento, mentre altre richieste verranno processate normalmente.

Modificando il file di configurazione del client ssh, con OpenSSH, si può aggiungere:

RemoteForward 2333 server.example.com:143

remote forwarding ssh

X-Forwarding

X-Forwarding è l’inoltro delle connessioni al protocollo X (il window system di Unix). Usando questo protocollo si possono eseguire le applicazioni X su una macchina remota. Purtroppo il trasferimento dei dati non prevede la cifratura del canale, adoperando ssh si può risolvere il problema.

linux

Articolo precedente

Recupero dati
phpBB3

Articolo successivo

PhpBB3 hardening