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

Как выпустить Астериск в интернет, какие порты прокинуть на внешний сервер?

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

Надо выпустить астериск из внутренней локалки в большую сеть, с возможностью подключения снаружи абонентов, и с возможностью подключения находящихся в наружней сети шлюзов (типа Addpack GSM).
Администратор локалки попросил принести конкретный список портов на бумажке.
Подскажите, что на ней нужно написать, кроме 5060, чтобы ничего не забыть?
#2

5060 по tcp
10000:20000 (или другие, какие определены в rtp.conf - лучше минимизировать) по udp.
Но это только для VoIP. Да, для t38 свои порты (точно не помню, гугл вам в помощь). Удачи!
#3

vovkalenka, почему Вы не хотите прочитать книжку по Asterisk? Она даже на русском языке есть.
_________________
Gentoo Linux || Asterisk 13.1-cert2
Решения телефонии на базе Asterisk || http://it-need.ru
#4

Наверное потому что там буковок много. А тут тырк-пырк пару строчек, и тебе - опа! - ответили. Иногда даже по существу.
Предложение к администрации: сделайте кнопку в редакторе, вставляющую стандартный текст с отсылкой к книжке, а то похоже все уже запарились.
#5

dotprint писал(а):
5060 по tcp
10000:20000 (или другие, какие определены в rtp.conf - лучше минимизировать) по udp.
Но это только для VoIP. Да, для t38 свои порты (точно не помню, гугл вам в помощь). Удачи!

Спасибо за ответ! Будем прописывать.

Added after 6 minutes:

aven писал(а):
vovkalenka, почему Вы не хотите прочитать книжку по Asterisk? Она даже на русском языке есть.

Не ругайтесь плиз. Книжку читаем. Спасибо за линк, кстати.
И гуглем / яндексом пользуемся.
Но специфика нашей организации такая, что посидеть-попробовать просто не получается.
Например за IP-сети отвечает отдельное подразделение, чтобы открыть порты извне на сервер - пишем служебную. Визируем у начальника нашего подразделения, потом у контролирующего, потом несем начальнику конечного подразделения, потом админу.
Забыли какой-либо указать - пишем еще служебную.
и т.п.

Поэтому спросить у знающих людей, если у них есть возможность ответить - правильнее.

А t38 - это только для факсов, то есть если факсимильная связь не нужна, можно не открывать? Или мы не тот источник почитали?
#6

Цитата:
А t38 - это только для факсов, то есть если факсимильная связь не нужна, можно не открывать? Или мы не тот источник почитали?

Правильно прочитали.
И всё же обратите внимание на замечание об ограничении количества rtp-портов. Это с банальной точки зрения безопасности.
Кстати, о безопасности. Раз уж вы собрались выпускать астер в космос, необходимо озаботиться. Ибо ляжет через 15 минут (это если повезёт) и будет лежать постоянно. Отсюда в первую очередь - нестандартный sip-порт.
#7

dotprint писал(а):

И всё же обратите внимание на замечание об ограничении количества rtp-портов. Это с банальной точки зрения безопасности.

У нас rtp.conf оказался полностью закомментирован... Все строчки начинаются с ; .
То есть например при пробрасывании портов открыть не 10000-20000, а 18500-18800?
Какой диапазон разумно оставить при максимальной загрузке - 10 одновременных звонков?
#8

Если всё закомментировано, то идет стандартом 10000:20000. По мне, так поставьте 30 портов. Но не забудьте в rtp.conf это прописать.
#9

dotprint писал(а):
Если всё закомментировано, то идет стандартом 10000:20000. По мне, так поставьте 30 портов. Но не забудьте в rtp.conf это прописать.

Хм. Например:
Код:
[general]
rtpstart=18000
rtpend=18030

А как быть, если внутри локалки астериск обслуживает 1000 пользователей, а снаружи будет только 10?
#10

2 5060 по tcp
по какому протоколу у вас идет SIP по tcp или udp, уточните для себя.

2А как быть, если внутри локалки астериск обслуживает 1000 пользователей, а снаружи будет только 10?
А вы уверены что имея столько пользователей у вас астериск обслуживает только 10 одновременных звонков?
Боюсь соврать, но количество портов нужно рассчитывать по формуле: Количество портов = максимальное количество звонков * 2

из специфики ната: Нужно сделать так чтобы NAT на этих портах работал статически.
#11

daan_m писал(а):
2 5060 по tcp
по какому протоколу у вас идет SIP по tcp или udp, уточните для себя.

Клиенты в настройках подключения указывают tcp 5060.

daan_m писал(а):

А вы уверены что имея столько пользователей у вас астериск обслуживает только 10 одновременных звонков?
Боюсь соврать, но количество портов нужно рассчитывать по формуле: Количество портов = максимальное количество звонков * 2

Имеется ввиду, что снаружи, не из локалки не будет подключаться более десяти клиентов. Внутри локалки звонков конечно больше.


daan_m писал(а):

из специфики ната: Нужно сделать так чтобы NAT на этих портах работал статически.

Да, так и будет.

Спасиб за пояснения по портам, про звонки*2.
#12

Если у вас 1000 внутренних клиентов, то, конечно поменять всем sip-порт будет редкостный гемморой.
поэтому просите ваших сетевиков делать проброс 5060, чтобы снаружи он был другим. То есть маршрутизатор должен какой-нибудь другой внешний порт типа 5066 мапить на внутренний 5060. Это обязательное условие!!!
#13

Да, именно внутренние клиенты останутся работать внутри на 5060, а десять новых внешних клиентов зацепятся на нестандартный порт к внешнему маршрутизатору, он переведет его внутрь, на 5060 на астериске.
#14

dotprint писал(а):
Кстати, о безопасности. Раз уж вы собрались выпускать астер в космос, необходимо озаботиться. Ибо ляжет через 15 минут (это если повезёт) и будет лежать постоянно. Отсюда в первую очередь - нестандартный sip-порт.

ничего подобного. зачем так людей пугать? Laughing
ставите и настраиваете fail2ban и все скрипт-кидди идут лесом.
гуглится по словам "asterisk fail2ban"
времена когда хачили путем лишь правкой пары пакетов и засылкой их в астериск уже давным-давно прошли Wink теперь всё достаточно надежно.
я лично никогда не меняю стандартные порты ибо считаю это извращением. а главное - от реальных хакеров эта отмазка не прокатит всеравно. зато клиентам гимора (да и вам - если клиент тормоз) добавит однозначно.
#15

2anest
Очень своевременный совет с fail2ban.
Рассказываю: поставили абсолютно новый астериск, сразу же fail2ban поставили, успели создать двух юзеров, диалпланы не настроили - то есть не умеет еще звонить. Ни к чему сервер не подключали, нигде не светили.
Через три часа после того, как выпустили его в интернет - логи начали показывать попытки левой авторизации с немецкого ip, по 10 штук в секунду.
Fail2ban их успешно блокирует, но почему-то не три попытки пропускает, как в настройках, а все тридцать. Наверное он логи анализирует раз в секунду. с этим связываем.

Но сама проблематика удивила - выходит, что софтфон X-lite - дырявый. Ибо ни к чему больше астериск не подключали. Троянов на компах нет. Других общественных сервисов в этой подсети у нас нет. Откуда-то узнали ведь немцы про существование сервера.
#16

меняйте порт 5060
#17

Элементарно узнали. Тупо сканируют весь тырнет 60/60/24/356 (это в смысле круглосуточно Smile ) на открытый порт 5060. Если есть - ломятся. Кстати, 3 часа - это еще хорошо.
#18

а то что тридцать а не три - это совершенно не страшно! почемуто все на этом акцент делают. да хоть все триста! ну скажите - ваш пароль отгадают за 300 попыток? ну и вот! тогда чего мандражировать зря? Smile а если отгадают то ваш пароль и так ничего не стоит, этоже элементарно.
#19

Вот не ленивые же люди... Сейчас куда угодно по скайпу позвонить копейки стоит, а они ломятся на неизвестные сервера.
Когда будет нечего делать - скормим им какой-нибудь аккаунт с паролем 123, предварительно перенаправив любые вызовы с него на свой номер - можно пообщаться и напугатьSmile

Ну да, если посчитать - 30 попыток отгадывания восьмизначных рандомных паролей с последующим баном на полчаса - много шансов нет.
#20

Номер может быть левый. И потом пострадают совершенно невинные люди.
_________________
Ищу работу
#21

Цитата:
Fail2ban их успешно блокирует, но почему-то не три попытки пропускает, как в настройках, а все тридцать. Наверное он логи анализирует раз в секунду. с этим связываем.

Можно средствами iptables попробовать таких настойчивых блокировать. Типа так:
Код:
iptables -N ASTER_CHECK
iptables -A INPUT -p udp --dport 5060 -m state --state NEW -j ASTER_CHECK
iptables -A ASTER_CHECK -m recent --set --name ASTER
iptables -A ASTER_CHECK -m recent --update --seconds 300 --hitcount 3 --name ASTER -j DROP
#22

Не помогла защита. Где-то у нас дырка - позавчера весь вечер неизвестные звонили в Сенегал через наш астериск.
Звонили с пиров, которых у нас нет и никогда не было:
Цитата:
,"1001","8102437389080","default","1001","SIP/192.168.0.1-000000e8","SIP/asterisk2-000000e9","Dial","SIP/asterisk2/8102437389080,20,rT","2012-03-17 18:05:16",,"2012-03-17 18:05:19",3,0,"FAILED","DOCUMENTATION","1332007516.662",""

Пир 1001 у нас не зарегистрирован:
Код:
localhost*CLI> sip show peer 1001
Peer 1001 not found.

Звонили и с других неизвестных пиров - 555000 например.

Наговорили немного, провайдер заметил кучу вызовов, и заблокировал сеть до понедельника, предупредил нас. Но все равно очень неприятно.
Где может быть дыра? Неужели закомментированная по умолчанию строчка:
Код:
;allowguest=no;

позволяет звонить кому угодно без авторизации?

Added after 2 minutes:

Ну и главный вопрос - а где взять ip адрес звонящего? Его нигде нет.
#23

Цитата:
Неужели закомментированная по умолчанию строчка:
Код:

;allowguest=no;

позволяет звонить кому угодно без авторизации?

Код:
$ grep guest /etc/asterisk/sip.conf
allowguest=no ; Allow or reject guest calls (default is yes)


Added after 12 minutes:

Цитата:
Ну и главный вопрос - а где взять ip адрес звонящего? Его нигде нет.

В /etc/asterisk/logger.conf
Код:
full => notice,warning,error,debug,verbose,dtmf

После этого ip-адрес появится. Типа:
Код:
[Mar 20 09:33:46] DEBUG[14341] chan_sip.c: build_route: Contact hop:
#24

2s68 - спасибо, работает. Нам это актуально, безопасники требуют конкретные адреса.

Да, может кому из новичков будет полезно, с такой же как у нас проблемой постоянного подбора паролей. Брутфорсеры не отставали даже несмотря на fail2ban, после изменения этой директивы лишились возможности получать наши логины и пока молчат:
Код:
По умолчанию Asterisk выдает одну ошибку о неверном пароле для существующего аккаунта и другую для несуществующего аккаунта. Существует множество программ для подбора паролей, поэтому злоумышленнику не составит труда проверить все короткие номера и собирать пароли лишь к существующим аккаунтам, которые ответили «неверный пароль». Чтобы помешать этому, меняем строчку в файле /etc/asterisk/sip.conf:
alwaysauthreject = no на alwaysauthreject = yes