当我使用 curl 时,Apache/2.2.16 中的 mod_evasive 不起作用

当我使用 curl 时,Apache/2.2.16 中的 mod_evasive 不起作用

我有 Apache 服务器:

Server version: Apache/2.2.16 (Debian)    
Architecture:   64-bit   
threaded:     no    
forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/experimental/itk"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/etc/apache2"
 -D SUEXEC_BIN="/usr/lib/apache2/suexec"
 -D DEFAULT_PIDLOG="/var/run/apache2.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="/var/run/apache2/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="mime.types"
 -D SERVER_CONFIG_FILE="apache2.conf"

我已经安装了带有测试配置的模块 mod_evasive:

DOSPageCount 2
DOSPageInterval 1
DOSSiteCount 50
DOSSiteInterval 1
DOSBlockingPeriod 10

当我多次按下 F5 时,它工作正常并且我可以看到 403。但是当我使用 curl 或 wget 时:

while true; do curl -i -A "Mozilla/5.0" http://url; done
while true ; do { wget --output-document=x.txt --no-proxy http://url ; } ; done

它根本不起作用。

您有什么想法吗?在哪里可以找到原因?

答案1

例如,将DOSPageInterval和/或DOSSiteInterval增加到 10。这将为您提供更长的窗口来触发 mod_evasive。

相关内容