port 12345
Ich versuche, die Portweiterleitung für UDP von nach port 54321
wie folgt einzurichten :
iptables -t nat -A PREROUTING -p udp -i eth0 -d 192.168.0.1 --dport 12345 -j DNAT --to 192.168.0.1:54321
iptables -A FORWARD -p udp -i eth0 -d 192.168.0.1 --dport 54321 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
Dies funktioniert bei neuen Verbindungen einwandfrei, bei aktuell aktiven Verbindungen jedoch nicht.
Um zu verdeutlichen, was ich meine, nehmen wir an, dass vor dem Hinzufügen der Regeln eine aktive Verbindung von 192.168.0.2:55555
<---> besteht 192.168.0.1:12345
und ich versuche, alle eingehenden Verbindungen auf 192.168.0.1:12345
umzuleiten 192.168.0.1:54321
.
Nach dem Hinzufügen der beiden oben genannten Regeln 192.168.0.1:12345
werden alle anderen Pakete mit dem Ziel bei empfangen, 192.168.0.1:54321
außer denen von 192.168.0.2:55555
.
Ich vermute, dass der Status der Verbindung dabei eine Rolle spielt. Wie kann ich das Problem lösen und dafür sorgen, dass die Pakete vom 192.168.0.1:55555
Zielort port 12345
an zugestellt werden port 54321
?
Antwort1
Ich habe herausgefunden, wie es geht!
Sie müssen die REDIRECT-Funktion auf NAT verwenden! Zuvor müssen Sie jedoch den Eintrag zu dieser Verbindung aus conntrack löschen! Etwa wie folgt
conntrack -D -p udp -d 192.168.0.1 --dport=55555