Траблшутинг SIP Flooding и DDoS: фильтрация INVITE/REGISTER штормов
- Процесс АТС (Asterisk, FreeSWITCH) утилизирует 100% CPU, переставая отвечать на легитимные вызовы.
- Логи переполнены миллионами попыток регистрации на поддельные extension (100, 101, 1000).
- Переполнение буфера сокетов UDP 5060 и отбрасывание пакетов (socket buffer full).
- Попытки генерации несанкционированного дорогостоящего международного трафика (Toll Fraud).
1. Блокировка сканеров на уровне RAW таблицы Iptables (минимальный CPU overhead)
Добавьте правила в цепочку PREROUTING для отсечения сканеров без прохождения через conntrack:
# Блокировка известных сигнатур User-Agent сканеров
iptables -t raw -A PREROUTING -p udp --dport 5060 -m string --string "friendly-scanner" --algo bm -j DROP
iptables -t raw -A PREROUTING -p udp --dport 5060 -m string --string "sipvicious" --algo bm -j DROP
iptables -t raw -A PREROUTING -p udp --dport 5060 -m string --string "sundayddos" --algo bm -j DROP2. Ограничение частоты запросов (Rate Limiting) через hashlimit
# Ограничение REGISTER/INVITE до 10 пакетов в секунду с одного IP
iptables -A INPUT -p udp --dport 5060 -m hashlimit \
--hashlimit-name sip_limit --hashlimit-above 10/sec --hashlimit-burst 20 \
--hashlimit-mode srcip --hashlimit-htable-expire 30000 -j DROP3. Конфигурация Fail2ban для Asterisk / Kamailio
Файл /etc/fail2ban/jail.d/asterisk.conf:
[asterisk]
enabled = true
filter = asterisk
port = 5060,5061
protocol = all
logpath = /var/log/asterisk/messages
maxretry = 5
findtime = 300
bantime = 86400
banaction = iptables-allports4. Отключение гостевых вызовов в PBX
В pjsip.conf / sip.conf обязательно отключите прием неавторизованных входящих вызовов:
allowguest = no
alwaysauthreject = yes Частые вопросы (FAQ)
Что делает директива alwaysauthreject = yes?
Она заставляет сервер отвечать одинаковой ошибкой 401 Unauthorized как на неверный пароль, так и на несуществующий логин, предотвращая перебор (enumeration) существующих extension.
Почему fail2ban не спасает от распределенного UDP Flood?
Fail2ban анализирует текстовые логи постфактум. При шторме в 100 000 пакетов в секунду сервер захлебнется на операциях дискового ввода-вывода логов до срабатывания бана.
Помогает ли смена стандартного порта 5060 на нестандартный?
Да, перенос SIP на нестандартный UDP порт (например, 5160 или 45892) отсекает более 95% автоматизированных ботнетов и скрипт-кидди.
Что такое SIP Toll Fraud?
Это несанкционированный взлом учетных записей АТС с целью совершения сотен параллельных звонков на платные премиум-номера операторов других стран.