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

Fail2ban и X-Forwarded

Я настраиваю fail2ban на своих веб-серверах. Мои веб-серверы находятся за ELB. поэтому я настроил X-forwarded для получения реальных IP-адресов в журналах доступа Apache. Но, к сожалению, fail2ban не может сканировать журналы доступа, когда в журналах доступа включен x-forwarded. Это мое состояние регресса.

failregex = ^<HOST> -.*\"(GET|POST).*

И ниже мой формат журнала, когда включен x-forwarded.

10.0.2.18 (42.104.63.31) - - [01/May/2014:16:05:39 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14" 

Отчасти ваша проблема в том, что вы вытаскиваете неправильный <HOST>. Ваш ^<HOST> будет соответствовать <HOST> при нахождении в начале подобного, например 10.0.2.18, когда я предполагаю, что вам действительно нужно 42.104.63.31. Вы можете исправить это, указав fail2ban искать <HOST> внутри () например

failregex=\(<HOST>\) -.*(GET|POST)

который, кажется, работает при запуске через fail2ban-regex с вашим фрагментом журнала

fail2ban-regex logsnippet '\(<HOST>\) -.*(GET|POST)'

Running tests
=============

Use   failregex line : \(<HOST>\) -.*(GET|POST)
Use         log file : logsnippet


Results
=======

Failregex: 1 total
|-  #) [# of hits] regular expression
|   1) [1] \(<HOST>\) -.*(GET|POST)
|      42.104.63.31  Thu May 01 16:05:39 2014
`-

Теперь он может читать IP-адрес клиента, но получать это предупреждение снова и снова. � <28> fail2ban.filter: ПРЕДУПРЕЖДЕНИЕ Не удалось найти соответствующий IP-адрес для -