[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] Reihenfolge der iptables rules



Gruesse!
* Chris C. <kildau-ml@gmx.de> schrieb am [01.06.06 12:07]:
> Hi,
> 
> ich baue gerade eine kleine Firewall für dem Übergang zwischen Wlan und dem 
> restlichen Netzwerk, bisher habe ich meine Firewalls immer unter OBSD mit PF 
> oder PIXen erstellt, geht aber diesesmal aufgrund einiger Besonderheiten 
> nicht...
> 
> Ich stoße bei dem erstellen der rules auf ein Problem:
> Wenn ich 
> $IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
> $IPT -A INPUT -m tcp -p tcp --dport ssh -j ACCEPT
> $IPT -A INPUT -p tcp -j REJECT --reject-with tcp-reset
> $IPT -A INPUT -p udp -j REJECT --reject-with icmp-admin-prohibited
> $IPT -A INPUT -s 192.168.17.0/255.255.255.0 -p icmp -j ACCEPT
> $IPT -A INPUT -s ! 192.168.17.0/255.255.255.0 -p icmp --icmp-type 
> echo-request -j ACCEPT
> $IPT -A INPUT -s ! 192.168.17.0/255.255.255.0 -p icmp -j REJECT --reject-with 
> icmp-admin-prohibited
> $IPT -A INPUT -d 127.0.0.1 -j ACCEPT
> 
> wird die ja doch sehr grobe letzte Regel einfach ignoriert (vermutlich wegen 
> den Rejects darüber), 

Jep, die Reihenfolge der Regeln in der sequentiellen Abarbeitung ist
bindend.

> setze ich -A INPUT -d localhost ganz nach oben, läuft 
> alles. Für eben diesen Fall gibts bei pf "pass in quick" (PF geht nach meinem 
> verständis erst alle Regeln durch und nimmt nicht die erste die halbwegs 
> passt...).

Aber sie paßt ja nicht "halbwegs", sondern sie paßt ;-) Jedweder
TCP-Verkehr wird rejected. Punkt.

> Meine Frage: Ich habe eine vergleichbare Funktion in der doku zu iptables 
> nicht gefunden, gibt's sowas nicht? Und wie soll ich dann z.B. zusätzliche 
> Ports öffnen (z.B. einfach für einen DNS-Server der noch auf den Server 
> soll)? ein -A INPUT -p udp --dport 53 -j ACCEPT wird ja nicht funktionieren, 
> da die Rule am Ende angefügt wird und somit garnicht erst gelesen wird. Alle 
> Regeln entfernen oder irgendwie "dazwischenquetschen" ist ja auch nicht sehr 
> elegant.

a) Spezielle Regeln nach vorne
b) Dann die allgemeinen
c) am Ende die "last chance" Regeln
d) ganz am Ende (wenn ein Paket bis dahin gelangt) greift dann die
Tables-Policy, die i.d.R. auf DROP stehen sollte

Abgesehen von "Minimal-Home-Rechner-Paketfilter" bietet sich bei
iptables aber an, mit eigenen Tables zu arbeiten. Dann ist auch das
Einfügen eigener Rules transparenter. Z.B. ein Table für erlaubte Dinge,
einer für abgewiesene Pakete ohne Logging und einer für abgewiesene mit
Logging. Diese eigenen Tables jeweils als Target (-j) für INPUT,OUTPUT
und ggf. FORWARD.

In diesen eigenen Tables ist die Reihenfolge der Regeln dann meist egal,
da diese ja meist einen konkreten Fall abdecken und sich nicht
überschneiden.

Also eher modular arbeiten als sequentiell. Die Doku gibt da hinreichend
Beispiele.
 
> Greetings
> Chris

Gruß
	Gerhard
-- 
It's nice to be important...
but it's more important to be nice.



Reply to: