「質問は、ブロックされたIPアドレスを一覧表示するにはどうすればよいですか?」
BANNEDチェーンを作成します。
iptables -N BANNED
iptables -F BANNED
ロギングチェーンを作成します。
iptables -N BANNEDLOG
iptables -F BANNEDLOG
iptables -A BANNEDLOG -j LOG --log-prefix "BANNED:" --log-level 6
iptables -A BANNEDLOG -j DROP
他のほとんどのルールの前に、INPUTチェーンの禁止チェーンにジャンプを追加します
...
iptables -A INPUT -j BANNED
...
次に、禁止されたチェーンにipaddressesを追加します。
flock -w 5 /var/lock/iptables -c 'iptables -A BANNED -s 140.130.20.202/32 -i eth0 -m comment --comment "2012-03-19 23:49:33 accesslog" -j BANNEDLOG'
etc...
また、コメントオプションを使用してデータベースのように使用することもできるため、多くのプロセスでiptablesが頻繁に更新される場合、flockはいつどのような理由で重要かを知ることができます。iptablesにはロックが組み込まれていないようです。
禁止されたチェーン内の禁止されたアドレスとルールを表示するには:
iptables -S BANNED
ソートされた一意のIPアドレスを表示するには:
iptables -S BANNED | egrep -o '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | sort -u
syslogファイルとウェブログをチェックするサーバー上で多数のデーモンを実行しているので、だれかが悪意のあるものを試みた場合、以前の攻撃の種類と重大度および数に応じて、それらのアドレスは数日間自動的に禁止されます。情報はmysqlデータベースに記録され、定期的に失効します。また、アドレスはmysqlレプリケーションを介してクラスター内の他のすべてのマシンに配布されるため、それらも保護され、同期が保たれます。私のソフトウェアもネットワークの所有者を検索し、ISPに苦情をメールで送ります。
10年間の作業の後、誰もがすぐに使用できるようにしたいと考えています。現在、約150万のIPアドレスの履歴と数十万のメールおよびssh攻撃が報告されており、ネットのクリーンアップに役立っています。より多くがそれを使用する場合、私はそれがより多くの影響を与えることを望みます。
iptables -L INPUT -v -n
すべてのブロックされたIPを表示