Fail2ban + Freepbx не банит (Помогите разобраться)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модератор: SLEDopit

Ответить
Аватара пользователя
BAF
Сообщения: 225
Статус: Я это я, какой есть такой есть.
ОС: Ubuntu
Контактная информация:

Fail2ban + Freepbx не банит

Сообщение BAF »

Здравствуйте.
Имеется убунту 14.04 fail2ban и freepbx.
freepbx ложит логи секьюрити в /var/log/asterisk/freepbx_security.log
Фильтр настроен так:
[

Код: Выделить всё

Definition]

#__pid_re = (?:\[\d+\])

# All Asterisk log messages begin like this:
log_prefix= \[\]\s*

#failregex = ^%(log_prefix)s Authentication failure for '[^']*' \(from <HOST>\)$
failregex = ^%(log_prefix)s Authentication failure for .* from <HOST>
ignoreregex =

jail так:

Код: Выделить всё

[pbx-gui]
enabled  = true
filter   = freepbx
port     = http,https
#action   = iptables-allports[name=pbx-gui, protocol=all, port=http,https]
logpath  = /var/log/asterisk/freepbx_security.log
bantime  = 86400
maxretry = 3

Настройки по умолчанию такие

Код: Выделить всё

ignoreip = 127.0.0.1/8 192.168.2.0/24
bantime  = 86400
findtime = 600
maxretry = 4
backend = auto

Если сделать sudo fail2ban-regex /var/log/asterisk/freepbx_security.log /etc/fail2ban/filter.d/freepbx.conf то:
Running tests
=============

Use failregex file : /etc/fail2ban/filter.d/freepbx.conf
Use log file : /var/log/asterisk/freepbx_security.log


Results
=======

Failregex: 35 total
|- #) [# of hits] regular expression
| 1) [35] ^\[\]\s* Authentication failure for .* from <HOST>
`-

Ignoreregex: 0 total

Date template hits:
|- [# of hits] date format
| [35] Year-Month-Day Hour:Minute:Second
`-

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


Тоесть по моему все работает 35 совпадений. Но сколько не ломись не срабатывает fail2ban, ни в логах не пишет что поймал бан ни на самом деле не блокирует, хотя вот ssh он блокирует на ура. логах fail2ban все нормуль:
2015-08-13 16:23:36,714 fail2ban.jail : INFO Creating new jail 'pbx-gui'
2015-08-13 16:23:36,714 fail2ban.jail : INFO Jail 'pbx-gui' uses poller
2015-08-13 16:23:36,715 fail2ban.jail : INFO Initiated 'polling' backend
2015-08-13 16:23:36,715 fail2ban.filter : INFO Added logfile = /var/log/asterisk/freepbx_security.log
2015-08-13 16:23:36,715 fail2ban.filter : INFO Set maxRetry = 3
2015-08-13 16:23:36,716 fail2ban.filter : INFO Set findtime = 600
2015-08-13 16:23:36,716 fail2ban.actions: INFO Set banTime = 86400
2015-08-13 16:23:36,719 fail2ban.jail : INFO Jail 'ssh' started
2015-08-13 16:23:36,720 fail2ban.jail : INFO Jail 'ssh-ddos' started
2015-08-13 16:23:36,721 fail2ban.jail : INFO Jail 'apache' started
2015-08-13 16:23:36,721 fail2ban.jail : INFO Jail 'apache-multiport' started
2015-08-13 16:23:36,723 fail2ban.jail : INFO Jail 'apache-noscript' started
2015-08-13 16:23:36,724 fail2ban.jail : INFO Jail 'apache-overflows' started
2015-08-13 16:23:36,725 fail2ban.jail : INFO Jail 'pbx-gui' started



Подскажите что не так я намудрил?
Поправите меня, если я не прав, буду тока рад.
Спасибо сказали:
BigBrother
Сообщения: 436
Статус: ¯\_(ツ)_/¯
ОС: linux based

Re: Fail2ban + Freepbx не банит

Сообщение BigBrother »

Для [pbx-gui] временно сделай так

Код: Выделить всё

findtime = 60
maxretry = 1

Если нет, тогда попробуй изменить backend для работы с файлами. Я использую inotify, для этого надо поставить питоновскую либу pyinotify.
Спасибо сказали:
Аватара пользователя
BAF
Сообщения: 225
Статус: Я это я, какой есть такой есть.
ОС: Ubuntu
Контактная информация:

Re: Fail2ban + Freepbx не банит

Сообщение BAF »

BigBrother писал(а):
13.08.2015 13:44
Для [pbx-gui] временно сделай так

Код: Выделить всё

findtime = 60
maxretry = 1

Если нет, тогда попробуй изменить backend для работы с файлами. Я использую inotify, для этого надо поставить питоновскую либу pyinotify.

Сделал так :

Код: Выделить всё

[pbx-gui]
enabled  = true
filter   = freepbx
port     = http,https
#action   = iptables-allports[name=pbx-gui, protocol=all, port=http,https]
logpath  = /var/log/asterisk/freepbx_security.log
bantime  = 86400
backend = pyinotify
findtime = 60
maxretry = 1

Имею следующее:
aptitude search pyinotify
i A python-pyinotify - simple Linux inotify Python bindings
p python-pyinotify-doc - simple Linux inotify Python bindings -- documentation
v python2.7-pyinotify -
p python3-pyinotify - simple Linux inotify Python bindings


Код: Выделить всё

2015-08-13 16:50:08,441 fail2ban.jail   : INFO   Creating new jail 'pbx-gui'
2015-08-13 16:50:08,441 fail2ban.jail   : INFO   Jail 'pbx-gui' uses pyinotify
2015-08-13 16:50:08,443 fail2ban.jail   : INFO   Initiated 'pyinotify' backend
2015-08-13 16:50:08,444 fail2ban.filter : INFO   Added logfile = /var/log/asterisk/freepbx_security.log
2015-08-13 16:50:08,444 fail2ban.filter : INFO   Set maxRetry = 1
2015-08-13 16:50:08,445 fail2ban.filter : INFO   Set findtime = 60
2015-08-13 16:50:08,445 fail2ban.actions: INFO   Set banTime = 86400

Лог /var/log/asterisk/freepbx_security.log наполняется прикаждой нверной попытке:
[2015-08-13 13:20:09] Authentication failure for ффф from 82.200.210.158
[2015-08-13 13:51:07] Authentication failure for йцу from 82.200.210.158
[2015-08-13 13:51:12] Authentication failure for ййй from 82.200.210.158
[2015-08-13 13:51:16] Authentication failure for ййй from 82.200.210.158
[2015-08-13 13:51:25] Authentication failure for ййй from 82.200.210.158
[2015-08-13 13:51:28] Authentication failure for йй from 82.200.210.158
[2015-08-13 13:51:31] Authentication failure for ййй from 82.200.210.158
[2015-08-13 13:51:33] Authentication failure for ййй from 82.200.210.158
[2015-08-13 13:51:36] Authentication failure for ййй from 82.200.210.158

но бана нет все равно.
Поправите меня, если я не прав, буду тока рад.
Спасибо сказали:
Аватара пользователя
BAF
Сообщения: 225
Статус: Я это я, какой есть такой есть.
ОС: Ubuntu
Контактная информация:

Re: Fail2ban + Freepbx не банит

Сообщение BAF »

Сам же нашел ответ в своем же сообщении прочитав его еще раз. Всем на заметку!!!
если посмотреть внимательно:

Код: Выделить всё

[2015-08-13 13:51:36] Authentication failure for ййй from 82.200.210.158

и

Код: Выделить всё

2015-08-13 16:50:08,445 fail2ban.actions: INFO   Set banTime = 86400

то четко видно, что время разное. Оказалось в php.ini стоял другой часовой пояс. Выставил верный часовой пояс и получил мой долгожданный бан. Но зато теперь знаю что есть разные backend, спасибо за помощь ;)
Поправите меня, если я не прав, буду тока рад.
Спасибо сказали:
trialon77
Сообщения: 2

Re: Fail2ban + Freepbx не банит

Сообщение trialon77 »

Простите за некропостинг, но не могу побороть похожую проблему.
настраиваю fail2ban для защиты входа в freepbx.

Подозреваю, что причина в не правильной регулярке. Те, что в теме не подходят, сам составить пытался, но ничего не получается.

Формат записей в логе freepbx_security.log:

Код: Выделить всё

[2019-Oct-19 18:45:26] [freepbx_security.NOTICE]: Authentication failure for Dhdjd from IP
.

Помогите составить правильную регулярку для этого лога.

p.s. Еще на каком то западном форуме видел, что важен формат времени в логе, мол с буквенным форматом месяца fail2ban не работает?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20794
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Fail2ban + Freepbx не банит

Сообщение Bizdelnick »

Shell

% fail2ban-regex --datepattern '^\[%Y-%b-%d %H:%M:%S\]' '[2019-Oct-19 18:45:26] [freepbx_security.NOTICE]: Authentication failure for Dhdjd from 1.2.3.4' '\[freepbx_security\.NOTICE\]: Authentication failure for .* from <HOST>'

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

Use datepattern : ^\[Year-MON-Day 24hour:Minute:Second\]
Use failregex line : \[freepbx_security\.NOTICE\]: Authentication failu...
Use single line : [2019-Oct-19 18:45:26] [freepbx_security.NOTICE]: ...


Results
=======

Failregex: 1 total
|- #) [# of hits] regular expression
| 1) [1] \[freepbx_security\.NOTICE\]: Authentication failure for .* from <HOST>
`-

Ignoreregex: 0 total

Date template hits:
|- [# of hits] date format
| [1] ^\[Year-MON-Day 24hour:Minute:Second\]
`-

Lines: 1 lines, 0 ignored, 1 matched, 0 missed
[processed in 0.00 sec]

%
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
trialon77
Сообщения: 2

Re: Fail2ban + Freepbx не банит

Сообщение trialon77 »

Bizdelnick, отлично, это то что нужно.

для таких как я отмечу, что datepattern нужно указывать в таком формате:

Код: Выделить всё

datepattern = ^\[%%Y-%%b-%%d %%H:%%M:%%S\]
Спасибо сказали:
Ответить