iptables によってブロックされた IP アドレスを一覧表示するにはどうすればいいですか?

iptables によってブロックされた IP アドレスを一覧表示するにはどうすればいいですか?

sshに対するブルートフォース攻撃を防ぐために、いくつか追加しましたiptablesルール(下記) 質問は、ブロックされた IP アドレスを一覧表示するにはどうすればいいかということです。

(1)
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl --name SSH -j DROP

答え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。次に、syslog ファイルで「FW_DROPPED」を含むものを検索すると、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

たとえば、入力アドレスのスプーフィングの場合、チェーンを定義しますSPOOF_REJECT

iptables -N SPOOF_REJECT
iptables -A SPOOF_REJECT -j LOG --log-prefix "Input spoof detected: "
iptables -A SPOOF_REJECT -j REJECT

偽装されている場合は、パケットをこのチェーンに送信します。

iptables -A INPUT -i $EXT_DEV1 -s $INT_NET -j SPOOF_REJECT
iptables -A INPUT -i $EXT_DEV2 -s $INT_NET -j SPOOF_REJECT

ドロップまたは拒否するパケットの各カテゴリに対して、次のような操作を実行して syslog 内の検索対象の行を取得し、定期的に grep、カット、ソートを実行して、これらのログ行から IP アドレスだけを取得できます。

カテゴリごとに個別のチェーンを使用する利点は、構成がよりわかりやすくなり、iptables構成が読みやすくなることです。ルールを追加していくにつれて、特定の異なるアクションに個別のチェーンを使用したことのありがたみがわかるでしょう。

関連情報