我使用了以下规则,阻止端口扫描器 24 小时,并在 24 小时后解除对扫描器 IP 地址的阻止,并记录攻击者的 IP 地址。
iptables -A INPUT -m recent --name portscan --rcheck --seconds 86400 -j DROP iptables -A FORWARD -m recent --name portscan --rcheck --seconds 86400 -j DROP
iptables -A INPUT -m recent --name portscan --remove iptables -A FORWARD -m recent --name portscan --remove
iptables -A INPUT -p tcp -m tcp --dport 139 -m recent --name portscan --set -j LOG --log-prefix “portscan:” iptables -A INPUT -p tcp -m tcp --dport 139 -m recent --name portscan --set -j DROP iptables -A FORWARD -p tcp -m tcp --dport 139 -m recent --name portscan --set -j LOG --log-prefix “portscan:” iptables -A FORWARD -p tcp -m tcp --dport 139 -m recent --name portscan --set -j DROP
一切正常,扫描仪 IP 地址被 iptables 阻止。但我无法在任何 iptables 链中找到被阻止的 IP。扫描仪 IP 仅记录在 kernel.log 文件中,我正在寻找一种可能的方法来删除单个 IP,而不是重新启动 iptables 本身。
答案1
最近的模块不会为每个违规者创建新的规则,您可以使用 Iptables 进行查询。它只是在内存中维护违规者列表
http://ipset.netfilter.org/iptables-extensions.man.html#lbBW
/proc/net/xt_recent/*
是当前的地址列表以及有关每个列表的每个条目的信息。可以读取中的每个文件
/proc/net/xt_recent/
来查看当前列表,或者使用以下命令写入以修改列表:
echo +addr >/proc/net/xt_recent/DEFAULT
添加addr
到默认列表
echo -addr >/proc/net/xt_recent/DEFAULT
addr
从默认列表中删除
echo / >/proc/net/xt_recent/DEFAULT
刷新默认列表(删除所有条目)