Web 服务器:nginx
我正在寻找一种技术来自动阻止 IP 地址,例如当攻击者 IP 每分钟发出超过 100 个请求时。
关联:https://www.nginx.com/blog/mitigating-ddos-attacks-with-nginx-and-nginx-plus/
上面的文章提到了基于请求数和连接数对每个用户的速率进行限制。这个问题不是关于速率限制,而是关于拒绝 IP。
上述文章中有一节关于将 IP 地址列入拒绝名单的内容 - 其中写道:
如果您可以识别用于攻击的客户端 IP 地址,则可以使用拒绝指令将其列入黑名单,以便 NGINX 和 NGINX Plus 不接受它们的连接或请求。
我相信这是一个手动过程,用于观察用于攻击的 IP 地址,然后将其添加到拒绝列表中。有没有简单的方法可以自动执行此操作?
答案1
请参阅 NGINX 文章 使用 NGINX 和 NGINX Plus 缓解 DDoS 攻击。
它列出了以下方法:
- 限制请求率
- 限制连接数
- 关闭慢速连接
- 将 IP 地址列入黑名单
- 将 IP 地址列入允许名单
- 使用缓存来平滑流量高峰
- 阻止请求
- 限制与后端服务器的连接
- 应对范围攻击
- 处理高负荷
- 识别 DDoS 攻击。
虽然这些措施不包括自动识别 DDoS 攻击和将 IP 添加到拒绝列表的机制,但它们将有助于保护您的网站。
我注意到,DDOS 攻击通常由数十万台攻击计算机发起,这些计算机全部受感染并像僵尸一样运行。将它们的所有 IP 都添加到拒绝列表中肯定很麻烦,如果 NGINX 每次收到连接时都必须遍历整个列表,则它们的添加可能会大大降低 NGINX 正常运行的速度。