Deze techniek gaat af op een basisfeature van ssh: port forwarding
Er zijn veel variaties op dit thema, wat afhangt van je gewenste mailsetup. Voor allen is ssh nodig, wat beschikbaar is vanaf http://www.ssh.fi/ en mirrors. RPM's zijn beschikbaar op ftp://ftp.replay.com/pub/crypto/ en Debian packages zijn beschikbaar op ftp://non-us.debian.org/debian-non-US/ (en respectieve mirrors).
Voer de volgende opdracht uit om port forwarding op te starten:
ssh -C -f popserver -L 11110:popserver:110 sleep 5
Laten we die opdracht eens wat nader bekijken:
ssh
De ssh binary zelf, het magische programma dat het allemaal doet.
-C
Hiermee wordt de compressie van de datastroom geactiveert. Het is optioneel, maar gewoonlijk nuttig, vooral voor dialup gebruikers.
-f
Zodra ssh de authenticatie heeft uitgevoerd, en de port forwarding tot stand heeft gebracht, plaatst het zichzelf in de achtergrond zodat andere programma's kunnen worden uitgevoerd. Aangezien we slechts de port forwarding features van ssh gebruiken, hoeft er geen tty aan te zijn gekoppeld.
popserver
De POP-server waar we een verbinding mee maken.
-L 11110:popserver:110
Forward de lokale poort 11110 naar poort 110 op de remote server
popserver
.
We gebruiken een hoge lokale poort (11110) zodat elke gebruiker forwardings
kan aanmaken.
sleep 5
Nadat ssh zichzelf in de achtergrond heeft geplaatst, voert het een
opdracht uit. We gebruiken sleep
zodat de verbinding lang genoeg
blijft onderhouden voor onze mailclient om een verbinding met de server
te kunnen maken. 5 seconden is hiervoor gewoonlijk genoeg.
Wanneer van toepassing kun je gebruik maken van de meeste andere opties van ssh. Een gebruikelijke instelling kan een gebruikersnaam zijn, aangezien het een andere gebruikersnaam kan zijn dan die op de POP-server.
Hiervoor moet sshd op de remote server popserver
draaien. Je hoeft er echter geen actief shellaccount te hebben. De tijd
dit het in beslag neemt de melding ``You cannot telnet here'' is voldoende
om een verbinding op te zetten.
Zodra je de details van de opdracht hebt uitgezocht om een port forwarding tot stand te brengen, kun je het uitproberen. Bijvoorbeeld:
$ ssh -C -f msingh@popserver -L 11110:popserver:110 sleep 1000
popserver
is de oude POP server. Mijn gebruikersnaam op mijn lokale
machine is manish
dus moet ik expliciet de gebruikersnaam
msingh
opgeven. (Als de gebruikersnaam op de lokale en remote
computer gelijk zijn dan is het deel msingh@
onnodig.
Dan wordt er afgedrukt:
msingh@popserver's password:
En vervolgens typ ik mijn POP-wachtwoord in (je hebt voor je shell en POP misschien verschillende wachtwoorden dus gebruik die van je shell). Nu zijn we klaar! Dus kunnen we proberen:
$ telnet localhost 11110
wat iets zou moeten afdrukken als:
QUALCOMM POP v3.33 ready.
Woohoo! Het werkt! De gegevens worden versleuteld over het netwerk verstuurd, dus de enige gewone tekst gaat over de loopbackinterfaces van mijn lokale box en de POP-server.