Настройка сетевого экрана pfSense для работы с 3CX
Введение
В этом руководстве описывается настройка сетевого экрана pfSense v2.5.2+ для работы с системой 3CX. Руководство предназначено для администраторов АТС и предполагает локальную сеть с одним WAN IP (или основным WAN IP, используемым 3CX). В руководстве, для примера, сервер 3CX имеет внутренний IP-адрес 192.168.3.155, а pfSense - 192.168.3.1. Также на скриншотах для раздела Split Brain публичный IP-адрес 1.2.3.4 и FQDN "service.tigunia.com".
Шаг 1: Настройка публикации портов (NAT)
Зайдите в веб-интерфейс управления pfSense:
- Перейдите в раздел “Firewall” > “NAT”.
- Нажмите кнопку “Add” справа, чтобы добавить новое правило.
- Создайте правила NAT для портов, которые должны быть опубликованы. Список портов.
- “Protocol”: Установите тип протокола в зависимости от публикуемого порта (портов).
- “Destination port range”: Выберите порт (диапазон портов) для правила NAT. Если порт не предопределен заранее, как показано для SIP, введите номера пользовательских портов.
- “Redirect target IP”: Введите внутренний IP-адрес сервера 3CX
- “Redirect target port”: Введите локальный порт, обычно совпадающий с внешним портом.
- “Description”: Дайте метку правилу для легкой идентификации.
- “NAT reflection”: Используйте значение по умолчанию.
- “Filter rule association”: Добавьте связанное правило фильтра.
- Нажмите кнопки "Save" и "Apply" для активации конфигурации. Повторите эти шаги для каждой записи NAT.
- Повторите шаг 3 для каждого публикуемого порта.
- После добавления всех правил публикации таблица должна выглядеть примерно так, как показано ниже.
Шаг 2: Сохранение номеров портов (Full Cone NAT)
- Перейдите к “Firewall” > “NAT” > “Outbound”.
- Измените значение с automatic на “Hybrid” и нажмите “Save”.
- Создайте "Mapping Rule", как в примере выше:
- “Source” для локального IP сервера 3CX, например, 192.168.3.155.
- “Port or Range” - включите “Static Port”.
- Для успешной работы правила переместите его в первую строку таблицы "Mappings NAT table", как показано на первом скриншоте в этом разделе.
- Убедитесь, что применили настройки на страницах "Port Forward" и "Outbound".
Шаг 3: Управление FQDN
На следующем этапе следует выбрать способ настройки FQDN 3CX в вашей сети. Существует два варианта - Split Brain DNS или Hairpin NAT. Преимущество Split Brain DNS в том, что трафик 3CX остается внутри сети и не проходит через WAN-интерфейс. Однако настройка этой конфигурации более трудоемка. Hairpin NAT проще в настройке, но создает WAN-трафик, что в некоторых ситуациях приводит к ухудшению качества связи. Мы рекомендуем использовать Split Brain DNS, если это возможно.
Вариант 1: Настройка Split Brain DNS
- Перейдите в “Services” > “DNS Resolver”
- На вкладке General Settings включите опцию DNS Resolver
- Убедитесь, что в разделе “Network Interfaces” включено “All” (или выбранный интерфейс, на котором должен работать DNS Resolver, - обычно LAN)
- Убедитесь, что включена опция DNS Query Forwarding
- Внизу страницы в разделе Host Overrides нажмите “Add”
- Добавьте имя хоста, домен, IP-адрес и нажмите "Save". Хост - первая часть FQDN 3CX, а домен - последняя часть FQDN 3CX. IP-адрес - локальный IP-адрес 3CX.
- Убедитесь, что устройства в сети используют pfSense для DNS-резолвинга (или форвардер, выполняющий переадресацию на pfSense неизвестных запросов). Эти настройки обычно делаются в вашем DHCP-сервере и DNS-серверах, с которыми он работает.
Вариант 2: Настройка Hairpin NAT
- Перейдите в “System” > “Advanced”.
- Измените “NAT Reflection mode for port forwards” на “Pure NAT”, включите опции “Enable NAT Reflection for 1:1 NAT” и “Enable automatic outbound NAT for Reflection”.
Шаг 4: Проверка корректности настройки
Войдите в интерфейс управления 3CX, перейдите в раздел "Dashboard" > "Firewall" и запустите программу Firewall Checker, чтобы убедиться, что ваш сетевой экран корректно настроен для работы с 3CX. Подробная информация о Firewall Checker доступна здесь.
Для проверки корректности настройки Split Brain DNS используйте nslookup (внутри сети / за сетевым экраном pfSense). Наберите “nslookup <fqdn> <dns-server>”, где - это FQDN вашей 3CX, а - IP-адрес DNS-сервера, к которому обращаетесь. При запросе к внешнему DNS-серверу должен прийти ответ с вашим WAN IP. При запросе к внутреннему DNS-серверу pfSense - локальный IP-адрес сервера 3CX.
- В приведенном ниже примере показана проверка резолвинга внешнего IP-адреса FQDN "service.tigunia.com" на публичных DNS-серверах Google (8.8.8.8):
- В приведенном ниже примере показана проверка резолвинга внутреннего IP-адреса FQDN "service.tigunia.com" на локальном DNS pfSense (192.168.3.1):
Чтобы проверить настройку NAT Hairpin, попробуйте обратиться к FQDN 3CX с компьютера в локальной сети. Если веб-клиент загружается, значит NAT Hairpin работает.
В некоторых случаях для того, чтобы изменения вступили в силу, необходимо перезагрузить сетевой экран.
Если удаленные телефоны или VoIP-провайдер в основном работают, но иногда отключаются, попробуйте изменить этот параметр:
- Перейдите в “System” > “Advanced”.
- Установите “Firewall Optimization Options” в “Conservative”.
- Нажмите “Save”.
Мы выражаем благодарность партнеру 3CX Titanium, компании Managed IT & Document Technologies of Arizona и Брентту Грэбу за разделы NAT/Port Forwarding и Port Preservation этого руководства. Мы также выражаем благодарность партнеру 3CX Gold Partner, компании Tigunia, и Мартину Тверски за разделы Split Brain DNS и Hairpin NAT этого руководства.
Дополнительная информация
Версия документа
Последнее обновление документа 8 марта 2023