如何列出被 iptables 阻止的 IP 地址?

16 linux iptables

为了防止对 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
Run Code Online (Sandbox Code Playgroud)

yuk*_*ude 16

一种选择是使用如下规则记录任何丢弃的数据包:

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: "
Run Code Online (Sandbox Code Playgroud)

DROP规则之前插入它。然后,您可以 grep 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
Run Code Online (Sandbox Code Playgroud)

因此,剪掉“SRC=”后面的内容将向您显示已删除的 IP。排序,消除重复,你就会有你的清单。

我发现Iptables 教程是 iptables/netfilter 最有用的文档。

  • 如果他创建一个用户链来记录和丢弃违规数据包,那就更好了。通过这样做,删除了不必要的重复。可以这样做: iptables -Nattacks; iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m 最近 --update --seconds 60 --hitcount 8 --rttl --name SSH -j 攻击;iptables -A 攻击 -j LOG --log-prefix "FW_DROPPED: "; iptables -A 攻击 -j DROP (4认同)

Dav*_*ley 6

您可以在 /proc/net/ipt_recent/SSH 下找到详细信息。

这篇文章有更多信息。