Назад | Перейти на главную страницу

mod_evasive ничего не делает на сервере Ubuntu 16.04

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