Защита Asterisk 11 от подбора паролей с помощью Fail2Ban
Sep 28, 2015 16:27 · 315 words · 2 minute read
Еще в 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.