AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Ломанули как правильно защитить астера?

Newbies/FAQ Forum 15 сообщений -
#1

Приветствую, ломанули тестовый сервер. Вижу постоянно ломится на мой номер и всю ночь куда-то звонил. Сейчас временно выключил для контекста телефонов выход наружу, вижу в логах гад коннектится.

Вопрос, что я прописал неверно что он:
1. Угадал пароль и подрубился и астер его авторизовал?
2. Угадал правильный контекст трубок?
3. Я отметил вещи которые меня смущают.
4. У сип-юзеров стоит insecure=port,invite - в этом все дело? Что тогда поставить.

Вот мой sip.conf
----------
[general]
videosupport=yes
alwaysauthreject=yes
allowguest = no
allowoverlap = no

realm=aster_realm

externip=aster_ip_address
nat=force_rport,comedia

rtcachefriends=yes
rtcache=yes
;
;------------ Trunk Sipnet.ru----------
register = 11111111:yyyyyyyyyyy@sipnet.ru /878
;-------------------------------------
;
;
;------------ Trunk Sipout.net --------
register = 3222222222:zzzzzzzzzz@vpbx.sipout.net /898
;--------------------------------------
language=ru
disalow=all
allow=gsm
allow=ulaw
;allow=h261
;allow=h263
allow=h263p
;allow=h264


; Настройка провайдера Sipnet

[sipnet]
type=peer
host = sipnet.ru
defaultuser = 11111111
secret = yyyyyyyyy
context = phones
insecure=invite
fromuser = 11111111
fromdomain = sipnet.ru
dtmfmode=rfc2833
disallow=all
;allow=g729
allow=ulaw
allow=alaw
allow=gsm
callbackextension = 878
directmedia=no
qualify=yes

;--------------- Sipout context-----------------
[sipout]
type=peer
host = vpbx.sipout.net
defaultuser = 222222222222
secret = zzzzzzzzzzzzzzz
context = phones
insecure=invite
fromuser = 2222222222222
fromdomain = vpbx.sipout.net
dtmfmode=rfc2833
disallow=all
;allow=g729
allow=ulaw
allow=alaw
allow=gsm
callbackextension = 898
directmedia=no
qualify=yes

Added after 46 seconds:

Щас хакер получает такой отлуп:

Call from '1001' (188.165.221.136:5060) to extension '009609049630' rejected because extension not found in context 'phones'.
#2

смотрите другие пиры, где host=dynamic.

если извне доступ не нужен, не пробрасывайте порт 5060 на роутере вовнутрь, при регистрации оно и так будет проходить.
ну и у юзеров строчки permit/deny - обязательны

_________________
http://mh.otx.ru Гибкие SIP/E1 шлюзы Alvis. SIP-Модернизация LDK/TDA:VoIP, Добавь E1 к Asterisk.
UPDATE! Теперь и T.38! Скидки для форумчан!!
#3

А с вот этой штукой чего делать? Правильно ли я понимаю что она отключает проверку?
insecure=port,invite
#4

zotac @ Чт Янв 22, 2015 13:09 писал(а):
А с вот этой штукой чего делать? Правильно ли я понимаю что она отключает проверку?
insecure=port,invite


да, в этом случае будет проверка только по IP. но если host задан статически, то хакер с другого IP врятли может это обойти.
Лишь только, если он не звонит через этот же сипнет)
Но для этого контексты есть, hangup там в помощь на входящие.

обычно insecure=port,invite ставится для транков без регистрации.

_________________
http://mh.otx.ru Гибкие SIP/E1 шлюзы Alvis. SIP-Модернизация LDK/TDA:VoIP, Добавь E1 к Asterisk.
UPDATE! Теперь и T.38! Скидки для форумчан!!
#5

Т.е. дял пользователей я просто убираю этот параметр, верно? Или он дефолтное значение тоже вредное поставит?
#6

данный сабж поднимался не один раз, погуглите: защита asterisk
читайте, вникайте, действуйте
мы вот сейчас дошли до online сервиса для защиты от подобного

а ответ на вопрос "как" можно попоробовать получить с помощью sipvicious
#7

Цитата:
Т.е. дял пользователей я просто убираю этот параметр, верно? Или он дефолтное значение тоже вредное поставит?


Если мы говорим о абонентах Asterisk, то более безопасно будет

[абонент]
type=peer
host=dynamic
context=
secret=

В случаи неправильной регистрации или отсутствия записи регистрации в astDB Asterisk не позволит осуществить звонок от внутреннего абонента.

Если мы говорим о каналах связи, то

[канал]
type=peer
host=IP
insecure=port,invite
defaultuser=
fromuser=
fromdomain=
deny=0.0.0.0
permit=IP_провайдера
context=
#8

Цитата:

Если мы говорим о абонентах Asterisk, то более безопасно будет


Отсуствие пиров с host=dynamic без списков deny/permit.
В списках явно добавить правильные подсети, откуда возможен доступ.
insecure НИКАК не поможет:

_________________
http://mh.otx.ru Гибкие SIP/E1 шлюзы Alvis. SIP-Модернизация LDK/TDA:VoIP, Добавь E1 к Asterisk.
UPDATE! Теперь и T.38! Скидки для форумчан!!
#9

Эх братцы я бы рад добавить подсети но основная идея Астера это доступ из интернет, т.к. основные пользователи это gprs/edge/wifi клиенты разъездные, поэтому я ну никак не могу выставить правильные подсети.
#10

тогда добавте какой нить префикс для набора номера и выхода в город
затем напишите скриптину, которая будет парсить лог астера и если встречает:
- попытки перебора набора номера
- попытки зарегать несуществующий пир
- попытки зарегать существующий пир, но с не верным паролем
то добавлять ип злоумышленника в firewall

например:
Код:
/usr/bin/grep -E ' chan_sip.c: Registration from .* No matching peer found$' /var/log/asterisk/messages.0 | sed -E 's/""*//;s/""*//;s/\>//;s/\ 10 ){ bbb=sprintf("%s",$2); cmd=sprintf("/sbin/ipfw table 56 add %s/32 5060 >/dev/null 2>&1",a); system(cmd); printf ("Wrong peers repeated [%d] times: IP [%s] blocked\n\n",ips[a],a); } } }'
#11

софтина называется fail2ban.
Ну и для "внешних" клиентов в обязательном порядке использование стойких паролей.
Для внутренних и статичных клиентов -- deny/permit в обязательном порядке.

А идея с префиксами мне не кажется такой уж панацей.
#12

Занимаюсь настройкой IPTABLES, вот получилась такая табличка, в которой меня смущает строчка про loopback (жирным шрифтом). Вводил их следующими командами:
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT

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


Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:5225 state NEW limit: up to 1/hour burst 2 mode srcip htable-expire 60000
DROP tcp -- anywhere anywhere tcp dpt:5225flags: SYN,RST,ACK/SYN
ACCEPT tcp -- anywhere anywhere tcp dpt:5225
ACCEPT all -- anywhere anywhere
REJECT all -- anywhere loopback/8 reject-with icmp-port-unreachable
#13

ответ на данный вопрос не дам (лень читать)

но посоветую то что здесь уже выкладывали

Код:
iptables -A INPUT -p udp -m udp --dport 5060 -m string --string "friendly-scanner" --algo bm -j DROP
iptables -A INPUT -p udp -m udp --dport 5060 -m string --string "sip-cli" --algo bm -j DROP


раньше я не знал что можно разруливать пакеты по содержанию хедера.

_________________
Алексей Милько
#14

Ну в первой строке понятно scaner, его блокаем, а чем sip-cli не угодил?

Added after 1 hours 46 minutes:

Короче фишка оказалась гораздо примитивнее. Хостинг провайдер: server-cloud.com где я взял за 5CHF VPS сервер на 1 месяц имеет опцию защиты от DDOS атак. Стоит эта опция 99CHF за каждый процессор!!! Smile Я сначала удивился о таком явном упоминании услуги, но не обратил внимания. Короче сервер начал беспощадно дохнуть, просто даже в консоль не зайти, я тут же начал рыться наверно меня ДОСят. Начал читать iptables и fail2ban все настроил - все равно не помогает. Дохнет сервер и все. Потом до меня доперло, это же сам хостинг гадости делает, чтобы я их опцию купил. Короче написал в поддержку типа есть 2 сервера 1 у вас второй не увас, идентичной конфигурации. Который у вас - постоянно дохнет, я начинаю сматывать удочки.

ВСЕ ПРОБЛЕМЫ КАК РУКОЙ СНЯЛО! Так что если у вашего провайдера есть отдельный тариф защиты вашего сервера, значит скорее всего он сам его вам и ломает!

Удачи.
#15

ТС: нужно правильнее указывать. В данном случае - что есть виртуалка на хостинге..
Там свои заморочки.

_________________
http://mh.otx.ru Гибкие SIP/E1 шлюзы Alvis. SIP-Модернизация LDK/TDA:VoIP, Добавь E1 к Asterisk.
UPDATE! Теперь и T.38! Скидки для форумчан!!