解決策 1:
1 つのオプションは、ドロップされたパケットを次のようなルールでログに記録することです:
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl -j LOG --log-prefix "FW_DROPPED: "
DROP
の直前に挿入します ルール。次に、「FW_DROPPED」が含まれているものについてsyslogファイルをgrepすると、IPのリストがそこに表示されます。ログ ファイルのエントリは次のようになります:
Jun 3 08:05:57 some-machine kernel: [15852451.420557] FW_DROPPED: IN=eth0 OUT= MAC=00:50:ba:4a:d9:e3:00:12:17:3a:e3:64:08:00 SRC=228.23.45.189 DST=192.168.1.1 LEN=48 TOS=0x00 PREC=0x00 TTL=106 ID=10941 PROTO=TCP SPT=58212 DPT=22 WINDOW=65535 RES=0x00 SYN URGP=0
そのため、「SRC=」に続くものを切り取ると、ドロップされた IP が表示されます。それを並べ替え、重複を排除すると、リストができあがります。
iptables チュートリアルは、iptables/netfilter の最も役立つドキュメントであることがわかりました。
解決策 2:
詳細は /proc/net/ipt_recent/SSH にあります。
詳細については、こちらの記事をご覧ください。
解決策 3:
見てください
/proc/net/ipt_recent/YOURNAME
YOURNAME は、iptables ルールの --name オプションで使用した名前です。
解決策 4:
以下は簡単なワンライナーです:
$ iptables -L -n --line