我有 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。