У меня есть несколько машин 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-адрес клиента?