Размещение Asterisk на публичном ip в течение нескольких минут\часов будет обнаружено ботнетами и начнется активный перебор паролей. Решением может стать автоматическая блокировка источников после заданного количества неудачных попыток авторизации. Для решения этой задачи будем использовать fail2ban.
apt install fail2ban iptables
[asterisk]
в конфигурационном файле /etc/fail2ban/jail.conf.[DEFAULT]
maxretry = 3
findtime = 1h
bantime = 1h
action = iptables-ipset
[asterisk]
enabled = true
backend = polling
filter = asterisk
action = iptables-allports[name=asterisk, protocol=all]
## для Asterisk 13
logpath = /var/log/asterisk/messages
## для Asterisk 20
## logpath = /var/log/asterisk/messages.log
## Исключение из бана
## ignoreip = 10.20.30.13
Возможные варианты указания значения продолжительности - секунды, минуты (m), часы (h), дни (d)
cat /etc/fail2ban/filter.d/asterisk.conf
с сообщениямиtail -f /var/log/asterisk/messages
systemctl restart fail2ban
и убедитесь, что фильтр asterisk работает fail2ban-client status asterisk
Свежие версии fail2ban могут не запускаться с ошибкой про отсутствие директивы allowipv6. Ее необходимо раскомментировать в /etc/fail2ban/fail2ban.conf.
fail2ban-client unban 10.X.Y.Z
(замените X.Y.Z).