Размещение Asterisk на публичном ip в течение нескольких минут\часов будет обнаружено ботнетами и начнется активный перебор паролей. Решением может стать автоматическая блокировка источников после заданного количества неудачных попыток авторизации. Для решения этой задачи будем использовать fail2ban.
apt install fail2ban iptables
[asterisk]
enabled = true
port = 5060,5061
action_ = %(default/action_)s[name=%(__name__)s-tcp, protocol="tcp"]
%(default/action_)s[name=%(__name__)s-udp, protocol="udp"]
logpath = /var/log/asterisk/messages ## для asterisk 13
# logpath = /var/log/asterisk/messages.log ## для asterisk 20
maxretry = 3
#findtime = 21600
#bantime = 86400
findtime и bantime определены глобально, но их можно задать для каждой секции отдельно. В примере время указано в секундах. Возможные варианты - минуты (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 (в fail2ban.conf) и отсутствие конфигурации ssh (в jail.conf). Их следует поправить.
fail2ban-client unban 10.5.x.x
(замените Х).