自动阻止在给定时间段内向服务器发出大量请求的 IP

自动阻止在给定时间段内向服务器发出大量请求的 IP

我已经在基于 CentOS 的 Linux 服务器上部署了 WP 项目。

我遇到了来自随机 IP 地址的异常流量(爬行),因此导致服务器负载非常高(高达平均负载 200)。

是否有可能在服务器上自动检测此类请求并暂时阻止该 IP?

我的意思是,如果服务器在一秒钟内发现来自同一 IP 的 100 个请求,它应该阻止该 IP。

请指导。

答案1

是的,它存在并且被称为fail2ban:

www.fail2ban.org

编辑:让我将包含详细解决方案的 URL 从评论复制到这里:

https://security.stackexchange.com/questions/35773/how-can-i-block-an-ip-if-im-getting-many-http-requests-in-a-second

谢谢@Pit

答案2

我们在公司中使用专门用于All-In-One WP Security此任务的 Web 应用程序防火墙插件。

https://wordpress.org/plugins/all-in-one-wp-security-and-firewall/

我认为这绝对是一定有适用于每个 WordPress 网站(无论是此插件还是任何其他具有高安全标准的安全插件)。我们的 WP 网站遭受过暴力攻击,但能够使用此插件最大限度地保护我们的网站。除了 IP 阻止之外,您还可以使用此插件设置许多其他安全选项,例如.htaccess限制、黑名单功能、文件系统安全选项、防火墙功能、恶意软件扫描等等。

答案3

您可以通过检查 apache 日志手动阻止 IP 地址。您可以在 apache 的配置路径中检查日志位置。

root@ping#  vi /etc/httpd/conf/httpd.conf

搜索错误日志在此文件中。

我的服务器上安装了 WHM,因此在我的情况下日志位于下面定义的路径

root@ping#  tail -f /usr/local/apache/logs/error_log

搜索持续请求的IP并通过iptables阻止该IP地址。

Iptables 命令永久阻止 IP 地址

root@ping#  iptables -I INPUT -s 1.2.3.4 -j DROP

在1.2.3.4处添加自己的IP

相关内容