Назад | Перейти на главную страницу

Ключ сбора IP-адресов mod_security установлен неправильно

Я использую IP-коллекцию в настройке с балансировкой нагрузки, поэтому я хочу, чтобы mod_security действовал на заголовок x-forwarded for вместо REMOTE_ADDR. Вот мое правило:

SecAction "phase:1,nolog,pass,initcol:IP=%{REQUEST_HEADERS.x-forwarded-for}"
SecAction "nolog,phase:1,setvar:IP.hitcount=+1,deprecatevar:IP.hitcount=100/15"
SecRule IP:hitcount "@gt 600" "nolog,drop,phase:1,msg:'Possible DoS'"

Независимо от того, на что я установил ключ после IP =, я получаю IP-адрес балансировщика нагрузки, через который, очевидно, всех забанят. Это ошибка или я что-то не так? Я даже жестко закодировал ключ на 1.1.1.1, и он ВСЕ ЕЩЕ установил IP-адрес балансировщика нагрузки в файле ip.pag. ПОМОГИТЕ! :]

Я нашел проблему. Я помещал это правило в локальный файл правил, который нужно устанавливать в последнюю очередь. Коллекция IP уже была инициализирована другим правилом, имеющим приоритет.

Решением было переместить верхнюю строку (с initcol in) в начало конфигурации mod_security, чтобы все ссылки на коллекцию IP использовали x-forwarded-for ключ, который я установил, а не значение по умолчанию REMOTE_ADDR.

Я надеюсь, что это спасет кого-то еще от утреннего выдергивания волос! :]

Я также исследовал проблему с mod_security за прокси / балансировщиком нагрузки. Вы могли бы попробовать mod_rpaf или mod_extract_forwarded2 так что вам не нужно корректировать свои правила.

Видеть http://blog.modsecurity.org/2007/09/index.html