Page 1 of 1
iptables und die limit-funktion
Posted: 2004-03-16 14:33
by pseudo
hi,
mein ziel ist es echo-flooding zu unterbinden
ping xxx.xxx.xxx.xxx ja
ping -f xxx.xxx.xxx.xxx nein
ich hab folgende regel erstellt:
Code: Select all
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
allerding geht das aus irgendeinem mir absolut nicht nachvollziehbarem grund nicht. :D
die policy hab ich auf "drop" stehen, also sollte die regel ja maximal einmal pro sekunde zutreffen und einen ping durchlassen,
aber nicht mehr als den einen.
mein problem ist nun aber, dass ich alle ping's gedroppt bekomme.
sieht jemand meinen fehler?
bin leider auch nach vielem lesen von ettlichen iptables-howto's bei der limit-funktion nicht ganz durchgestiegen...
wäre nett, wenn jemand ne gute erklärung dazu hätte;
zu der "limit"-funktion, zu iptables allgemein hab ich schon genug :D
danke im vorraus, pseudo
Re: iptables und die limit-funktion
Posted: 2004-03-16 14:39
by dea
Mach' das doch über sysctl (sys.ip_v4 oder so und untergeordnete). Das funktioniert zuverlässig, allerdings für die gesamte Maschine.
Re: iptables und die limit-funktion
Posted: 2004-03-16 14:44
by dodolin
die policy hab ich auf "drop" stehen, also sollte die regel ja maximal einmal pro sekunde zutreffen und einen ping durchlassen,
aber nicht mehr als den einen.
Falsch. Es gibt da noch sowas wie -limit-burst, welches einen Default >1 hat, wenn man es nicht selbst setzt.
mein problem ist nun aber, dass ich alle ping's gedroppt bekomme.
sieht jemand meinen fehler?
Nein, natürlich nicht. Das wird dann ja wohl mit deinen anderen (hier nicht genannten) Regeln zu tun haben.
Re: iptables und die limit-funktion
Posted: 2004-03-16 14:46
by pseudo
hm, das dachte ich mir auch, aber hab alle anderen rausgeschmissen.
wenn ich da den gelesenen howtos und den manpages glaube, steht limit-burst default ja auch auf 3/h, oder?
Re: iptables und die limit-funktion
Posted: 2004-03-16 14:47
by pseudo
@dodolin haste da irgendwo n guten link mit ner erklärung zu den limit-optionen? wenn möglich in deutsch, mein englisch iss nur log-file-tauglich :D
Re: iptables und die limit-funktion
Posted: 2004-03-16 14:58
by dodolin
@dodolin haste da irgendwo n guten link mit ner erklärung zu den limit-optionen?
http://www.netfilter.org/documentation/
Packet Filtering Howto sowie das erstgenannte Tutorial kann ich empfehlen. Oder die manpage.
Re: iptables und die limit-funktion
Posted: 2004-03-16 15:17
by pseudo
Code: Select all
limit
Dieses Modul muss explizit mit der '-m limit ' oder '--match-limit' Option bestimmt werden. Es wird verwendet, um die Rate der Treffer einzuschraenken, sowie das Unterdruecken von Log-Meldungen. Es wird nur auf eine vorgegebene Anzahl von Malen pro Sekunde zutreffen (Standardmaessig 3 Treffer pro Stunde, mit einer Grenze von 5). Es hat zwei optionale Argumente:
--limit
Gefolgt von einer Zahl. Dies bestimmt die maximale Anzahl von erlaubten Treffern pro Zeiteinheit (Standard: pro Sekunde). Die Nummer kann explizit Einheiten bestimmen, indem '/second/', '/minute/', '/hour/' oder '/day/' oder Teile davon benutzt werden (so ist '5/second' dasselbe wie '5/s').
--limit-burst
Gefolgt von einer Zahl, die die maximale Grenze angibt, bevor das obere Limit erreicht wird.
Dieses Argument kann oft mit dem LOG Ziel verwendet werden, um begrenzt zu loggen. Um zu verstehen, wie das funktioniert, lass uns einen Blick auf die folgende Regel werfen, welche Pakete mit den standardmaessigen Limit-Parametern loggt:
# iptables -A FORWARD -m limit -j LOG
Das erste Mal, wenn diese Regel erreicht wird, wird das Paket geloggt; tatsaechlich werden, da die Standardgrenze 5 ist, die ersten 5 Pakete geloggt. Danach wird es zwanzig Minuten dauern, ehe ein Paket wieder von dieser Regel geloggt wird, ungeachtet dessen, wieviele Pakete wirklich ankommen. Ausserdem, wenn zwanzig Minuten vergehen, ohne dass ein treffendes Paket ankommt, wird die Grenze um eins zurueckgeschraubt: Wenn 100 Minuten lang kein Paket auf die Regel trifft, steht der Zaehler wieder auf Null, da, wo wir angefangen haben.
das iss genau das howto, das ich auch genutzt habe, aber das mit limit durchschaue ich trotzdem nicht.
laut der erklärung ist alles klar, aber nich in der praxis. weiter steht da nämlich:
Code: Select all
Ping of death:
# iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
und genau das tut nunmal nicht bei mir :-(
noch ne idee?
mein script sieht momentan so aus *g
Code: Select all
iptables -F
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -L -v -n
gruss, pseudo
Re: iptables und die limit-funktion
Posted: 2004-03-16 15:34
by pseudo
Code: Select all
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p icmp -j DROP
Code: Select all
p15106017:~# iptables -L -v
Chain INPUT (policy ACCEPT 114K packets, 9507K bytes)
pkts bytes target prot opt in out source destination
7 536 ACCEPT icmp -- any any anywhere anywhere icmp echo-request limit: avg 1/sec burst 5
125 10563 DROP icmp -- any any anywhere anywhere
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 114K packets, 9580K bytes)
pkts bytes target prot opt in out source destination
so tut es *g
versteh nur nich, warum das immer bei forward auftaucht... *wunder*
Re: iptables und die limit-funktion
Posted: 2004-03-16 15:35
by dodolin
mein script sieht momentan so aus *g
Soll das alles sein? So ganz ohne Policy und Co.?!
Re: iptables und die limit-funktion
Posted: 2004-03-16 15:59
by pseudo
lol
neee, aber wenn ich gucken will, ob was geht oder nicht,
dann test ich nich 2000 regeln mit, sondern untersuche erst mal die, mit der ich nicht zurechtkomme, anstatt da 20 regeln zu erstellen, und dann den fehler evtl. in einer dieser regeln suchen zu müssen... :D
wollte ja nur die limit-funktion zum laufen bringen, ich teste da eher aus, was geht und was nicht, bevor ich sowas weiterempfehle *g