如果 IP 在 iptables 中被其“IP”阻止,则很容易像 grep iptables
iptables -L -n | grep "a.b.c.d"
但如果 IP 已使用以下 IP 范围被阻止:
iptables -A INPUT -s "163.172.000.000/16" -j DROP
好吧,那么这种方法不再起作用了。可以使用什么方法?
如果 IP 在 iptables 中被其“IP”阻止,则很容易像 grep iptables
iptables -L -n | grep "a.b.c.d"
但如果 IP 已使用以下 IP 范围被阻止:
iptables -A INPUT -s "163.172.000.000/16" -j DROP
好吧,那么这种方法不再起作用了。可以使用什么方法?
您可以将ipaddr与 python 一起使用。
首先,您列出您感兴趣的规则
iptables -S
(将单个 IP 列为 /32,这很方便):然后你将块提供给这个 python 脚本,
check_ip.py
. 它检查第一个参数(地址)是否属于第二个参数(块)并以代码 0 或 1 退出。然后,您可以连接这两个部分。
以下是一个快速编写的 bash 命令行,但您也可以将整个代码移动到 python,或者使用
xargs
, ...iptables -S | grep 删除 | awk '{打印 $4,$0}' | 一边读ab;做 python3 check_ip.py IP.ADDR.TO.CHECK $a || 回声 $b; 完毕
我的建议是在防火墙规则之前使用另一个旨在记录此类数据包丢失的规则。代替:
拒绝流量的首选方式应该是:
这将允许您在文件中查找 IP 阻塞事件,例如
/var/log/messages
,具体取决于您的 syslog 守护程序的配置方式: