
パケット数が 1 秒あたり 2 を超える場合 (テストのためにパケット数は減らしています)、サーバーからの ICMP PING をブロックしようとしています。次の 2 つのルールを個別に試しましたが、効果がないようです。
iptables -A INPUT -p icmp --icmp-type echo-request -m recent --update --seconds 1 --hitcount 2 -j DROP
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT --match limit --limit 2/s --limit-burst 2
これらのルールの何が問題なのですか?
以下のコマンドを使用して別のサーバーからpingを実行していますが、pingは応答を受け取り続けます -
ping -n -i 0.2 192.168.2.86
また、iptables -nvL の出力を確認すると、ルールのパケット数は増加していません...
使用マシンはcentos 6.8
進捗状況: テーブルの最後にデフォルトのドロップ ルールを追加しました。
iptables -A INPUT -p icmp -m icmp -j DROP
そしてこのルールを追加すると、制限を超えたpingがドロップされます
iptables -A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 2/second -j ACCEPT -m comment --comment "icmprule1"
まだサーバーを完全にブロックすることはできません。
答え1
ここで、セカンダリ ICMPSCAN チェーンを追加します (そしてジャンプ ルールを INPUT チェーンの最初の位置に配置します)。
iptables -N ICMPSCAN
iptables -I INPUT -p icmp -m icmp --icmp-type echo-request -j ICMPSCAN
iptables -A ICMPSCAN -m recent --set --name badicmp --rsource
iptables -A ICMPSCAN -m recent --update --seconds 1 --hitcount 2 --name badicmp --rsource -j DROP
注: 両方の設定/更新ルールをセカンダリなしで INPUT に設定することもできますが、私はそのようなルールを別のチェーンに配置することを好みます。
注 2: --set の後に追加のルールを追加して、イベントをログに記録することもできます...
動的ブラックリスト:
ここで、最近のヒットカウント トリガーに基づいて永続的な動的ブラックリストを追加するには、ipset 機能を利用できます。ipset は Centos 6.x で使用でき、iptables は ipset を認識しますが、最初にインストールする必要がある場合があります。
ニーズに合った iptables/ipset ルールは次のとおりです。
iptables -F ICMPSCAN
iptables -N ICMPSCAN
ipset -N banned_hosts iphash
iptables -I INPUT -p icmp -m icmp --icmp-type echo-request -j ICMPSCAN
iptables -A ICMPSCAN -m recent --set --name badicmp --rsource
iptables -A ICMPSCAN -m recent --update --seconds 1 --hitcount 2 --name badicmp --rsource -j SET --add-set banned_hosts src
iptables -A ICMPSCAN -m set --set banned_hosts src -j DROP
ipset list を使用して、禁止リストの現在の内容を一覧表示できます。次に例を示します。
# ipset list banned_hosts
Name: banned_hosts
Type: hash:ip
Header: family inet hashsize 1024 maxelem 65536
Size in memory: 8284
References: 2
Members:
192.168.122.1
セットリストを管理します。たとえば、次のような IP アドレスを削除します。
# ipset del banned_hosts 192.168.122.1
こちらのページもご覧ください:http://www.linuxjournal.com/content/advanced-firewall-configurations-ipset