%3F.png)
Ich habe einen GNS3-Server und versuche, iptable-Regeln hinzuzufügen, damit jemand aus meinem Team, der sich über Port 1100 verbindet, zu einer internen IP wie 192.168.122.2:22 weitergeleitet wird. Diese interne IP gehört zu einem Bastion-Host eines GNS3-Projekts. Das Endziel besteht darin, von einem lokalen Computer aus per shh auf die internen IP-Adressen zugreifen zu können.
So sieht meine IPTABLE aus (ich verwende als Beispiel die gefälschte öffentliche IP 1.2.3.4):
Chain PREROUTING (policy ACCEPT)
num target prot opt source destination
1 DNAT tcp -- 0.0.0.0/0 1.2.3.4 tcp dpt:1100 to:192.168.122.2:22
Chain INPUT (policy ACCEPT)
num target prot opt source destination
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
num target prot opt source destination
1 MASQUERADE all -- 0.0.0.0/0 0.0.0.0/0
Chain DOCKER (0 references)
num target prot opt source destination
Chain LIBVIRT_PRT (0 references)
num target prot opt source destination
Von meinem lokalen Computer aus führe ich den Befehl aus . Ubuntu ist der Benutzername, der für den Zugriff auf die interne IP des GNS3-Projekts benötigt wird.ssh [email protected] -p1100
Nach der Ausführung dieses Befehls erhalte ich auf dem GNS3-Server (1.2.3.4) folgende Ausgabe:
cloud@gns3:~$ connect_to 192.168.122.2 port 1100: failed.
Es scheint, als ob mein SSH-Befehl den GNS3-Server erreicht und versucht, eine Portweiterleitung durchzuführen.Aus irgendeinem Grund wird jedoch versucht, die Verbindung an Port 1100 statt an Port 22 weiterzuleiten. Kann jemand den Grund dafür ermitteln?
Folgendes habe ich bisher versucht:
- Setzen Sie die IPv4-Portweiterleitung auf 1
- Setzen Sie GatewayPorts und AllowTcpForwarding auf 1 in
- lief auf dem lokalen Rechner (ich glaube, dadurch wurden einige Konfigurationen auf dem Server geändert) -
ssh -R 1.2.3.4:1100:192.168.122.2:22 [email protected]
- Regel zu IPtables mit Befehl hinzugefügt
sudo iptables --table nat --append PREROUTING --protocol tcp --destination 1.2.3.4 --dport 1100 --jump DNAT --to-destination 192.168.122.2:22
- Außerdem wurde Masquerading hinzugefügt:
sudo /sbin/iptables -t nat -A POSTROUTING -j MASQUERADE
Antwort1
Anstatt DNAT zu verwenden, sollte es gemäß dieser Quelle REDIRECT heißen:
Also:
sudo iptables --table nat --append PREROUTING --protocol tcp --destination 1.2.3.4 --dport 1100 --jump REDIRECT --to-destination 192.168.122.2:22