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

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

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

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/
 
avatar
  Подписаться  
Уведомление о

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

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

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

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

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

ONLINE

Why Choose HUGE?

Unlimited pre-designed elements

Each and every design element is designed for retina ready display on all kind of devices

User friendly interface and design

Each and every design element is designed for retina ready display on all kind of devices

100% editable layered PSD files

Each and every design element is designed for retina ready display on all kind of devices

Created using shape layers

Each and every design element is designed for retina ready display on all kind of devices