iptables...阻止一个范围而不淹没 ipset 设置的 IP

iptables...阻止一个范围而不淹没 ipset 设置的 IP

我有这个范围的 IPS 197.192.xx,它日复一日地对我的 pop/imap/smtp 服务器进行暴力攻击。

我已经设置了这个 ipset,它会阻止每个试图攻击我的服务器的 IP。

我想阻止以 197.192 开头的所有 IP 的 pop/smtp/imap 访问

为此,我输入了以下命令:

ipset -A myIpset 197.192.0.0/24

但这向我的 ipset 添加了 65536 个 IP,使其变得巨大,现在我无法向其中添加更多 IP。

还有另一种方法可以以更优雅的方式做到这一点吗?

答案1

您可以添加另一个要阻止的 ipset,这次类型为hash:net,并将 197.192.0.0/16 添加到该 ipset。或者将您的 ipset 替换为其中一种类型,hash:net因为hash:net也可以存储 IP 地址(网络掩码 32)。

要从 转换hash:iphash:net

 ipset save myIpset > myIpset &&
   ipset destroy myIpset &&
   sed s/:ip/:net/ myIpset | ipset restore &&
   ipset add myIpset 197.192.0.0/16

答案2

你可以不使用 ipset 来实现这一点; iptables 可以相当容易地匹配网络:

iptables -I INPUT -s 197.192.0.0/16 -p tcp --dports smtp,imap,pop3 -j DROP

或类似的。

顺便说一句:您是否向以下人员举报了虐待行为?[电子邮件受保护]按照 AfriNIC Whois 中的要求?值得一试...

相关内容