mod_evasive 在 Ubuntu 服务器 16.04 上不执行任何操作

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 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/

相关内容