web-dev-qa-db-ja.com

IPTablesを使用してソースIPごとのICMPを制限する

制限モジュールはソースIPごとであると誤って考えましたが、すべての要求に基づいているようです。

  577 36987 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           icmp type 8 limit: avg 3/sec burst 5 
   46  3478 LOG        icmp --  *      *       0.0.0.0/0            0.0.0.0/0           icmp type 8 LOG flags 0 level 4 prefix `INET-PING-DROP:' 
   46  3478 DROP       icmp --  *      *       0.0.0.0/0            0.0.0.0/0           icmp type 8 
    ...
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           icmp type 8 limit: avg 3/sec burst 5 
    0     0 LOG        icmp --  *      *       0.0.0.0/0            0.0.0.0/0           icmp type 8 LOG flags 0 level 4 prefix `WEB-PING-DROP:' 
    0     0 DROP       icmp --  *      *       0.0.0.0/0            0.0.0.0/0           icmp type 8 

送信元IPアドレスに基づいてiptables/netfilterを使用してicmpをレート制限するにはどうすればよいですか?

9
Kyle Brandt

それでもヒントが必要な場合:

iptables -I INPUT -p icmp -m hashlimit --hashlimit-name icmp --hashlimit-mode srcip --hashlimit 3/second --hashlimit-burst 5 -j ACCEPT

INPUTの最後のルールがdropであるか、デフォルトのポリシーがDROPであると想定します。各IPは、1秒間に3 pingに制限されています(5回のバースト)。 -m制限で見つかったように、すべての着信IPが合計されるわけではありません。

5
Nicholi