Настройка Ranch Networks и IP-PBX Asterisk с использованием протокола MIDCOM


Вступление

Устройства Ranch Networks обеспечивают большую функциональность при конкурентоспособной цене, что делает их главными кандидатами на роль граничных файрволов в оргранизациях. В их основе лежит "зоновая" идеология, позволяющая защитить брандмауэром как физические порты как и VLAN-соединения независимо друг от друга, с различными правилами между собой. В дополнении к статическим правилам файрвола устройства Ranch Networks поддерживают протокол MIDCOM для динамического управления файрволом. Asterisk управляет устройствами Ranch Networks посредством библиотеки libmidcom. Устройства Ranch Networks также могут "перенаправлять" SIP RTP трафик для организации сквозного "VoIP моста" между зонами.

1. Исходные настройки.

Asterisk имеет последнюю стабильную версию asterisk-1.2.x-netsec.

Устройство Ranch Networks поддерживает обновление для подключения VoIP.

Настройка RN производится для следующей топологии сети:

DMZ 192.168.100.1/24 
LAN 192.168.50.1/24 
WAN 192.168.10.1/24 


Asterisk находится в DMZ, 192.168.100.254

Телефоны в зонах LAN и WAN

Телефон в LAN (Ex.50): 192.168.50.50
Телефон в WAN (Ex. 10): 192.168.10.10



2. Добавление MIDCOM. Конфигурация, компиляция и запуск библиотеки libmidcom.

Скачайте библиотеку NETSEC libmidcom-0.1.0.tar.gz отсюда: http://ftp.digium.com/pub/asterisk.

Разархивируйте и скомпилируйте NETSEC в любую папку (здесь: в /usr/src/).

Отредактируйте Makefile /usr/src/libmidcom-0.1.0/midcom/Makefile:

замените:

DEFS = -DEXTENDED_SIMCO #-DNO_SSL

на:
DEFS = -DEXTENDED_SIMCO -DNO_SSL


Остановите Asterisk.

Проинсталлириуйте libmidcom.

Перекомпилируйте Asterisk.

Проверьте файл /etc/asterisk/modules.conf:

убедитесь, что строка:
insert load=res_netsec.so

находится ВЫШЕ строки:
insert chan_sip.so


Приведите их в нужный порядок, если потребуется.

Создайте (отредактируйте) файл /etc/asterisk/midcom.conf . Пример показан для приведенной топологии сети, имени пользователя и пароля RN по умолчанию и расположения исходной программы в директории /usr/src/:
[general]
midcomnat = farend    ; farend, for Far-end NAT
                                 ; nearend, for Near-end NAT
                                 ; no, if midcom is not required (default)

certificate = /usr/src/libmidcom-0.1.0/midcom/server.pem
            ; Path to the stored certificate for this midbox

lb = rrobin        ; Load blancing alg used to select Far-end firewalls

[firewallA]
type = MIDBOX
ip = 192.168.100.1      ; IP address of the midbox
username = root         ; username for authentication
password = ranchroot
transport = PLAIN    ; PLAIN for plain-text, TLS for encryption
mode = farend           ; farend for Far-end NAT, nearend for Near-end NAT



Запустите Asterisk.

3. Настройка устройств Ranch Networks.

3.1. Выбор прав "ACCEPT-ALL" для WAN, LAN и DMZ.

Для предварительной установки и тестирования рекомендуется установить права для всех имеющихся физических и виртуальных зон.

Откройте “Настройки файрвола” (Firewall Configuration) -> “Профили безопасности” (Security Profiles).
Выберите "LAN" в выпадающем меню “Правила файрвола” (Firewall Rules) для “Профилей безопасности” (Security Profiles).
Убедитесь, что правило по умолчанию ID 65535 отклоняет любой трафик при любых условиях для данной зоны.
Добавьте новое правило (здесь: ID 222) допускающее любой трафик в данной зоне и сохраните его.
Повторите вышеперечисленные шаги для остальных имеющихся зон (здесь: DMZ, WAN).
Прверьте все правила "ACCEPT-ALL" на наличие ошибок.
Сохраните текущие настройки.

3.2. Настройка виртуального IP для "перенаправления" SIP RTP .

Откройте “Загрузка согласования” ( Load Balancing) -> “Настройка коммутации” (Switching Configuration) -> “Настройка виртуального IP” (Virtual IP Configuration).

Добавьте новый виртуальный IP адрес (здесь: из DMZ зоны) который будет использоваться для “перенаправления” SIP RTP трафика:
192.168.100.253 “Virtual IP for VoIP bridging”.

3.3. Включение динамической подстройки файрвола.

Откройте “Настройка файрвола” (Firewall Configuration) -> “Настройка MIDCOM” (Configuration MIDCOM).
Выберите зоны, где будет “включен VoIP”. Термин “включен VoIP” означает поддержку со стороны устройств RN потока медиа данных (например, RTP) для этих конкретных зон. Т. к. устройства RN контролируют только исходящий из зоны безопасности трафик, то “включать VoIP” нужно только в зонах с IP-телефонами.

Добавьте “Настройку динамического NAT” (Dynamic NAT configuration) как “One NAT for all IP addresses”:
192.168.100.253.

"One-NAT-for-ALL" означает, что все телефоны будут “NAT'иться” к виртуальному IP адресу, который является IP адресом RTP-моста (внутри RN). Виртуальный IP алрес дожен быть выбран из тех подсетей зон безопасности, которые доступные всем телефонам. Например: если у вас имеются телефоны распаложенные как внутри (частная сеть), так и снаружи (публичная сеть, т.е. internet), то виртуальный IP адрес для VoIP должен быть выбран из публичной части IP адресов.

3.4. Настройка NAT между зонами RN.

Для данного примера NAT на устройствах Ranch Networks должен быть настроен следующим образом:
LAN to -> DMZ    NO-NAT 
WAN to -> DMZ   NO-NAT 
DMZ to -> LAN    NO-NAT 
DMZ to -> WAN   NO-NAT

Сохраните текущие настройки и перезагрузите устройство.

4. Файл /etc/asterisk/sip.conf для данного примера

[50]
type=friend
host=dynamic
callerid=TEST <50>
username=50
mailbox=50
dtmfmode=inband
context=local
qualify=yes
nat=no

[10]
type=friend
host=dynamic
callerid=TEST <10>
username=50
mailbox=50
dtmfmode=inband
context=local
qualify=yes
nat=no


5. Тестирование.
Советы излишни: тестирование есть тестирование. В любом устройстве RN имеется встроенный Syslog клиент, он обязательно поможет.
6. Установка прав “ACCEPT SIP” в устройствах Ranch Networks.
После проведения тестирования просто отредактируйте правило файрвола “ACCEPT-ALL” из пункта 3.1.:

“Настройки файрвола” (Firewall Configuration) -> “Профили безопасности” (Security Profiles).

Выберите требуемые зону и правило -> Add/Modify

В окне конфигурации правила откройте ссыклку "Source port" -> List -> Введите 5060 в окне под списком различных протоколов -> OK.
Выберте “UDP” в выпадающем меню протокола.

Учтите: зона DMZ (или любая другая зона безопасности) не может быть свободной от файрвола, поскольку UDP трафик должен проходить через порт 5060 от DMZ к зонам с телефонами.