RE: Limit rule for ICMP not working properly?

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

 



Hi,

the default is DROP:

iptables -L -n -v
Chain INPUT (policy DROP 314 packets, 98684 bytes)
pkts bytes target     prot opt in     out     source
destination
  963 66540 ACCEPT     tcp  --  *      *       0.0.0.0/0
0.0.0.0/0
   29  1740 ACCEPT     icmp --  *      *       0.0.0.0/0
0.0.0.0/0            icmptype 8 limit: avg 1/sec burst 5
   39  2836 ACCEPT     all  --  *      *       0.0.0.0/0
0.0.0.0/0            state ESTABLISHED

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source
destination

Chain OUTPUT (policy ACCEPT 5384 packets, 387K bytes)
pkts bytes target     prot opt in     out     source
destination

The problem is, that the second rule gets hit, even if it shoud not (my
opinion). ICMP can not be "established". Or ?

I know I could add new rule after the limit - with ICMP reject. This would
probably work. But it should work also without explicit reject for ICMP.


Thanks,
Regards,
Podo.

From: Vishesh kumar [mailto:linuxtovishesh@xxxxxxxxx] 
Sent: 05 September, 2013 16:15
To: podo
Cc: netfilter
Subject: Re: Limit rule for ICMP not working properly?

Hi,
Does 2nd rule getting hit . Also where is the REJECT rule ?
iptables -L -n -v
Thanks

On Thu, Jul 18, 2013 at 10:25 PM, podo <podo@xxxxxxx> wrote:
Hello all,

I have a problem with the limit module. The goal is to limit the incoming
ICMP echo-requests to max 1/s.
The following rule does it (as example using the INPUT) :

-A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 1/sec -j ACCEPT

The above is working fine. But when there is a rule for accepting the
ESTABLISHED packets, the limit does not work:

-A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 1/sec -j ACCEPT
-A INPUT -m state --state ESTABLISHED -j ACCEPT

With these 2 rules the limit does not work...

Using the "iptables -A INPUT -m state --state ESTABLISHED -p ICMP -j ACCEPT"
and  "watch -d -n 1  iptables -nvL" is showing, that all the ICMP
echo-requests from the same host are being considered ESTABLISHED.

I am not sure, but I think after sending the ICMP echo-reply the session
should be closed. With new echo-request a new session is opened.

Please could somebody confirm, if this behavior is correct ? And if yes
please explain ?

See also:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=598513

and from
"http://www.netfilter.org/documentation/HOWTO//packet-filtering-HOWTO-7.html
" :

"ESTABLISHED
 A packet which belongs to an existing connection (i.e., a reply
packet, or outgoing packet on a connection which has seen replies)."

And from "http://www.lug.or.kr/docs/iptables-tutorial/onepage/"; :

"The reply packet is considered as being ESTABLISHED, as we have already
explained. However, we can know for sure that after the ICMP reply,
there will be absolutely no more legal traffic in the same connection.
For this reason, the connection tracking entry is destroyed once the
reply has traveled all the way through the Netfilter structure."

I am using iptables v1.4.14.

Thanks in advance,
Regards,
Podo.


--
To unsubscribe from this list: send the line "unsubscribe netfilter" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



-- 
http://linuxmantra.com 


--
To unsubscribe from this list: send the line "unsubscribe netfilter" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Netfilter Development]     [Linux Kernel Networking Development]     [Netem]     [Berkeley Packet Filter]     [Linux Kernel Development]     [Advanced Routing & Traffice Control]     [Bugtraq]

  Powered by Linux