Sicheres tunneln von unsicheren Protokollen mit ssh
Autor: framp
Dieser [TIP] Thread gibt Hinweise wie man unsichere Netzwerbindungen mit ssh tunneling absichern kann.
ssh ist eine sichere Zugangsmethode ueber unsichere Netzwerkverbindungen zu Konsolen und sollte immer an Stelle von dem unsicheren telnet benutzt werden. ssh kann aber auch benutzt werden um andere beliebige llte tunlichst nicht direkt ueber ein unsicheres netz benutzt werden. ssh besitzt impliziten Support fuer X forwarding. Alle anderen Protokolle muessen das ssh tunneling benutzen bei dem entweder auf dem remoten (sshd) Server ein tunnel erzeugt wird oder auf dem lokalen (ssh) Client.
ssh tunneling kann sehr gut eingesetzt werden um Firewalls zu umgehen. Das ist aber nicht Thema dieses Threads.
Jeder, der mit ssh Tunnel versucht Firmenfirewalls zu umgehen sollte sich darueber im Klaren sein, dass das zu einer fristlosen Kuendigung fuehren kann!
1) X forwarding
Die einfachste Anwendung ist das X forwarding. Sie besteht aus zwei Schritten: 1) ssh Logon auf dem Server 2) Start der X Anwendung auf dem Server
Code:
ssh -XC idefix
und dann muss in der geoeffneten ssh Session die X Anwednung gestartet werden (z.B. xeyes) Code:
xeyes
2) ssh tunneling
Nur wird im folgenden exemplarisch ssh dazu benutzt um telnet sicher ueber ssh zu tunneln. Das kann natuerlich auch fuer z.B. http, socks, proxy, smtp, pop etc getan werden. Insbesondere fuer pop und smtp ist das eine gut Moeglichkeit um die Protokolle abzusichern. Dabei wird das local tunneling angewendet.
Das Prinzip ist wie folgt:
Client Port 4711 -> [tunnel beginn] Client Port 22 -> Server Port 22 [tunnel ende] -> Server Port 23
D.h. es wird ein Tunnel aufgemacht vom Client durch den Port 4711 ueber den ssh Port 22 zum Server und dort endet der Tunnel am Port 23
Eroeffnen des Tunnels vom Client zum Server Idefix:
Code:
ssh -L 4711:idefix:23 idefix
Danach auf dem Client eingeben: Code:
telnet localhost 4711
und schon ist man auf dem Server idefix per telnet angemeldet. Da alles ueber ssh getunnelt wird kann auch keiner das Klartext Passwoert von telnet lesen.
Natuerlich kann auch das Ziel des Tunnels auf einem anderen Server als dem ssh Server liegen. Wenn der Zielserver z.B. obelix sein soll muss Code:
ssh -L 4711:idefix:23 idefix
geaendert werden in Code:
ssh -L 4711:obelix:23 idefix
Wenn Applikationen nicht vom Client zum Server sonder genau umgekehrt vom Server zum Client getunnelt werden sollen muss das remote tunneling angewendet werden. Implizit wird dieses Verfahren beim X forwarding angewandt.
Weitere Informtionen zu OpenSSH und ssh tunneling:
[1]ssh tunneling (Englisch)] ssh tunnel tutorial (Deutsch) ssh tunnels (Deutsch) OpenSSH homepage (Englisch) OpenSSh manuals (Englisch) Tunneling Windows NT VNC traffic with SSH2 (Englisch)[/url Sharing (tunneling) Samba/CIFS/SMB file systems over SSH (Englisch) VNC über SSH HowTo © Alexander Heinz (Deutsch)
Des weiteren liefert eine Suche nach ssh forwarding oder ssh tunneling mit Google diverse Seiten die dieses Thema behandeln.
Als Zusatz noch: Beim X-Forwarding empfiehlt sich die Verwendung der Option -Y statt -X, manche Programme laufen sonst nicht sauber.
stka hat Folgendes geschrieben: Um Dienste zu tunnel ist stunnel besser
Fuer mich ist stunnel ein Subset von ssh ( http://www.stunnel.org/faq/ ). Was ist Deiner Meinung besser an stunnel bzw was fehlt bei ssh was stunnel kann?
eingefügt von: --Yehudi 01:57, 26. Aug 2006 (CEST)