mod_evasive不在Apache 2.4.6上运行



我正在尝试在 CentOS 上为 Apache 2.4.6 配置 mod_evasive,版本 7.5.1804。我全新安装了 CentOS,全新安装了 Apache,无需提供任何页面或任何东西(只是示例索引.html说你好世界(,我使用本教程安装了mod_evasive:https://www.digitalocean.com/community/tutorials/how-to-protect-against-dos-and-ddos-with-mod_evasive-for-apache-on-centos-7

一切正常,除非我必须运行测试脚本,该脚本应将请求发送到服务器并因mod_evasive而出现 403 错误。相反,我收到 400 个错误请求。

我为 IPtables 切换了防火墙,并且我打开了端口 80,实际上,示例页面在浏览器中工作正常。此外,SELinux 模式设置为宽松。

有什么建议吗?

您很可能必须更改 perl 脚本(通常保存在/usr/share/doc/libapache2-mod-evasive/examples/test.pl中(才能完成这项工作,例如

原行:

print $SOCKET "GET /?$_ HTTP/1.0nn";

返工线:

print $SOCKET "GET /?$_ HTTP/1.0rnHost: 127.0.0.1rnrn";

从 https://centosfaq.org/centos/apache-mod_evasive-problem-with-testpl/

问题不在于mod_evasive或其配置。就我而言,我不得不像下面这样调整mpm_prefork_module配置mod_evasive以使配置正常工作:

StartServers             10
MinSpareServers          10
MaxSpareServers          10
MaxRequestWorkers        80
MaxConnectionsPerChild   0

基本上通过设置StartServers = MinSpareServers = MaxSpareServers = {your_magic_number}和设置MaxConnectionsPerChild=0将服务器数量固定为常量,这样就不会产生新的服务器进程,也不会发生连接的重新循环,允许Child持有无限多个并发连接。

希望这能挽救你的一天!

几天后,我发现mod_evasive提供的测试脚本出错...

我更正了它,发现安装没问题。

相关内容

  • 没有找到相关文章

最新更新