Я настроил mod_evasive
на Apache/2.4.18
используя это руководство: https://komunity.komand.com/learn/article/server-administration/how-to-configure-modevasive-with-apache-on-ubuntu-linux/
Я только изменил email@yourdomain.com
к 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
.
проблема зависит от 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/