我有几台 Cento7 机器运行 Apache 2.4。它们位于负载均衡器后面。负载均衡器将 X-Forwarded-For 标头与客户端 IP 一起传递。为了让 mod_evasive 使用真实的客户端 IP,我启用了 mod_remoteip。
这是我的 mod_remoteip 配置
RemoteIPHeader X-Forwarded-For
我可以确认它正在工作,因为我看到 apache 使用这种格式记录真实的客户端 IP
LogFormat "%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
然而 mod_evasive 似乎仍然使用负载均衡器 IP。以下是 mod_evasive 的配置
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
DOSLogDir "/opt/logs/mod_evasive"
它生成日志文件/opt/logs/mod_evasive
,文件仍以 命名dos-<load balancer IP>
。
如何让 mod_evasive 使用真实的客户端 IP?