
Ich habe einen Server (S1) im LAN, bei dem sich ein Router außerhalb meiner Kontrolle befindet. Auf einem Server ist OpenVPN installiert und ich kann mich per SSH dort anmelden. Es gibt einen weiteren Server (S2) im LAN und ich möchte den Port von S2 auf Port S1 weiterleiten.
Wenn ich mache
sudo iptables -t nat -A PREROUTING -p tcp -m tcp -d S1 --dport 8001 -j DNAT --to-destination S2:80
und versuche dann, S1:8001 von meinem Computer aus mit der LAN-Schnittstelle von S1 zu verbinden:
IP **my_vpn_ip**.48174 > S2.80: Flags [S], seq 4243753453, win 14600, options [mss 1368,sackOK,TS val 89266048 ecr 0,nop,wscale 7], length 0
Offensichtlich funktioniert es nicht, da S2 keine Route zu meinem Computer hat und keine Antwort senden kann. Ist es möglich, die Quelle auf S1 zu fälschen, um Pakete zurückzubekommen und dann NAT durchzuführen?
Es ist nicht möglich, Routen auf S2 zu ändern, da es sich um eine IP-Kamera mit sehr eingeschränkter Funktionalität handelt.
Antwort1
Richten Sie SNAT/Masquerading auf dem Host ein, mit dem Sie eine Verbindung herstellen. So wird Ihre Quelladresse so geändert, dass sie als Proxy aus der NAT-Box angezeigt wird.
Eine so einfache Regel wie diese könnte das gewünschte Ergebnis erzielen.
iptables -t nat -A POSTROUTING --destination S2 -j MASQ