Назад | Перейти на главную страницу

FreePBX / Asterisk: используйте входящие маршруты для блокировки спамеров / хакеров

Моя конфигурация FreePBX / Asterisk недавно была принудительно разрешена как для анонимных входящих вызовов, так и для гостей SIP. Так что, конечно, сейчас нас атакуют попытки спама / взлома.

Они отображаются в журнале как:

[2020-05-02 11:09:53] ПРЕДУПРЕЖДЕНИЕ [30801]: res_pjsip_registrar.c: 1051 registrar_on_rx_request: конечная точка «анонимная» не имеет настроенных AOR

И получаем десятки в секунду.

Могу ли я внести изменения в конфигурацию, чтобы по существу заблокировать каждый из них каким-либо механизмом, который просто заставляет вызывающего абонента ждать некоторое время (например, час), а затем вешает трубку? Я думаю, что это ограничит ресурсы спамеров и на порядки снизит полосу пропускания, которую они используют.

Итак, во-первых, возможно ли это? Как сделать это безопасно?

Во-вторых, есть ли у этого серьезные недостатки? Например, замедление любой перезагрузки конфигурации на порядок или что-то в этом роде.

Какие-нибудь мысли или советы по теме?

Я бы добавил несколько iptables.

Я бы начал с просмотра каналов sip show и / или использования tcpdump и некоторых прямых команд консоли asterisk.

tcpdump -i eth0 port sip -l -A | egrep -i 'INVITE sip'
tcpdump -i eth0 port sip -l -A | egrep -i 'User-Agent'

# tcpdump -i ens3 port sip -l -A | egrep -i 'INVITE sip'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens3, link-type EN10MB (Ethernet), capture size 262144 bytes
15:58:28.377294 IP ns542407.ip-144-217-77.net.7112 > 10.0.0.11.sip: SIP: INVITE sip:+10390237920793@107.179.205.23:5060 SIP/2.0
...........INVITE sip:+10390237920793@107.179.205.23:5060 SIP/2.0



asterisk -rx "sip show channels"
Peer             User/ANR         Call ID          Format           Hold     Last Message    Expiry     Peer      

13.78.236.138    7780             1317157998-1339  (nothing)        No       Rx: INVITE                 <guest>
144.217.77.27    8888942908       00lFxPc9nsGj22f  (nothing)        No       Rx: ACK                    <guest>

если ваши запросы - ПРИГЛАСИТЬ или РЕГИСТРАЦИЯ, как в моем примере. вы можете замедлить их с помощью iptables вручную или узнать, как добавить это при загрузке, в зависимости от вашей версии Linux. (микросфти я понятия не имею)

iptables -A INPUT -p udp -m udp --dport 5060 -m string --string "INVITE sip:" --algo bm --to 65535 -m recent --update --seconds 60 --hitcount 12 --rttl --name VOIPINV --rsource
iptables -A INPUT -p udp -m udp --dport 5060 -m string --string "INVITE sip:" --algo bm --to 65535 -m recent --set --name VOIPINV --rsource
iptables -A INPUT -p udp -m udp --dport 5060 -m string --string "REGISTER sip:" --algo bm --to 65535 -m recent --update --seconds 60 --hitcount 12 --rttl --name VOIP --rsource
iptables -A INPUT -p udp -m udp --dport 5060 -m string --string "REGISTER sip:" --algo bm --to 65535 -m recent --set --name VOIP --rsource

Вы можете играть с разными переменными (секунды / счетчик / строка). Я считаю, что с помощью fail2ban это эффективно замедляет их работу. не говоря уже о блокировке диапазонов стран с ipset, к которым эта телефонная система не будет иметь много подключений для людей.