我需要限制每个 IP 对某个端口的访问。假设每分钟 5 个连接 - 不能更多。
我见过 iptables最近的,连接限制和限制,但它们并不完全符合我的需要。
假设你有一个客户端每秒尝试连接一次。在我的场景中,我需要允许 5 个数据包每分钟。
最近的:如果某个 IP 每隔 1 秒尝试连接一次,--hitcount 5 将记住此 IP 并将其保留在列表中,直到在 --second 60 时间内没有数据包进入。因此,在我的场景中,它将永久限制客户端。
限制:这个限制按照我的意愿用--limit 5/min,但是对于所有IP - 无法为每个IP指定这个。
连接限制:限制同时连接的数量,而不是限制某个时间的连接数量。
事实上,我需要限制 + 最近的组合。谁知道怎么做?
答案1
我认为这就是将每个源 IP 限制为指定速率所需要的。
-m hashlimit --hashlimit-mode srcip --hashlimit-upto 5/min
下面的 URL 中给出了详细示例。
http://www.mauromascia.com/blog/limiting-concurrent-connections-per-ip/?lang=it
http://etel.wiki.oreilly.com/wiki/index.php/SIP_DoS/DDoS_Mitigation