例如,对于我的 Web 服务器端口,我有以下规则:
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m limit --limit 1/m --limit-burst 15 -j ACCEPT #If you spam concurrently for 15 times ++ you'll be blocked for 1 minute ~
基本上,如果用户向浏览器上的刷新按钮发送垃圾邮件或按住 F5,它将阻止它们,直到完成剩余的 1/m 间隔。
我的问题是:当达到限制时,用户无法再连接。这是否意味着只有该用户无法连接,还是意味着其他人的 80 端口也已关闭?
答案1
每个人。limit
比赛没有附加资格。
hashlimit
匹配更加可配置。
请注意,多个“用户”可以位于一个 IP 后面(NAT、http 代理、CGNAT)。
我不知道这里的最佳实践是什么。但这个实现听起来没什么用,因为 HTTP 支持持久连接。从这个角度来看,Apache mod_evasive 会更好。
如果你不使用持久连接,您将立即被该限制阻止。这网站平均加载 100 个资源(!)