【发布时间】:2017-11-23 05:41:12
【问题描述】:
我们使用的是 Suse Linux Enterprise Server 12。我们需要阻止每秒访问我们的 Web 服务器超过 50 次的并发 IP 地址,并阻止该 IP 地址 10 分钟。它还应该区分攻击者和真正的流量,并永远阻止攻击者的IP。我们目前已阻止使用 iptables ,以下是规则。
iptables -I INPUT -p tcp --dport 443 -i eth0 -m state --state NEW -m recent --set
iptables -I INPUT -p tcp --dport 443 -i eth0 -m state --state NEW -m recent --update --seconds 1 --hitcount 50 -j DROP
它只会阻止超过50个连接的IPAddress,但不会将IPAddress列入黑名单。如果我们有一个匹配上面提到的所有场景的脚本,请告诉我们。请帮忙。
【问题讨论】:
-
如果请求(SYN)在 1 秒内超过 50,您编写的规则将阻止来自同一 IP 地址的新连接。如果是这样,它将阻止 IP 地址 1 秒钟。您可以找到很多关于如何完成任务的示例。请注意,任何像这样的自动 IP 黑名单实施都容易通过欺骗源 IP 来拒绝服务。如果某人的浏览器进入循环,也可能发生无意的阻塞。 fail2ban 是一个很好的工具,旨在解决您的问题。
标签: bash shell scripting sh iptables