Sicherer Datenaustausch via OpenSSH

Port-Forwarding auf entfernte Rechner

Um die Übersicht zu behalten, verwenden wir auch in den folgenden Beispielen immer die Original-Portnummer des zu tunnelnden Dienstes plus 20000.

Das Port-Forwarding funktioniert nicht nur auf Ports am SSH-Server, sondern auf beliebige Rechner. Dazu ist einfach die Adresse des endgültigen Zielservers anzugeben:

ssh benutzer@sshrechner -L lokaler_port:zielrechner:entfernter_port

Damit lässt sich beispielsweise ein Intranet-Webserver erreichen, der nicht unbedingt auf dem SSH-Server laufen muss. Über das Kommando

ssh benutzer@sshrechner -L 20080:intranetserver:80

und den Aufruf der URL http://localhost:20080 werden die Daten aus dem Intranet verschlüsselt übertragen. Dabei ist zu beachten, dass nur der Weg zwischen SSH-Client und -Server gesichert ist. Die Strecke vom SSH-Server zum Intranet-Server jedoch nicht mehr. Mittels Port-Forwarding lassen sich fast alle TCP-basierenden Dienste tunneln, wie beispielsweise HTTP , SMTP , POP3 , IMAP oder NNTP . FTP funktioniert dagegen nicht, dafür dient der bei OpenSSH mitgelieferte SFTP-Server.

Das Remote Forwarding funktioniert analog zum lokalen Weiterleiten, allerdings genau anders herum. Eine Verbindung kommt auf einem Port am SSH-Server an und wird von dort durch den Tunnel zum Client geschickt. Das Kommando dafür lautet:

ssh benutzer@sshrechner -R entfernter_port:sshclient:lokaler_port

Ist der Tunnel erst einmal aufgebaut können Sie mit den Kommandos scp (secure copy) und sftp (secure ftp) Dateien zwischen den beiden Rechnern hin und her schieben. Wem die Kommandozeile dafür zu aufwendig ist, der kann mit Shareware-Tools wie Secure iXplorer Pro von i-Tree komfortabel per Drag und Drop arbeiten.