LINUX.ORG.RU
ФорумAdmin

Unbound и Fail2ban - ошибка в синтаксисе правила

 ,


0

1

Всем доброе время суток!

Прошу помощи в поиске ошибки в самописном правиле для Fail2ban. Суть проблемы: имеется DNS сервер Unbound, так вышло что ему надо торчать в интернет. С недавнего времени стали ломиться на DNS с левыми запросами, в логах вижу вот такое:

Apr 04 01:01:25 unbound[20735:0] info: 177.0.0.177 sl. ANY IN

Решил прикрутить Fail2ban для решения этой проблемы, написал правило, но - оно не работает. Вот само правило:

Правило Fail2ban

[Definition]
_daemon     = unbound
failregex   = unbound: (.*) info: <HOST> .* ANY IN
              unbound: (.*) info: <HOST> sl.* ANY IN
              unbound: (.*) info: <HOST> .* VERSION\.BIND\. TXT CH
              unbound: (.*) info: <HOST> .* version\.bind\. TXT CH
ignoreregex =

При проверке правила получаю вот такое:

 fail2ban-regex /var/log/unbound.log unbound

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

Use   failregex filter file : unbound, basedir: /etc/fail2ban
Use         log file : /var/log/unbound.log
Use         encoding : UTF-8


Results
=======

Failregex: 0 total

Ignoreregex: 0 total

Date template hits:
|- [# of hits] date format
|  [23575] {^LN-BEG}(?:DAY )?MON Day %k:Minute:Second(?:\.Microseconds)?(?: ExYear)?
`-

Lines: 23575 lines, 0 ignored, 0 matched, 23575 missed

Понимаю, что Fail2ban не может переварить формат даты, но вот тут я не могу победить. Пробовал передавать такой формат даты:

fail2ban-regex -d «%b %d %H:%M:%S» /var/log/unbound.log unbound

но неудачно:

  fail2ban-regex -d "%b %d %H:%M:%S" /var/log/unbound.log unbound

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

Use      datepattern : MON Day 24hour:Minute:Second
Use   failregex filter file : unbound, basedir: /etc/fail2ban
Use         log file : /var/log/unbound.log
Use         encoding : UTF-8


Results
=======

Failregex: 0 total

Ignoreregex: 0 total

Date template hits:
|- [# of hits] date format
|  [23575] MON Day 24hour:Minute:Second
`-

Lines: 23575 lines, 0 ignored, 0 matched, 23575 missed

Прошу помощи разобраться с правилом.

Сравти лог

unbound[20735:0] info:
и правило
unbound: (.*) info:

И ты действительно не понимаешь почему оно не сравнивается?

Ты просишь наличие ':' после unbound, а там всегда скобка.

Если лог unbound-а отдельный, то проверять наличие unbound - бессмысленно.

Сделай как jura12 сказал.

Прочитай про access-control в unbound. IMHO f2b - это крайняя мера.

vel ★★★★★ ()