I'm using CentOS 5.x trying to wrap my mind around the following iptables rule on one of my servers:
-A RH-Firewall-1-INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
On another server I have:
-A RH-Firewall-1-INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 3 -j ACCEPT
I understand that both of these rules are designed to allow (and throttle) incoming ping requests but what is the limit-burst
option about? And are these allowances on a per host basis? Or do they apply to any/all incoming ICMP connections at all?
The math is fully explained in the netfilter docs, but it's reasonable to say that the
limit-burst
argument specifies the number of matches that are allow through before thelimit
of 1 per second "kicks in". These two rules both apply only to ICMP echo request packets (incoming PING requests). These are not per-host limits and apply to anything the rule matches (which, in this case, would be all ICMP echo requests).--limit
: Specifies the rate at what tokens get refilled into the bucket.4/hour
means 4 tokens per hour (1 token every 15 minutes).--limit-burst
: Specifies the maximum amount of tokens that can be filled in the bucket. (This is also the amount of tokens the bucket starts out with).I read both answers, but the actual
man itables-extensions
made me grok it: