Questa tecnica fa affidamento su una caratteristica fondamentale di SSH: il port forwarding (l'inoltro di una porta)
Ci sono molte variazioni su questo tema che dipendono dalle configurazioni di posta che desiderate. Tutto questo richiede SSH, che è disponibile su http://www.ssh.fi/ e mirror. i pacchetti RPM si possono trovare su ftp://ftp.replay.com/pub/crypto/ e i pacchetti Debian su ftp://non-us.debian.org/debian-non-US/ (e sui loro rispettivi mirror).
Per iniziare il port forwarding, lanciate il seguente comando:
ssh -C -f popserver -L 11110:popserver:110 sleep 5
Esaminiamo il comando:
ssh
Il binario ssh stesso, il magico programma che fa tutto questo.
-C
Questo abilita la compressione del flusso di dati. Esso è opzionale, ma generalmente utile, specialmente per gli utenti dialup.
-f
Una volta che SSH ha dato l'autenticazione e ha stabilito il port forwarding, spostatelo in background così gli altri programmi potranno funzionare. Da quando stiamo usando le proprietà del port forwarding di SSH, non abbiamo più bisogno di assegnare ad esso una tty.
popserver
Il server POP cui ci stiamo connettendo.
-L 11110:popserver:110
Inoltra la porta locale 11110 alla porta 110 sul server remoto popserver
.
Noi usiamo una porta locale alta (11110) così ogni utente può effettuare
l'inoltro.
sleep 5
Dopo che SSH ha spostato se stesso in background, esso avvia un comando.
Noi usiamo sleep
affinché la connessione sia mantenuta per un tempo
sufficiente per consentire al nostro client di posta di instaurare la
connessione al server. 5 secondi sono solitamente un tempo sufficiente perché
questo succeda.
Potete usare molte altre opzioni per SSH quando appropriato. Un'impostazione frequente può essere il nome utente (username), poiché potrebbe essere diverso sul server POP.
Questo richiede che sshd sia in esecuzione sul server remoto
popserver
.
Tuttavia non avete bisogno di avere li un account con una shell attiva. Il tempo
che si prende per stampare il messaggio ``You cannot telnet here'' (non potete
collegarvi in telnet qui) è sufficiente per impostare la connessione.
Una volta che avete compreso minuziosamente i comandi da avviare per stabilire il port forwarding, potete provarlo. Per esempio:
$ ssh -C -f msingh@popserver -L 11110:popserver:110 sleep 1000
popserver
è il vostro server POP. Il mio nome utente sulla mia macchina
locale è manish
così ho bisogno di specificare esplicitamente il nome
utente msingh
. (Se il vostro nome utente locale è uguale a quello remoto,
la parte msingh@
non è necessaria.
Poi esso stampa:
msingh@popserver's password:
E digito li la mia password POP (potete avere password diverse per la shell e per il POP oppure usare solo quella della shell). Abbiamo finito! Così possiamo provare:
$ telnet localhost 11110
Il quale potrebbe stampare qualcosa del tipo:
QUALCOMM POP v3.33 ready.
Woohoo! Funziona! I dati sono trasmessi sulla rete criptati, cosicché il solo testo in chiaro è sull'interfaccia di loop-back della mia macchina locale e del server POP.