Dekoratives Bildchen

TCP Ports über SSH Tunneln

Ausgangssituation:

tcp-tunnel-overview

Es gibt einen Server der nur über SSH erreichbar ist, der aber zusätzliche Dienste anbietet die man gerne nutzen würde. Zusätzliche Portweiterleitungen sind nicht gewünscht. Server ist hier ein Linux System. Bei den Clients wird Linux mit OpenSSH und Windows mit Putty betrachtet.

Wir möchten auf den git Server und zusätzlich den Webserver zugreifen.

Für den Git Server kann lokal der gleiche Port genutzt werden, der Webserver Port muss aber geändert werden, da der Port 80 auf dem Client schon genutzt wird.

Einstellungen am Server:

Konfiguration der sshd_config liegt meistens unter /etc/ssh:

....
Port 22
....
AllowTCPForwarding yes
...

Port 22 kann auch auskommentiert sein, weil es der Standardport ist. Zusätzliche Ports für den SSH Server können hier mit weiteren “Port <Nummer>” zeilen hinzukonfiguriert werden.

 

Linux Client:

Mit ein paar Parametern beim SSH Aufruf ist es hier schon getan:

ich@client$ ssh -L 10080:localhost:80 -L 9418:localhost:9418 benutzer@server
benutzer@server$ 

Sobald die SSH Sitzung steht kann man über localhost:10080 auf den Webserver des Servers zugreifen. Zugriff zum Git Server besteht indem man im Git Client localhost als Server einträgt.

Windows Client:

Hier zeige ich das anhand von Putty als Client. Ohne Screenshots komme ich hier aber nicht aus.

Putty öffnen und Benutzername und Server auswählen:

putty-server.

Unter Connection->SSH->Tunnels die entsprechenden Tunnel einrichten:

putty-tunnel

Danach auf Open und die SSH Sitzung starten.

Jetzt sollte man wie unter Linux zu den beiden getunnelten Diensten verbinden können.

 

Leave a Reply