Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

fail2ban не банит

0

Добрый день. Прошу помощи в следующем вопросе. Имеется Centos7, firewalld, asterisk13, FreePBX

/etc/fail2ban/jail.conf: (Пробовал несколько вариантов action ни один не сработал)

[asterisk]
enabled  = true
filter   = asterisk
action = firewallcmd-ipset
#action   = iptables-allports[name=ASTERISK, protocol=all] 
#      sendmail[name=ASTERISK, dest=ivanv@domain, sender=fail2ban@local.local]

logpath  = /var/log/asterisk/full
maxretry = 2 
bantime = 259200
findtime = 21600

/etc/fail2ban/filter.d/asterisk.conf:

[INCLUDES]

# Read common prefixes. If any customizations available -- read them from
# common.local
before = common.conf

[Definition]

_daemon = asterisk

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

iso8601 = \d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d+[+-]\d{4}

# All Asterisk log messages begin like this:
log_prefix= (?:NOTICE|SECURITY)%(__pid_re)s:?(?:\[C-[\da-f]*\])? \S+:\d*( in \w+:)?

failregex = ^(%(__prefix_line)s|\[\]\s*)%(log_prefix)s Registration from '[^']*' failed for '<HOST>(:\d+)?' - (Wrong password|Username/auth name mismatch|No matching peer found|Not a local domain|Device does not match ACL|Peer is not supposed to register|ACL error \(permit/deny\)|Not a local domain)$
            ^(%(__prefix_line)s|\[\]\s*)%(log_prefix)s Call from '[^']*' \(<HOST>:\d+\) to extension '\d+' rejected because extension not found in context 'default'\.$
            ^(%(__prefix_line)s|\[\]\s*)%(log_prefix)s Host <HOST> failed to authenticate as '[^']*'$
            ^(%(__prefix_line)s|\[\]\s*)%(log_prefix)s No registration for peer '[^']*' \(from <HOST>\)$
            ^(%(__prefix_line)s|\[\]\s*)%(log_prefix)s Host <HOST> failed MD5 authentication for '[^']*' \([^)]+\)$
            ^(%(__prefix_line)s|\[\]\s*)%(log_prefix)s Failed to authenticate (user|device) [^@]+@<HOST>\S*$
            ^(%(__prefix_line)s|\[\]\s*)%(log_prefix)s hacking attempt detected '<HOST>'$
            ^(%(__prefix_line)s|\[\]\s*)%(log_prefix)s SecurityEvent="(FailedACL|InvalidAccountID|ChallengeResponseFailed|InvalidPassword)",EventTV="([\d-]+|%(iso8601)s)",Severity="[\w]+",Service="[\w]+",EventVersion="\d+",AccountID="(\d*|<unknown>)",SessionID=".+",LocalAddress="IPV[46]/(UDP|TCP|WS)/[\da-fA-F:.]+/\d+",RemoteAddress="IPV[46]/(UDP|TCP|WS)/<HOST>/\d+"(,Challenge="[\w/]+")?(,ReceivedChallenge="\w+")?(,Response="\w+",ExpectedResponse="\w*")?(,ReceivedHash="[\da-f]+")?(,ACLName="\w+")?$
            ^(%(__prefix_line)s|\[\]\s*WARNING%(__pid_re)s:?(?:\[C-[\da-f]*\])? )Ext\. s: "Rejecting unknown SIP connection from <HOST>"$

Делаю проверку правил: fail2ban-regex /var/log/asterisk/full /etc/fail2ban/filter.d/asterisk.conf

Results
=======

Failregex: 50 total

Т.е. правила вроде настроены правильно Но когда пытаюсь подключиться с неправильным паролем или без пароля - то fail2ban не добавляет ip - в бан.

удалить закрыть спам изменить тег редактировать

спросил 2016-02-02 18:38:36 +0400

ipvinner Gravatar ipvinner
54 42 5 28

Comments

Время бана меняли? Попробуйте для начала вернуть стандартное.

Out ( 2016-02-02 19:26:04 +0400 )редактировать

тут скорей надо спросить - удалил ли он firewalld и перешел ли на iptables = потому как я перешел и у меня всё банит. В стандарной настройке там отдельный файлик лежит для firewalld который точно работает. И еще вопрос SSH банит ?

awsswa ( 2016-02-02 22:54:18 +0400 )редактировать

Попробовал поменять время бана на 3600 или вообще закоментировать и использовать по умолчанию.

По ssh банит удачно. Так, что использовать firewalld и fail2ban с asterisk нельзя?

ipvinner ( 2016-02-03 13:35:32 +0400 )редактировать

Раз SSH банит значит конфигурация рабочая - пробовали сменить action = firewallcmd-ipset на banaction = тря-ля-ля

awsswa ( 2016-02-03 15:42:05 +0400 )редактировать

уже попробовал - все равно не работает. В логе нет активности, хотя Jail 'asterisk' started

ipvinner ( 2016-02-03 19:10:00 +0400 )редактировать

3 Ответа

0

у меня было такое, не банил из-за не совпадения времени в логах фаил2бан и астериск. уже не помню как вылечил, а разница была как раз в 6 часов.

И стандартные правила не работают, добавте в фильтр вот это и будет вам счатье:

BAF filter create

        \[\]\s*(?:NOTICE|SECURITY).*SecurityEvent="(FailedACL|InvalidAccountID|ChallengeResponseFailed|InvalidPassword)",.*RemoteAddress="IPV[46]/(

UD|TC)P/<host>.*

ссылка удалить спам редактировать

ответил 2016-02-05 13:47:11 +0400

baf28 Gravatar baf28
11 7 3 4

обновил 2016-02-05 21:35:13 +0400

Comments

стандарные правила не смотрят на время. надо реально чтото криво сделат, чтоб время учитывалося

meral ( 2016-02-05 21:20:48 +0400 )редактировать

как не смотрят, если в течении 10 мин 3 неудачных попытки то банить, это по вашему не смотрят? если это 10 минут были в прошлом то тогда правила не сработает.

baf28 ( 2016-02-05 21:32:52 +0400 )редактировать

Проверил время одинаковое в файлах. Пробовал добавить ваш фильтр - все равно не банит.

ipvinner ( 2016-04-14 09:19:01 +0400 )редактировать
0

Попробуйте использовать следующий пример:

[asterisk]
enabled  = true
filter   = asterisk
action   = iptables-multiport[name=asterisk-tcp, port="5060,5061", protocol=tcp]
           iptables-multiport[name=asterisk-udp, port="5060,5061", protocol=udp]
           sendmail-whois[name=Asterisk, dest=support@f2b.com, sender=sip-f2b@f2b.com, sendername="SIP Fail2Ban"]
logpath  = /var/log/asterisk/messages
           /var/log/asterisk/security
bantime = 259200
maxretry = 3

Это стандартные action f2b в последних версиях ветки 0.8.Х. Так что они всегда должны быть в наборе 100%. Ещё важно то что вы пишите в /var/log/asterisk/full. Возможно там просто не логируются события о которых стоит знать f2b. Я бы посоветовал в logger.conf разделить логи безопасности в 2 файла /var/log/asterisk/messages и /var/log/asterisk/security во первых потому что туда будет писаться только то что относится к безопасноти и вы будете уверены что сравнение происходит с тем что нужно, а во вторых f2b не будет проверять огромные файлы с тем же выводом консоли тратя на это время и ресурсы.

И ещё от себя добавлю что лучше всё своё добро писать в /etc/fail2ban/jail.local а не в основной jail.conf.

ссылка удалить спам редактировать

ответил 2016-02-08 13:56:08 +0400

j33n Gravatar j33n
71 3

Comments

у него firewalld - седьмая ветка centos или rhel - там версия изначально 0.9.х

awsswa ( 2016-02-08 19:10:47 +0400 )редактировать
0

удалите файлик full. подключитесь с неправильным паролем, проверьте еще раз правила. если ок, смотрите actions чтоб совпадало с вашим типом фаервола.

зы вообщето есть файлки /var/log/fail2ban.log в котором описано, что происходит.

ссылка удалить спам редактировать

ответил 2016-02-03 03:37:58 +0400

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

обновил 2016-02-03 03:38:54 +0400

Comments

в этом файлике какой-то полезной информации особо нет. 2016-02-03 09:34:19,271 fail2ban.jail [26046]: INFO Jail 'sshd' started 2016-02-03 09:34:19,274 fail2ban.filtersystemd [26046]: NOTICE Jail started without 'journalmatch' set. Jail regexs will be checked against all journal entries, which is not advised for performance reasons. 2016-02-03 09:34:19,278 fail2ban.jail [26046]: INFO Jail 'asterisk' started

А что дает удаление файла?

ipvinner ( 2016-02-03 13:38:41 +0400 )редактировать

ну старых match не будет же. вы же их удалили. потом можно посмотреть сматчится ли на ваши конкртеные попытки. если в логе ничего нет - значит не работает.

meral ( 2016-02-03 18:17:51 +0400 )редактировать

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2016-02-02 18:38:36 +0400

Просмотрен: 4,214 раз

Обновлен: Feb 08 '16

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.