IPTABLES leitet den gesamten Verkehr im Subnetz transparent an den Proxy weiter, mit Ausnahme von

IPTABLES leitet den gesamten Verkehr im Subnetz transparent an den Proxy weiter, mit Ausnahme von

Ich habe eine Firewall zwischen 192.168.255.0 und 172.16.255.0. Beide /24. 192.168.255.0 wird per DNAT an einen Proxy-Server @ 172.16.255.5:8080 weitergeleitet. Ich möchte, dass dies so weitergeht, habe jedoch einen Webserver 172.16.255.50, zu dem ich zum Testen eine direkte Verbindung herstellen möchte. Ich habe diese Anweisung ausprobiert, aber iptables gibt immer wieder einen Fehler aus, wenn ich versuche, sie hinzuzufügen

iptables -I PREROUTING -i eth1 -d \! 172.16.255.50 -p tcp --dport 80 -j DNAT --to-destination 172.16.255.5:8080

Danke!!

Antwort1

Hier gibt es 2 Probleme

  1. Sie haben aufgehört -t nat, also versucht es, die PREROUTINGKette in der filterTabelle zu ergänzen, die nicht existiert.
  2. Das „nicht“ ( !) muss vor dem stehen -d.

Arbeitslösung:

iptables -t nat -I PREROUTING -i eth1 \! -d 172.16.255.50 -p tcp --dport 80 -j DNAT --to-destination 172.16.255.5:8080


Eine andere Möglichkeit, solche Dinge zu tun, besteht darin, vor der Regel, die auf den Ausnahmeverkehr zutrifft, eine Regel einzufügen und nichts damit zu tun. Iptables stoppt, sobald es auf die erste passende Regel trifft, sodass es nie zur späteren Regel gelangt.

iptables -t nat -A PREROUTING -i eth1 -d 172.16.255.50 -p tcp --dport 80
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to-destination 172.16.255.5:8080

verwandte Informationen