PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : iptables mit 2x Source



heinzelrumpel
15.01.07, 12:27
Hi,

habe das Problem, dass für alle im Netzwerk eine Zwangsumleitung auf dem Router zum Proxy Server eingestellt ist. Für die IP 192.168.2.4(mein PC)und die 192.168.2.84(Proxy-Server)soll dies aber nicht gelten. Wie baue ich das in iptables ein?



iptables -t nat -A PREROUTING -i eth0 -s ! 192.168.2.84 -p tcp --dport 80 -j LOG --log-prefix NAT_80_UMLEITUNG
iptables -t nat -A PREROUTING -i eth0 -s ! 192.168.2.84 -p tcp --dport 80 -j DNAT --to 192.168.2.84:8080
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -d 192.168.2.84 -j LOG --log-prefix SNAT_UMLEITUNG
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -d 192.168.2.84 -j SNAT --to 192.168.2.1
iptables -A FORWARD -s 192.168.2.0/24 -d 192.168.2.84 -i eth0 -o eth0 -p tcp --dport 8080 -j LOG --log-prefix FORWARD_8080
iptables -A FORWARD -s 192.168.2.0/24 -d 192.168.2.84 -i eth0 -o eth0 -p tcp --dport 8080 -j ACCEPT



Gruß, Torsten

403
15.01.07, 12:33
Hi,

habe das Problem, dass für alle im Netzwerk eine Zwangsumleitung auf dem Router zum Proxy Server eingestellt ist. Für die IP 192.168.2.4(mein PC)und die 192.168.2.84(Proxy-Server)soll dies aber nicht gelten. Wie baue ich das in iptables ein?



iptables -t nat -A PREROUTING -i eth0 -s ! 192.168.2.84 -p tcp --dport 80 -j LOG --log-prefix NAT_80_UMLEITUNG
iptables -t nat -A PREROUTING -i eth0 -s ! 192.168.2.84 -p tcp --dport 80 -j DNAT --to 192.168.2.84:8080
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -d 192.168.2.84 -j LOG --log-prefix SNAT_UMLEITUNG
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -d 192.168.2.84 -j SNAT --to 192.168.2.1
iptables -A FORWARD -s 192.168.2.0/24 -d 192.168.2.84 -i eth0 -o eth0 -p tcp --dport 8080 -j LOG --log-prefix FORWARD_8080
iptables -A FORWARD -s 192.168.2.0/24 -d 192.168.2.84 -i eth0 -o eth0 -p tcp --dport 8080 -j ACCEPT



Gruß, Torsten


einfach die IP's negieren?
\! 192.168.2.4
Weiss allerdings nicht ob das in einer Rule zu haben ist.
Ansonsten musste mal experimentieren, ob du erst Deine IP's
erlaubst und dann die anderen umbiegst oder umgekehrt.

heinzelrumpel
15.01.07, 13:13
Klar, aber das ist doch der Punkt. Da die Regeln sequentiell abgearbeitet wird kann ich ja nicht Schreiben, dass bei einer IP kein DNAT gemacht werden soll und man kann auch nur eine Negierung pro Regel unterbringen. Mit fällt da nichts schlaues ein.



iptables -t nat -A PREROUTING -i eth0 -s ! 192.168.2.84 -p tcp --dport 80 -j DNAT --to 192.168.2.84:8080


Hier bestimme ich ja bereits, dass alle, ausser der 192.168.2.84 genattet werden. Selbst wenn ich eine identische Regel mit einer anderen IP dahinterhänge, bringt das nicht, weil sie von der vorherigen Regel schon erfasst wurde.

403
15.01.07, 13:55
geht es denn mit einer Variable?



MYHOSTS="192.168.2.84 192.168.2.4"
iptables -t nat -A PREROUTING -i eth0 -s \! $MYHOSTS -p tcp --dport 80 -j DNAT --to 192.168.2.84:8080 ?

Ich habe beim googlen noch ein Beispiel mit Return gefunden:
http://www.archivum.info/netfilter/2005-02/msg00481.html

heinzelrumpel
15.01.07, 14:05
Die Variable funktioniert nicht. Multiple source muss man wohl anders lösen. Mir ist aber die Funktionweise von -j RETURN nicht ganz klar.

heinzelrumpel
15.01.07, 14:41
Die Syntax in der Tabelle AUSNAHME könnte noch etwas abgespeckt werden, aber eigentlich müsste es doch so funktionieren?



iptables -t nat -A PREROUTING -i eth0 -s ! 192.168.2.84 -p tcp --dport 80 -j LOG --log-prefix NAT_80_UMLEITUNG
iptables -t nat -A PREROUTING -i eth0 -s ! 192.168.2.84 -p tcp --dport 80 -j AUSNAHME

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -d 192.168.2.84 -j LOG --log-prefix SNAT_UMLEITUNG
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -d 192.168.2.84 -j AUSNAHME



iptables -A FORWARD -s 192.168.2.0/24 -d 192.168.2.84 -i eth0 -o eth0 -p tcp --dport 8080 -j LOG --log-prefix FORWARD_8080
iptables -A FORWARD -s 192.168.2.0/24 -d 192.168.2.84 -i eth0 -o eth0 -p tcp --dport 8080 -j AUSNAHME



iptables -A AUSNAHME -s 192.168.2.4/32 -j RETURN
iptables -A AUSNAHME -s ! 192.168.2.84 -p tcp --dport 80 -j DNAT --to 192.168.2.84:8080
iptables -A AUSNAHME -s 192.168.2.0/24 -d 192.168.2.84 -j SNAT --to 192.168.2.1
iptables -A AUSNAHME -s 192.168.2.0/24 -d 192.168.2.84 -i eth0 -o eth0 -p tcp --dport 8080 -j ACCEPT