为了防止对 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 最有用的文档。