Безопасность Asterisk, защита от сканирования портов

Приветствую!

Была задача объединить Dlink FXO и Asterisk. Все было сделано успешно встал вопрос о безопасности Asterisk.

  1. установили и настроили fail2ban
  2. закрыли доступ к веб серверу из вне точнее доступ по паролю
  3. запретили анонимные звонки

Вот вроде и все, 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 и добавляю правила.


12 комментариев

  • habum

    24 ноября 2016

    Добрый день!
    Не копируйте команды в консоль. Пишите руками. не —string а —string кавычки не «» а «»
    Надеюсь пригодиться.

  • Андрей Гаркин

    21 декабря 2016

    Это особенность движка wordpress 2 тире подменять одним.

  • Олег

    26 февраля 2017

    Имею такую же проблему:
    «[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 ничего не показывает.
    Что посоветуете?

  • Андрей Гаркин

    26 февраля 2017

    Для начала iptables настройте по агентам, как у меня в статье.

    Тупо прилетают спамерские Invite.

  • Олег

    26 февраля 2017

    ‘Bad argument `—dport’ —(((

  • Андрей Гаркин

    26 февраля 2017

    Ну так правильно. Движок wordpress подменяет — надо писать двойное тиреdport

  • Олег

    26 февраля 2017

    iptables v1.4.21: unknown option «-m»

  • Олег

    26 февраля 2017

    Нашел эти правила с правильным синтаксисом, но «[2017-02-26 21:16:17] WARNING[1809]: chan_sip.c:4130 retrans_pkt: Timeout on f0986a3d678286a3b25c31d657e9b8f0 on non-critical invite transaction.» не прекратились…

  • Андрей Гаркин

    26 февраля 2017

    тут только глянуть tcpdump каким агентом валится сообщение. У меня такое было на какой то версии Xlite.

    А вообще on non-critical invite transaction. Ничего критичного.

    P.S.: Правила верные, только не надо копировать. На Centos 6 работают.

  • Андрей Гаркин

    26 февраля 2017

    И приведите вывод iptables -L -v
    Что-то подсказывает что где-то ошибка.

  • Ruza

    2 марта 2017

    Сегодня нашёл:
    89.248.172.140 trunk VFIQVGEDOJYMUKZ (nothing) No Rx: INVITE
    tcpdump
    User-Agent: Cisco-SIPGateway/IOS-12.x

  • Oms

    26 марта 2018

    Добрый день, спасибо большое за статью. Не могли бы Вы подробнее описать как использовать tcpdump

Добавить комментарий