
Ich habe 2 VMs, eine mit privater IP-Adresse (hinter dem NAT) und eine mit öffentlicher. Ich habe einen SSH-Tunnel mit NAT erstellt. Das Ziel ist, die öffentliche VM mit dem Netzwerk hinter dem NAT zu verbinden und etwas Verkehr darüber weiterzuleiten. Der Sinn besteht darin, eine Anwendung, die in diesem Netzwerk läuft, mit einer ähnlichen auf einem öffentlichen Server zu fälschen (zu Testzwecken).
Also habe ich so etwas gemacht:
Tunnel aktivieren
sudo ssh [email protected] -w 0:0
Adressierung
ifconfig tun0 10.253.253.1/30 pointopoint 10.253.253.2 - Local
ifconfig tun0 10.253.253.2/30 pointopoint 10.253.253.1 - Remote
Route zum internen Netzwerk hinzufügen
ip route add 10.0.3.0/24 via 10.253.253.1
Für die bidirektionale Kommunikation (da bin ich mir eigentlich nicht sicher)
sudo arp -sD 10.253.253.1 ens18 pub
Portweiterleitung auf Lokal
sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -I FORWARD 1 -s 10.253.253.1 -j ACCEPT
sudo iptables -I FORWARD 1 -d 10.253.253.1 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -s 10.253.253.1 -j MASQUERADE
Und tatsächlich funktioniert das fast, wenn ich den Anwendungsdienst auf dem lokalen Host ausschalte, leitet er den Datenverkehr an den Remote-Host weiter. Aber es gibt ein Hauptproblem – dieser lokale Server sendet Anfragen an Port 4660 und andere (interne Anwendungen) antworten an Port 4661. Es sieht so aus, als bräuchte ich eine zusätzliche Regel, um den gesamten eingehenden Datenverkehr an Port 4661 in die Tunnelschnittstelle an Port 4660 weiterzuleiten. Wie gehe ich damit um? Ich bin nicht sehr vertraut mit iptables, aber ich habe so etwas versucht, aber es funktioniert nicht:
iptables -A PREROUTING -t nat -i eth0 -p udp --dport 4661 -j DNAT --to 10.253.253.1:4660
iptables -A FORWARD -p udp -d 10.253.253.1 --dport 4660 -j ACCEPT
Antwort1
Ok, ich habe es zum Laufen gebracht:
iptables -A PREROUTING -t nat -i eth0 -p udp --dport 4661 -j DNAT --to 10.253.253.2:4661(remote tun address)