我mod_evasive
按照Apache/2.4.18
本指南进行设置:https://komunity.komand.com/learn/article/server-administration/how-to-configure-modevasive-with-apache-on-ubuntu-linux/
我只改成[email protected]
了root@localhost
。
我第一次使用test.pl
它时成功了,但其余每次都只显示HTTP/1.1 400 Bad Request
。我不确定我是否意外更改了什么,但这是我的test.pl
。
#!/usr/bin/perl
# test.pl: small script to test mod_dosevasive's effectiveness
use IO::Socket;
use strict;
for(0..100) {
my($response);
my($SOCKET) = new IO::Socket::INET( Proto => "tcp",
PeerAddr=> "127.0.0.1:80");
if (! defined $SOCKET) { die $!; }
print $SOCKET "GET /?$_ HTTP/1.0\n\n";
$response = <$SOCKET>;
print $response;
close($SOCKET);
}
因为第一次就成功了,所以不应该有日志吗?我检查了一下,日志/var/log/mod_evasive/
是空的。其中syslog
也没有提到mod_evasive
。只有root
其中/var/mail/
没有收到任何邮件mod_evasive
。
可能是因为我重定向http
到了https
?我Redirect permanent / https://mydomain.example
在 中设置了一个000-default.conf
。
答案1
问题取决于 test.pl
重写该行
print $SOCKET "GET /?$_ HTTP/1.0\n\n";
作为
print $SOCKET "GET /?$_ HTTP/1.0\r\nHost: 127.0.0.1\r\n\r\n";
从https://centosfaq.org/centos/apache-mod_evasive-problem-with-testpl/