Ssh Tunnel

Aus xinux.net
Zur Navigation springen Zur Suche springen

SSH Tunnel (Port Forwarding)

-f  lässt den Prozess im Hintergrund laufen
-g  erlaubt remoteusern den lokal geöffneten ssh tunnel zu benutzen
-p  gibt den Port an über den sich SSH verbinden soll
-N  ist eine nützliche Option um das öffnen einer remoteshell zu unterbinden
-R  leitet den Port vom remoteserver auf localhost weiter
-L  leitet den Port von localhost auf remoteserver weiter 
    Format [bind_address:]port:host:hostport
    Wenn keine [bind_address:] angegeben wird localhost eingesetzt
ssh -p SERVERPORT -f -g -N  -l USER SSHSERVER -L BINDADDRESS:LOCALPORT:ZIEL:ZIELPORT

Alles was auf BINDADDRESS port LOCALPORT ankommt schicke durch tunnel zu ZIEL port ZIELPORT

Local Port zu Remote Port Umleitung

Remote Port zu Local Port Umleitung

Umleiten von Samba von charlie aus

donald port 139 ---> charlie port 139

  • ssh -p 9387 -f -g -N donald -L 139:ZIEL:139

Umleiten vom Remote Host noezel auf localhost

  • ssh -f -N noezel -l root -R 88:localhost:22

Beispiel-Script:

Der Kunde muss dieses Script ausführen (vorher downloaden), sodass wir Zugang haben ohne die Firewall zu bearbeiten.

Dieses script öffnet einen Tunnel auf gaius zu dem Kundenrechner.


#!/bin/bash
#Da gibt der Kunde den zu nutzenden User ein
read -p "user:" U      
#Tunnel wird bei Gaius geöffnet (-R) und führt zu localhost (Rechner von Kunde) über Port 8080 (frei wählbar)
ssh -gv $U@gaius.tuxmen.de -R localhost:8080:localhost:22     


->> Nun haben wir Zugriff indem wir ssh auf gaius mit dem angegeben Port aufbauen


Ports schliessen:

fuser -vk -n tcp 139

Forwarded Port auf 0.0.0.0 lauschen lassen

  • Um einen geforwardeden Port statts auf 127.0.0.1:PORT auf 0.0.0.0:PORT lauschen zu lassen, muss in der sshd_config die GatewayPorts yes gesetzt werden.