Selektives NAT der Pakete mit iptables

Selektives NAT der Pakete mit iptables

Wie kann ich iptables dazu bringen, alle Pakete per NAT zu verarbeiten, außer denen mit einer Zieladresse im Subnetz 192.168.254.0/24?

Antwort1

Wenn ich Sie richtig verstehe, sollte dies mit der Option -dmit Negation ziemlich einfach sein. Zum Beispiel eine Regel wie diese:

$ iptables -A POSTROUTING ! -d 192.168.254.0/24 -j SNAT --to-source new_source_ip

Natürlich können Sie die Regel nach Ihren Bedürfnissen ändern. Dadurch ändert sich die Quell-IP aller Pakete, die an ein anderes Ziel als das angegebene Subnetz gerichtet sind.

Antwort2

Meiner Meinung nach würde die folgende Reihenfolge der iptables-Befehle funktionieren:

1. iptables -t nat -A POSTROUTING -s 192.168.254.0/24 -o eth0 -j RETURN
2. iptables -t nat -A POSTROUTING -s 0.0.0.0/0 -o eth0 -j MASQUERADE

Regel 1 passt zu Ihrem Netzwerk und MASKERIERT es nicht. Regel 2 maskiert alles, aber im Allgemeinen ist es keine gute Idee, 0.0.0.0 als Platzhalter zu verwenden (ich bin nicht einmal sicher, ob das funktioniert). Sie sollten selektiv alle Netzwerke hinzufügen, die Sie maskieren möchten, und der Rest wird einfach nicht maskiert.

verwandte Informationen