Verwenden Sie iptables zum Weiterleiten von SSH

Verwenden Sie iptables zum Weiterleiten von SSH

ich habe mehrere Tutorials dazu gefunden, aber keines davon hat funktioniert :/

Mein Setup:

FIREWALL - vom Internet erreichbar - eth0: xxx.xxx.xxx.xxx (öffentliche IP) - eth1: 192.168.1.1

SERVER - erreichbar von FIREWALL - eth0: 192.168.1.5

Da ich weiterhin eine Verbindung zur Firewall auf Port 22 herstellen möchte, möchte ich eingehende Verbindungen auf Port 2222 an 192.168.1.5:22 weiterleiten.

Ping und SSH von der FIREWALL zum SERVER funktionieren. Ping und SSH vom SERVER zur FIREWALL funktionieren auch (obwohl die Anmeldung nur mit öffentlichem Schlüssel erlaubt ist und der SERVER nicht zugelassen ist...)

Ping und SSH von überall zur FIREWALL funktionieren.

IP-Weiterleitung ist aktiviert:

# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

Das Posten meiner iptables-Regeln macht nicht viel Sinn, da keine der Regeln funktioniert hat (ich habe PREROUTING, POSTROUTING, FORWARD verwendet …) und es keine anderen Regeln gibt.

Ja, meine Firewall blockiert nichts. Aber um Sicherheit geht es hier (noch) nicht.

Ich habe alles versucht, was ich auf den ersten beiden Seiten gefunden habe: https://www.google.de/search?q=iptables+forward+ssh

Irgendwelche Vorschläge?

Viele Grüße, Jens

AKTUALISIEREN Hier ist die Ausgabe tcpdump -n -i anynach der Verwendung des iptables-Befehls von Khaled:

15:42:33.852718 IP home-ip.56008 > firewall-public-ip.2222: Flags [S], seq 1141341765, win 14600, options [mss 1460,sackOK,TS val 871214 ecr 0,nop,wscale 7], length 0
15:42:33.852752 IP home-ip.56008 > 192.168.1.5.22: Flags [S], seq 1141341765, win 14600, options [mss 1460,sackOK,TS val 871214 ecr 0,nop,wscale 7], length 0

Ich hätte vermutet, dass in der zweiten Zeile etwas wie ... IP 192.168.1.1.45678 > 192.168.1.5.22 ... steht.

Diese beiden Zeilen wiederholen sich einige Male, da mein SSH-Client mehrere Verbindungsversuche unternimmt. Aber es kommt keine Antwort.

2. Aktualisierung Die Routen des Servers (192.168.1.5) sindHier. Ich habe gerade eine Route hinzugefügt

public-firewall-ip  255.255.255.255      192.168.1.1     192.168.1.5       1

aber das hat keine Auswirkungen. Auf dem Server läuft Win XP mit installiertem Cygwin-SSHD. Ich habe das vorher nicht erwähnt, weil SSH von der Firewall zum Server einwandfrei funktioniert. Aber was das Routing angeht, finde ich, dass Windows etwas eingeschränkt ist.

Jetzt installiere ich Wireshark auf dem Server und werde das Ergebnis in wenigen Minuten einfügen.

Trace auf dem Server Der Trace auf dem Server zeigt ein ankommendes SYN auf Port 22 und ein abgehendes SYN,ACK an meine Home-IP. Ich denke, da liegt der Fehler. Das ACK sollte an die Firewall gesendet und dann maskiert werden, da im abgehenden Paket die Quell-IP/der Quell-Port jetzt 192.168.1.5:22 ist. Das erreicht auf keinen Fall meinen Laptop zu Hause hinter einem NAT... oder gibt es eine Möglichkeit?

Antwort1

Wenn Sie den Datenverkehr durch Ihre Firewall lassen und die IP-Weiterleitung aktiviert haben, benötigen Sie nur eine NAT-Regel, um den SSH-Datenverkehr an Port 2222 weiterzuleiten. Eine Regel wie diese sollte funktionieren:

$ iptables -t nat -A PREROUTING -d x.x.x.x -p tcp --dport 2222 -j DNAT --to-destination 192.168.1.5:22

Aktualisieren:

Beim Debuggen solcher Probleme ist der Netzwerk-Sniffer Ihr Freund. Sie können tcpdump auf der Firewall-Maschine ausführen und prüfen, ob Sie die eingehende Anfrage abfangen können und dieselbe Anfrage die Firewall-Maschine verlassen sollte.

verwandte Informationen