Защита Asterisk 11 от подбора паролей с помощью Fail2Ban

Sep 28, 2015 16:27 · 315 words · 2 minute read asterisk fail2ban

Еще в 10-й версии Asterisk разработчики внедрили лог security и сделали возможной реализацию защиты Asterisk от подбора паролей с помощью Fail2Ban. Давайте разберемся, что необходимо для реализации такой защиты!

Так как в нашем случае используется Asterisk 11, то с помощью довольно простой настройки его можно использовать вместе в Fail2Ban. Считаем, что у нас уже установлен Asterisk 11 (подробнее об установке можно почитать здесь и здесь) и утилита Fail2Ban.

Для дальнейшей настройки необходимо выполнить следующие шаги:

  • открываем на редактирование конфиг /etc/asterisk/logger.conf:
nano /etc/asterisk/logger.conf
  • добавляем в секцию [general] строку:
...
dateformat=%F %T
...
  • и в секцию [logfiles]:
...
security => security
...
  • перечитываем конфиг Asterisk’а:
/etc/init.d/asterisk reload
  • открываем на редактирование конфиг /etc/fail2ban/jail.conf:
nano /etc/fail2ban/jail.conf
  • и добавляем в конец файла следующие строки:
[asterisk-iptables]
enabled  = true
filter   = asterisk
action   = iptables-allports[name=ASTERISK, protocol=all]
           sendmail-whois[name=ASTERISK, dest=noc@domain, sender=fail2ban@domain]
logpath  = /var/log/asterisk/security
maxretry = 5
bantime = 259200
ignoreip = 127.0.0.0/8 192.168.0.0/16
  • создаем файл /etc/fail2ban/filter.d/asterisk.conf со следующим содержимым:
# Fail2Ban configuration file
 
[INCLUDES]
 
# Read common prefixes. If any customizations available -- read them from
# common.local
 
[Definition]
 
#_daemon = asterisk
 
# Option:  failregex
# Notes.:  regex to match the password failures messages in the logfile. The
#          host must be matched by a group named "host". The tag "" can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P\S+)
# Values:  TEXT
#
 
failregex = SECURITY.* SecurityEvent="FailedACL".*RemoteAddress=".+?/.+?/<HOST>/.+?".*
            SECURITY.* SecurityEvent="InvalidAccountID".*RemoteAddress=".+?/.+?/<HOST>/.+?".*
            SECURITY.* SecurityEvent="ChallengeResponseFailed".*RemoteAddress=".+?/.+?/<HOST>/.+?".*
      SECURITY.* SecurityEvent="InvalidPassword".*RemoteAddress=".+?/.+?/<HOST>/.+?".*
 
# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =
  • перезапускаем Fail2Ban командой:
/etc/init.d/fail2ban restart

После проделанных действий Fail2Ban будет проверять /var/log/asterisk/security на наличие регулярных выражений, описанных в /etc/fail2ban/filter.d/asterisk.conf. При 5 попытках подбора SIP пароля ip-адрес атакующего будет заблокирован на 72 часа (259200 секунд) и будет отправлено письмо о данном событии на почтовый адрес noc@domain.

Готово! Так быстро была организована защита Asterisk 11 от подбора паролей с помощью Fail2Ban.

tweet Share