Приветствую!
Была задача объединить Dlink FXO и Asterisk. Все было сделано успешно встал вопрос о безопасности Asterisk.
- установили и настроили fail2ban
- закрыли доступ к веб серверу из вне точнее доступ по паролю
- запретили анонимные звонки
Вот вроде и все, fail2ban успешно ловит по правилу. Но настигла меня участь попасть под сканеров. В логе asterisk валились сообщения:
Timeout on a1ba91d3db3d751eb98dca1f0830407d on non-critical invite transaction.
либо
chan_sip.c: Failed to authenticate device 4006<sip:4006@My_IP>;tag=cfac1d5d
Естественно fail2ban здесь не помощник, надо на сетевом уровне смотреть кто такой. Выполняем в консоли asterisk sip show channels и видим некий IP который нам шлет INVITE как guest.
Посмотрели tcpdump что в заголовках и добавили в iptables правила:
-A INPUT -p udp -m udp —dport 5060 -m string —string «sipcli» —algo bm —to 65535 -j DROP
-A INPUT -p udp -m udp —dport 5060 -m string —string «sip-scan» —algo bm —to 65535 -j DROP
-A INPUT -p udp -m udp —dport 5060 -m string —string «iWar» —algo bm —to 65535 -j DROP
-A INPUT -p udp -m udp —dport 5060 -m string —string «sipvicious» —algo bm —to 65535 -j DROP
-A INPUT -p udp -m udp —dport 5060 -m string —string «sipsak» —algo bm —to 65535 -j DROP
-A INPUT -p udp -m udp —dport 5060 -m string —string «sundayddr» —algo bm —to 65535 -j DROP
-A INPUT -p udp -m udp —dport 5060 -m string —string «VaxSIPUserAgent» —algo bm —to 65535 -j DROP
-A INPUT -p udp -m udp —dport 5060 -m string —string «friendly-scanner» —algo bm —to 65535 -j DROP
Ну вот и все решение проблемы с защитой SIP порта от сканирования. iptables просматривает пакеты и если видит в них заголовки сразу отбрасывает их.
Теперь как только вижу подозрительные сообщения, смотрю заголовки через tcpdump и добавляю правила.
Добрый день!
Не копируйте команды в консоль. Пишите руками. не —string а —string кавычки не «» а «»
Надеюсь пригодиться.
Это особенность движка wordpress 2 тире подменять одним.
Имею такую же проблему:
«[2017-02-26 17:37:45] WARNING[1809]: chan_sip.c:4130 retrans_pkt: Timeout on ac9152718d41145d98611c97191b07bb on non-critical invite transaction.»
но sip show chanells ничего не показывает.
Что посоветуете?
Для начала iptables настройте по агентам, как у меня в статье.
Тупо прилетают спамерские Invite.
‘Bad argument `—dport’ —(((
Ну так правильно. Движок wordpress подменяет — надо писать двойное тиреdport
iptables v1.4.21: unknown option «-m»
Нашел эти правила с правильным синтаксисом, но «[2017-02-26 21:16:17] WARNING[1809]: chan_sip.c:4130 retrans_pkt: Timeout on f0986a3d678286a3b25c31d657e9b8f0 on non-critical invite transaction.» не прекратились…
тут только глянуть tcpdump каким агентом валится сообщение. У меня такое было на какой то версии Xlite.
А вообще on non-critical invite transaction. Ничего критичного.
P.S.: Правила верные, только не надо копировать. На Centos 6 работают.
И приведите вывод iptables -L -v
Что-то подсказывает что где-то ошибка.
Сегодня нашёл:
89.248.172.140 trunk VFIQVGEDOJYMUKZ (nothing) No Rx: INVITE
tcpdump
User-Agent: Cisco-SIPGateway/IOS-12.x
Добрый день, спасибо большое за статью. Не могли бы Вы подробнее описать как использовать tcpdump
Здравствуйте,
Хорошая статья, спасибо. Все заработало, только не понял зачем параметр —to 65535? Мы же вроде просто отбрасываем пакеты, а не редиректим?
ALGO name bm — значит используется алгоритм Бойера — Мура
TO 65535 — подстрока ищется в первых 65535 байтах
Андрей, спасибо! Все перерыл, не нашел параметр —to. Думал это редирект на порт.