SSH Tunnel mit Linux

Einen Tunnel (mit SSH) zu bauen, bedeutet, dass man eine Terminalverbindung auf einen anderen Rechner herstellt und über diese Verbindung (die verschlüselt ist) wird zusätzlich ein weiterer Port geleitet.
An der Uni Rostock ist es beispielsweise nicht möglich, den Newsserver von außerhalb des Uninetzes zu erreichen. Man sucht sich deshalb einen Rechner der von außen erreichbar ist (und auf dem SSH läuft). Der Rest ist „Kleinkram“.

Wie gehts?
ssh -L localport:dest_server:dest_port -l username tunnelserver

da wir unter Linux Ports unterhalb von 1024 nur als root binden dürfen, können wir den Standard-Newsport 119 nicht verwenden. Ich empfehle stattdessen 1119 (als localport) zu verwenden.
destserver ist unser Ziel, dort soll unser Tunnel hinführen, also der newsserver mit seinem newsport= unser destport = 119. Um dorthin zu gelangen, brauchen wir einen Endpunkt im Uninetz, in meinem Fall ist cksz.rz.uni-rostock.de = tunnelserver.

ein Bsp. ist:
ssh -L 1119:news.uni-rostock.de:119 -l cb000 cksz.rz.uni-rostock.de

Die Verbindung wird erstellt und wir werden nach dem Passwort für User cb000 auf cksz gefragt. Ggf. will ssh vorher von uns wissen, ob er den Schlüssel des Hosts cksz als neu hinzufügen soll; wir wollen.

Die gesamte Übertragung vom lokalen Rechner zum Rechner „cksz…“ erfolgt verschlüsselt, der Rest nicht.

[contact-form-7 id=“701″ title=“Kontaktformular Mailchimp Linux“]

Ein anderes Beispiel
Nehmen wir an, man sitzt auf Arbeit und möchte seine privaten Emails lesen. Die Firmen-Firewall ist aber so eingestellt, dass Verbindungen auf IMAP Server (Port 143 oder 993) nicht durchgelassen werden. Nun kann man sich aber einen Tunnel bauen. Man benötigt einen Rechner im Internet der via SSH erreichbar ist. Über diesen Rechner (nennen wir ihn myproxy.de) soll dann der Emailverkehr abgewickelt werden. Der Name des IMAP Servers sei imap.mydomain.de. Ferner wollen wir von myproxy.de zum IMAP Server eine verschlüsselte Verbindung aufbauen, also den SSL-Port 993 benutzen.
Da man sich als user keinen Port < 1024 nehmen kann, benutzt man beispielsweise 1993 als lokalen Port.

Den Tunnel baut man also so auf:
ssh -L 1993:imap.mydomain.de:993 -l proxyusername myproxy.de

Im Email Client gibt man nun localhost mit Port 1993 und SSL bzw TLS an. Fertig.

ssh -R baut einen Tunnel für den entfernten Rechner auf, funktioniert also in die entgegensetzte Richtung.

ssh -X – X11 Forwarding
Möchte man Programme mit grafischen Benutzeroberflächen, also Firefox oder Ähnliche, auf einem anderen Rechner ausführen und aber lokal die Fenster sehen, so geht dies mit
ssh -X

Man beachte das GROßE X! Ein kleines x deaktiviert das sogenannte X11-Forwarding, sprich die Weiterleitung der grafischen Benutzeroberfläche. Dies ist im Prinzip ein einfaches Tunneln einer X11-Verbindung.

Beispiel:
ssh -X server
stellt eine SSH Verbindung zu server her und leitet alle X11 Verbindungen zum lokalen Rechner um. Wird auf dem Server nun in der SSH Sitzung Firefox gestartet, so erscheinen die Fenster im lokalen Windowmanager.

Noch Fragen? Schreib mir eine Email.

[contact-form-7 id=“701″ title=“Kontaktformular Mailchimp Linux“]

Interessante Stackoverflow Links

Ein Gedanke zu „SSH Tunnel mit Linux

Kommentarfunktion geschlossen