Защита Asterisk от взлома и брутфорса: настройка Fail2Ban для блокировки порта 5060
- В консоли Asterisk непрерывно бегут тысячи сообщений:
Registration from '<sip:100@...>' failed - Wrong passwordот неизвестных зарубежных IP-адресов (Германия, Палестина, Китай). - Баланс на счете телефонного оператора внезапно ушел в глубокий минус из-за ночных звонков на платные номера Кубы или Сомали.
- Процессор сервера загружен на 100% постоянными попытками авторизации SIP-сканеров (SIPVicious, Friendly-Scanner).
- Внутренние телефоны сотрудников периодически теряют регистрацию из-за сетевого флуда.
Как работают телефонные хакеры?
Автоматизированные боты сканируют весь интернет на наличие открытого порта UDP/TCP 5060. Найдя сервер Asterisk, бот начинает перебирать номера (100, 101, 1000) и простые пароли к ним (123456, admin, qwe123). Подобрав пароль, злоумышленники за несколько часов выговаривают сотни тысяч рублей через международные направления.
Пошаговый комплекс защиты телефонии:
Шаг 1. Установка и базовая настройка Fail2Ban
Fail2Ban — это системный сторож, который анализирует лог-файл Asterisk. Если с одного IP-адреса зафиксировано 3–5 неудачных попыток ввода пароля, Fail2Ban автоматически добавляет этот IP в бан брандмауэра (iptables) на уровне ядра Linux.
- Установите Fail2Ban:
sudo apt-get install fail2ban -y || sudo dnf install fail2ban -y - Создайте локальный конфигурационный файл защиты:
sudo nano /etc/fail2ban/jail.local - Добавьте блок правил для Asterisk:
[asterisk] enabled = true filter = asterisk port = 5060,5061,5160 protocol = all logpath = /var/log/asterisk/full maxretry = 5 findtime = 600 bantime = 86400 ; Бан на 24 часа - Перезапустите службу Fail2Ban:
sudo systemctl enable --now fail2ban sudo systemctl restart fail2ban
Шаг 2. Включение подробного логирования безопасности в Asterisk
Чтобы Fail2Ban видел попытки подбора паролей, откройте /etc/asterisk/logger.conf:
[logfiles]
full => notice,warning,error,debug,verbose,securityПримените настройки: sudo asterisk -rx "logger reload".
Шаг 3. Смена стандартного SIP-порта 5060 на нестандартный
Смена порта убирает 99% автоматических атак ботов-сканеров:
- В
/etc/asterisk/pjsip.confили в веб-интерфейсе FreePBX изменитеbind_port = 5060на любой произвольный порт, например54231. - На всех телефонных аппаратах в графе «Порт сервера» также укажите новый порт
54231.
Шаг 4. Отключение ответа на запросы со скрытыми именами (alwaysauthreject)
В файле /etc/asterisk/sip.conf пропишите директиву:
alwaysauthreject = yesЭто заставит Asterisk отвечать одинаковым отказом как на неверный пароль, так и на несуществующий логин, не давая хакерам возможность узнать список реальных номеров в компании.
Частые вопросы (FAQ)
Как проверить список заблокированных хакеров прямо сейчас?
Выполните команду: sudo fail2ban-client status asterisk. Вы увидите общее количество забаненных IP и их подробный список.
Как вручную разблокировать случайно забаненного сотрудника?
Выполните команду: sudo fail2ban-client set asterisk unbanip <IP_адрес_сотрудника>.
Как защитить свой собственный статический IP от случайного бана?
В файле /etc/fail2ban/jail.local в секцию [DEFAULT] добавьте строку: ignoreip = 127.0.0.1/8 192.168.1.0/24 <Ваш_домашний_белый_IP>.
Нужно ли закрывать международные направления на уровне оператора связи?
Обязательно! Напишите заявление вашему оператору связи с просьбой полностью заблокировать международные вызовы (или оставить только страны, с которыми вы реально ведете бизнес).