] Я установил 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/