- PVSM.RU - https://www.pvsm.ru -
Статья ориентирована на начинающих пользователей Asterisk, которые, тем не менее,
имеют знания о работе компьютерных сетей на уровне CCNA и которые изучали основы IP-телефонии [1] без специализированных курсов.
1. Вы не отключили анонимные звонки и использовали контекст по умолчанию для плана нумерации
Проблема
По умолчанию, в Asterisk включены анонимные звонки, чтобы вам могли звонить из любой точки планеты напрямую, указывая номер@вашдомен в качестве назначения звонка и опираясь на работу DNS. Это очень полезная возможность, но она может сыграть с вами дурную шутку, если вы используете контекст по умолчанию для основной нумерации. Получится, что любой желающий, отправивший запрос на номер_телефона@ваш_домен сможет за ваш счет позвонить по межгороду, например.
Решение
Первое правило, которому следовать нужно всегда: не использовать контекст по умолчанию для нумерации. Запомните,
контекст default только для анонимных звонков из интернета, рассматривайте его как самый недоверенный из всех. Если вы не планируете принимать анонимные звонки, обязательно отключите их.
sip.conf
[general]
allowguest=no
2. Вы по-разному отвечаете на запрос регистрации с верным именем пользователя и неверным паролем и на запрос с несуществующим именем пользователя
Проблема
В интернете хватает желающих позвонить за чужой счет, поэтому надо максимально усложнять им жизнь. Asterisk, по умолчанию (до недавних пор, но вдруг у вас не совсем свежая версия), по-разному отвечает на попытки регистрации с неверным именем пользователя и с верным именем, но неверным паролем. Отсюда возникает возможность у атакующего выяснить существующие имена абонентов и уже целенаправленно подбирать пароли к ним.
Решение
sip.conf
[general]
alwaysauthreject = yes
3. Вы не используете списки доступа ACL и/или средства динамического ограничения доступа
Поскольку, несмотря на предпринятые в прошлом пункте усилия, все ещё сохраняется возможность подбора пароля, во всех случаях, когда возможно, следует использовать правила контроля доступа (acl)
sip.conf
[my_user]
deny=0.0.0.0/0
permit=172.16.0.0/12 ; указывайте сети, откуда может выполняться регистрация
Бывают случаи, когда невозможно использовать acl — абонент может регистрироваться из произвольной сети. В этом случае необходимо использовать средства динамической блокировки, например fail2ban — утилита для обработки логов Asterisk с целью выявления и блокировки адресов, с которых производилось много попыток неудачных регистрации.
4. В плане нумерации вы пропустили _ и удивляетесь тому, что звонки не идут
Довольно простая ошибка, но часто встречается среди начинающих.
Неправильно
[citycalls]
exten => XXXXXX,1,Dial(DAHDI/g1/${EXTEN})
Правильно
[citycalls]
exten => _XXXXXX,1,Dial(DAHDI/g1/${EXTEN})
В первом случае вы задали не шаблон, а звонок на номер XXXXXX (икс-икс-икс-икс-икс-икс). Просто не забывайте, что шаблоны задаются символом _
5. Вы используете nat и звук проходит только в одну сторону
Тема работы Asterisk и абонентов, между которыми в разных конфигурациях существует трансляция адресов настолько обширна, что выходит за рамки этой статьи, но все же дам несколько полезных советов:
Удачи в освоении Asterisk!
Автор: getccna
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/oshibki/19182
Ссылки в тексте:
[1] основы IP-телефонии: http://getccna.ru/ip-telephony/#start
[2] Источник: http://habrahabr.ru/post/157545/
Нажмите здесь для печати.