SSH Zugang – Mit iptables Firewalls austricksen

25. Januar 2017 at 22:16

Sitzt man hinter einer restriktiven Firewall und möchte temporär einen Dienst dort durch tunneln, nutze ich gern SSH auf einem im Internet erreichbaren Server. Damit kann ich beliebige Ports rein oder raus tunneln und Putty hilft mir auf jedem Windows System, dies einfach per Klick zu konfigurieren.

Zum SSH-Tunnel hatte ich auch schon einen Artikel geschrieben: http://www.butschek.de/2009/05/01/ssh-tunnel-proxy/

Was in der Praxis leider ab und zu passiert: Ausgerechnet Port 22 ist geblockt, womit SSH nicht erreichbar ist. Den SSH-Port umlegen möchte ich nicht, da sonst keiner der anderen Benutzer auf dem System SSH mehr findet.

Eine einfache Lösung ist, auf dem Server mit Hilfe von iptables einen freien Port, der in der Firewall durchgelassen wird, auf Port 22 zu redirecten:

iptables -A PREROUTING -i eth0 -p tcp -m tcp --dport 9443 -j REDIRECT --to-ports 22

Hier leite ich auf eth0 eingehende TCP Pakete von Port 9443 auf Port 22 um. 9443 ist oft eine gute Wahl, da viele Admins auf Port 9443 die Administration ihrer ESX-Server finden und daher den Port gern freischalten.

Alternativ einfach hinter der Firewall mehrere Ports testen (oder den Firewall-Admin fragen) und wenn ein freier Port gefunden wurde, einfach diesen statt 9443 nutzen.

Voilà, schon haben wir SSH wie gewohnt auf Port 22 und zusätzlich auf einem weiteren Port und man kann den externen Server hinter der Firewall erreichen und seinen Tunnel aufbauen.

PS: Ein weiteres Tool, auf das ich in diesem Zusammenhang hinweisen möchte, ist sslh. Es erlaubt neben dem Webserver zusätzlich SSH oder einen OpenVPN Tunnel auf dem gleichen Port laufen zu lassen. Nicht gut für hochfrequentierte Webserver, aber auf einem kleinen privaten Server läuft das recht gut. Eine gute Anleitung bietet Nicolas hier: http://bernaerts.dyndns.org/linux/75-debian/210-debian-sslh

PPS: Eine GUTE Firewall mit Deep Packet Inspection kann übrigens beide Tricks erkennen. Zum Glück für den Tunnel haben die meisten Firmen keine gute Firewalls… :-)