Алина Леонова
25.08.2019
1233

Защита удалённых абонентов на АТС с помощью доменного имени и iptables.

Iptables – один из основных инструментов на сервере с Linux-системой. Служит для настройки firewall. Подробнее о работе с iptables можно прочитать в статье: https://voxlink.ru/kb/asterisk-configuration/centos-iptables/ По умолчанию, с не настроенным firewall и открытым портом 5060, возможно подключение любого удалённого абонента на АТС, если он знает IP-адрес и логин/пароль внутреннего номера. Часто этим пользуются злоумышленники, подбирая различные […]

Защита абонентов на АТС с помощью iptables

Iptables – один из основных инструментов на сервере с Linux-системой. Служит для настройки firewall. Подробнее о работе с iptables можно прочитать в статье: https://voxlink.ru/kb/asterisk-configuration/centos-iptables/

По умолчанию, с не настроенным firewall и открытым портом 5060, возможно подключение любого удалённого абонента на АТС, если он знает IP-адрес и логин/пароль внутреннего номера. Часто этим пользуются злоумышленники, подбирая различные адреса и данные для подключения.

 Удалённое подключение
Удалённое подключение

В данной статье будет рассмотрена возможность защиты АТС с тем условием, что большинство абонентов, регистрирующихся на ней, являются удалёнными.

Задача:

На АТС имеется внутренний номер 101 с лёгким паролем (101). Этот внутренний номер закреплён за удалённым сотрудником, который подключается с динамического IP-адреса. Необходимо с помощью iptables разрешить подключения удалённых сотрудников на доменное имя. Остальные подключения (кроме локальных) не пропускать.

 Реализация:

Во время добавления правил iptables должен работать.

Для начала создадим цепочку PHONES:

iptables -N PHONES
iptables -A PHONES -s 192.168.1.0/24 -j ACCEPT
iptables -A PHONES -j RETURN

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

iptables -N CHECKDOMAIN
iptables -A CHECKDOMAIN -j PHONES
iptables -I CHECKDOMAIN -p udp -m udp --dport 5060 -m string --algo bm --string "доменное имя" -j ACCEPT
iptables -I CHECKDOMAIN -p udp -m udp --dport 5060 -s "IP-адрес оператора связи" -j ACCEPT
iptables -I CHECKDOMAIN -p udp -m udp --dport 5060 -j DROP
iptables –A CHECKDOMAIN -j RETURN

Подробно рассмотрим прописанные команды.

Создаём цепочку CHECKDOMAIN. Включаем цепочку PHONES в CHECKDOMAIN. Разрешаем подключения по порту 5060 для указанного доменного имени и для IP-адреса оператора связи. Остальные подключения не должны проходить.

Правило DROP обязательно должно быть в самом конце цепочки, но до правила RETURN.

Далее добавим правила, которые будут парсить пакеты REGISTER и INVITE, проходящие по порту 5060. Для этого введём в консоли:

iptables -I INPUT -p udp -m udp --dport 5060 -m string --algo bm --string "INVITE sip:" -j CHECKDOMAIN
iptables -I INPUT -p udp -m udp --dport 5060 -m string --algo bm --string "REGISTER sip:" -j CHECKDOMAIN
Iptables
Iptables

После применения правил проверим подключения на АТС. Для тестирования воспользуемся удалённым телефоном или софтфоном (в примере используем софтфон на android). Попробуем зарегистрировать внутренний номер на АТС, используя доменное имя.

Для полной работоспособности удалённого телефона необходимо выставить nat.

Подробнее о внутренних номерах на Asterisk можно прочитать в статье: https://voxlink.ru/kb/freepbx/freepbx-extensions/

Если всё настроено верно, то регистрация на доменное имя пройдёт, а в консоли asterisk увидим сообщение о том, что номер успешно зарегистрирован. Однако, при попытке регистрации номера на внешний IP-адрес АТС, соединение не пройдёт. В консоли также не будет никаких ошибок.

Регистрация на внешний IP-адрес
Регистрация на внешний IP-адрес

Теперь произведём правки в первоначальном условии. Регистрация по доменному имени должна проходить по нестандартному порту, который будет редиректить на 5060. Также разрешим подключения по внешнему IP-адресу по порту 5060 для статически разрешённых IP-адресов в белом листе firewall на АТС. Соответственно все остальные подключения проходить не должны.

Для начала произведём проброс порта на сетевом оборудовании (в примере — Mikrotik). Подробнее о базовой настройке Mikrotik можно прочитать в статье: https://voxlink.ru/kb/voip-devices-configuration/mikrotik-config/

Наряду со стандартным пробросом порта 5060 сделаем проброс нестандартного порта (в примере 50600).

Проброс нестандартного порта
Проброс нестандартного порта

После того, как сделали проброс, вернёмся на АТС и произведём правки в iptables под текущую задачу. Для этого добавим в цепочку PHONES статические IP-адреса, с которых разрешена регистрация на АТС. Остальные внешние подключения будем производить на доменное имя + нестандартный порт. Соответственно, если IP-адреса нет в белом листе, и он не регистрируется на доменное имя + нестандартный порт, регистрация с него проходить на АТС не будет.

Приступим к проверке. Зарегистрируем 2 софтфона: один из на доменное имя + порт 50600, а другой на внешний IP-адрес АТС (до этого IP-адрес устройства внесён в белый лист). В нашем примере зарегистрируем внутренний номер 101 на доменное имя, а 201 на внешний IP-адрес АТС. При корректно выполненной настройке регистрация обоих устройств на АТС пройдёт. Однако если мы попробуем зарегистрировать первое устройство на внешний IP-адрес АТС, его регистрация отобьётся.

Успешная регистрация
Успешная регистрация

В данной статье была решена задача по защите абонентов с динамическим IP-адресом на АТС.

Вам также могут быть интересны статьи:

  1. Разбан на АТС: https://voxlink.ru/kb/asterisk-configuration/razban-na-ats/ ;
  2. Настройка firewall в FreePBX-14: https://voxlink.ru/kb/freepbx/nastrojka-firewall-v-freepbx-14/
Подписаться
Уведомление о
guest
0 Комментарий
Inline Feedbacks
View all comments

Остались вопросы?

Я - Виталий Шелест, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование

ближайшие курсы

ближайшие Вебинары

ONLINE

10 доводов в пользу Asterisk

Распространяется бесплатно.

Asterisk – программное обеспечение с открытым исходным кодом, распространяется по лицензии GPL. Следовательно, установив один раз Asterisk вам не придется дополнительно платить за новых абонентов, подключение новых транков, расширение функционала и прочие лицензии. Это приближает стоимость владения станцией к нулю.

Безопасен в использовании.

Любое программное обеспечение может стать объектом интереса злоумышленников, в том числе телефонная станция. Однако, сам Asterisk, а также операционная система, на которой он работает, дают множество инструментов защиты от любых атак. При грамотной настройке безопасности у злоумышленников нет никаких шансов попасть на станцию.

Надежен в эксплуатации.

Время работы серверов некоторых наших клиентов исчисляется годами. Это значит, что Asterisk работает несколько лет, ему не требуются никакие перезагрузки или принудительные отключения. А еще это говорит о том, что в районе отличная ситуация с электроэнергией, но это уже не заслуга Asterisk.

Гибкий в настройке.

Зачастую возможности Asterisk ограничивает только фантазия пользователя. Ни один конструктор шаблонов не сравнится с Asterisk по гибкости настройки. Это позволяет решать с помощью Asterisk любые бизнес задачи, даже те, в которых выбор в его пользу не кажется изначально очевидным.

Имеет огромный функционал.

Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.

Интегрируется с любыми системами.

То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.

Позволяет телефонизировать офис за считанные часы.

В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.

Отличная масштабируемость.

Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.

Повышает управляемость бизнеса.

Asterisk дает не просто набор полезных функций, он повышает управляемость организации, качества и комфортности управления, а также увеличивает прозрачность бизнеса для руководства. Достичь этого можно, например, за счет автоматизации отчетов, подключения бота в Telegram, санкционированного доступа к станции из любой точки мира.

Снижает расходы на связь.

Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.