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
- Sie haben aufgehört
-t nat
, also versucht es, diePREROUTING
Kette in derfilter
Tabelle zu ergänzen, die nicht existiert. - 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