Принцип работы 3CX Firewall Checker
- Переадресация портов (Port Forwarding)
- Резервирование портов (Port Reservation)
- Как запустить проверку межсетевого экрана
- STUN-серверы 3CX, которые необходимо добавить в белый список (whitelist) для успешного прохождения проверки:
- Для запуска проверки межсетевого экрана:
- Как понимать результаты проверки межсетевого экрана
- Тест 1: Сохранение портов (Port Preservation) и исходящая связь
- Тест 2: Проверка Full Cone NAT
- Тест SIP ALG
- Вычисление ожидаемого хэш-значения
- Устранение распространенных проблем с межсетевым экраном
- Дополнительная информация
Сервис проверки сетевого экрана (3CX Firewall Checker) - это встроенный и крайне важный инструмент, который автоматически проверяет конфигурацию вашего брандмауэра на корректность перенаправления портов (port forwarding) и сохранения портов (port preservation). Данный документ объясняет ключевые принципы работы этих тестов и то, как утилита обеспечивает оптимальную связь для вашей системы 3CX по протоколу UDP. Для проверки TCP-подключений вы можете воспользоваться любыми широко доступными сервисами проверки TCP-портов.
Переадресация портов (Port Forwarding)
3CX проверяет, корректно ли настроен «Full Cone NAT» на вашем межсетевом экране или шлюзе. Full Cone NAT позволяет любому внешнему узлу подключаться к 3CX без необходимости для межсетевого экрана предварительно подтверждать, что исходный пакет был отправлен от самой АТС 3CX. Это критически важно для работы с VoIP-провайдерами, поскольку SIP-сервер (исходный IP-адрес), обрабатывающий сигнализацию, может не совпадать с сервером, который доставляет непосредственно голосовой трафик (аудио) в вашу систему. Без Full Cone NAT некоторые межсетевые экраны могут блокировать входящий трафик, препятствуя соединению даже в том случае, если инициатором связи выступает система 3CX.
Резервирование портов (Port Reservation)
Резервирование портов - еще один фактор, который проверяет Firewall Checker. Сервис определяет, не изменяет ли сетевой экран порт при трансляции трафика из LAN в WAN. С технической точки зрения это не должно иметь значения. Однако сервер провайдера, в зависимости от реализации, может отвечать на порт источника, указанный в заголовке UDP, или же следовать рекомендациям RFC. RFC определяет, что SIP-сервер ДОЛЖЕН отвечать на IP и порт, указанные в заголовке "Contact" SIP-сообщения. Для того чтобы исключить случайности, Firewall Checker также проверяет маппинг портов. При генерации SIP-сообщения на сервере 3CX с исходного порта 5060 (порт SIP по умолчанию) и последующей трансляции на публичный IP-адрес (WAN порт), исходный порт также должен сохраняться (5060 в этом примере).
Во время проверки Firewall Checker выполняет два независимых теста, используя первый настроенный сервер STUN в вашей системе. По умолчанию это stun.3cx.com - настоятельно рекомендуем не изменять эту настройку. В целом, Firewall Checker - это программный механизм определения вашего публичного IP-адреса, аналогичный сайтам "what is my IP", но дополненный проверкой портов.
Как запустить проверку межсетевого экрана
STUN-серверы 3CX, которые необходимо добавить в белый список (whitelist) для успешного прохождения проверки:
- 34.40.60.101
- 34.40.164.62
- 34.83.212.229
- 34.138.123.132
Для запуска проверки межсетевого экрана:
- Перейдите в Консоль администратора 3CX.
- Откройте Панель управления.
- Найдите раздел «Firewall Checker» и нажмите на него, чтобы перейти на вкладку тестирования.
- Нажмите «Start» (Пуск), чтобы начать тестирование.
- Во время этого процесса службы АТС будут остановлены и перезапущены. Вы можете прервать проверку, нажав «Stop» (Стоп).
- Результаты будут сразу отображаться на экране, указывая, пройден ли каждый тест или завершился ошибкой.
Как понимать результаты проверки межсетевого экрана
Ниже приведен пример неудачного прохождения проверки, отображаемый в Консоли администратора 3CX.
Утилита проверки межсетевого экрана выполняет серию тестов для проверки конфигурации вашей сети. Мы подробно рассмотрим выполняемые шаги и ожидаемые результаты.
ПРИМЕЧАНИЯ:
- Для ускорения тестирования проверка портов проверяет блоки четных портов в начале и в конце допустимого диапазона портов. Вы должны убедиться, что весь диапазон портов, необходимый для работы АТС, полностью разрешен на вашем межсетевом экране, без пропусков.
- Для более точного анализа на системах Windows во время тестирования рекомендуется отключить брандмауэр Windows на сервере 3CX, поскольку, хотя 3CX и создает исключения для своих служб, она может не сделать этого для самой утилиты проверки (firewall checker).
Тест 1: Сохранение портов (Port Preservation) и исходящая связь
Во время Теста 1 система 3CX временно останавливает свои службы, чтобы освободить локальные порты, необходимые для тестирования. Хотя процедура одинакова для всех портов, мы остановимся на стандартном SIP-порту (5060).
Сервер 3CX выполняет следующие шаги:
- Локальный сервер 3CX с IP-адресом 192.168.3.159 посылает классический запрос stun на stun.3cx.com.
- Запрос отправляется с локального порта 5060 UDP.
- Запрос отправляется на порт 3478, который является портом stun-сервера по умолчанию.
- В запросе указано, что STUN-сервер НЕ должен менять свои IP или порт при ответе.
Каждый запрос имеет уникальный "ID транзакции", который позволяет надежно сопоставить принадлежность полученных данных первоначальному запросу.
Если сервер отправляет несколько запросов, но не получает ответа, как показано ниже, это означает:
- Исходящий трафик был заблокирован межсетевым экраном, либо
- Ответный (возвратный) трафик не был пропущен обратно к серверу.
В любом случае вам необходимо проверить настройки вашего межсетевого экрана.
STUN-сервер должен ответить следующим образом:
- Отправить Binding Response (ответ привязки) на запрос.
- В нем определяется публичный IP-адрес и порт, с которого был отправлен запрос (например, публичный IP XX.XX.96.162 и порт 5060).
Если поле «Mapped-Address» в ответе STUN показывает тот же порт (например, 5060), что и исходный порт начального запроса, значит, сохранение портов (port preservation) работает корректно. Если же в поле «Mapped-Address» указан любой другой порт, проверка межсетевого экрана завершится ошибкой, указывая на то, что сохранение портов НЕ работает. В таком случае вам потребуется обратиться за помощью к производителю вашего межсетевого экрана.
Тест 2: Проверка Full Cone NAT
В Тесте 2 сервер 3CX отправляет еще один запрос к тому же STUN-серверу. Однако на этот раз:
- Сервер 3CX помечает запрос, устанавливая флаги «Change IP» (Изменить IP) и «Change Port» (Изменить порт) в значение (1).
- Это дает STUN-серверу команду отправить свой ответ с IP-адреса и порта, отличных от тех, на которые был отправлен первоначальный запрос.
- Эти новые исходные IP-адрес и порт неизвестны межсетевому экрану, который обычно ожидает ответ от первоначального адресата.
Если сервер отправляет несколько запросов, но не получает ответа от STUN-сервера, это означает, что Full Cone NAT не работает.
A successful response in Test 2 would show the "Mapped-Address" as exactly the same IP and Port as in Test 1. If you wish to investigate further, check your firewall logs for traffic from the 3CX STUN server IP addresses, as the expected answer never reached the 3CX server's network interface.
В отличие от Теста 1, где 3CX ожидает ответа от сервера, с которым она уже активно взаимодействовала, Тест 2 имитирует получение данных от источника, с которым 3CX напрямую не «общалась» (что похоже на аудиосервер VoIP-провайдера). Если ответ не получен, это означает, что межсетевой экран блокирует данный тип трафика. В этом случае обратитесь к производителю вашего межсетевого экрана для решения проблемы.
При успешном ответе в Тесте 2 в поле «Mapped-Address» будут указаны точно те же IP-адрес и порт, что и в Тесте 1. Если вы хотите провести более глубокий анализ, проверьте журналы (логи) вашего межсетевого экрана на наличие трафика от IP-адресов STUN-сервера 3CX, поскольку это означает, что ожидаемый ответ так и не дошел до сетевого интерфейса сервера 3CX.
Тест SIP ALG
3CX also evaluates if SIP ALG (Application Layer Gateway) is enabled on your firewall. SIP ALG functions inspect the content of SIP packets in addition to IP/Port access lists. For 3CX administrators, this can cause numerous issues because changes made to SIP messages by an intermediate hop (the firewall) will not be visible in 3CX traces, leading to incompatibility issues with remote IP phones or VoIP providers.
3CX также проверяет, включен ли SIP ALG на вашем межсетевом экране. Функции SIP ALG инспектируют содержимое SIP-пакетов в дополнение к спискам доступа по IP-адресам и портам. Для администраторов 3CX это может вызвать множество проблем, поскольку изменения, внесенные в SIP-сообщения промежуточным узлом (межсетевым экраном), не будут видны в трассировках 3CX, что приводит к проблемам несовместимости с удаленными IP-телефонами или VoIP-провайдерами.
Процесс проверки:
- 3CX генерирует стандартное сообщение INVITE и отправляет его онлайн-сервису, размещенному на серверах 3CX. Только публичный IP-адрес является конкретным; вся остальная информация в сообщении является типовой.
- Если возвращаемое значение «X-CSREQ» совпадает с локально вычисленным значением, это указывает на то, что SIP ALG не вмешивался в сообщение или функция вообще отключена (отсутствует). Если же значения не совпадают, тест показывает, что промежуточный узел между 3CX и онлайн-сервисом изменил содержимое, а значит, SIP ALG активен.
Вычисление ожидаемого хэш-значения
Вы можете вручную проверить ожидаемое хэш-значение, перехватив исходящее сообщение INVITE к сервису обнаружения SIP ALG с помощью программы Wireshark:
- Щелкните правой кнопкой мыши по сообщению INVITE, отправленному от 3CX, в окне Wireshark.
- Выберите Copy > Bytes > Hex Stream.
- Откройте онлайн-калькулятор CRC (например, http://www.sunshine2k.de/coding/javascript/crc/crc_js.html).
- Вставьте скопированный шестнадцатеричный поток в поле «CRC Input Data» (Входные данные CRC).
- Вычисленный результат должен совпадать со значением, возвращаемым в заголовке «X-CSREQ» ответа 200 OK.
Устранение распространенных проблем с межсетевым экраном
Если проверка межсетевого экрана завершилась неудачно, обратите внимание на следующее:
- Отключение SIP ALG: Убедитесь, что функции SIP ALG или любые другие модули-помощники (SIP Helper) отключены на вашем маршрутизаторе/межсетевом экране. Это частая причина проблем, связанных с протоколом SIP.
- Проброс портов (Port Forwarding): Убедитесь, что все необходимые порты корректно проброшены на вашу систему 3CX. Основные порты включают:
- SIP-транк / VoIP-провайдер:
- Порт 5060 (входящий, UDP) и 5060-5061 (входящий, TCP) для SIP.
- Порты 9000-10999 (входящие, UDP) для RTP (аудио).
- Удаленные приложения 3CX и SBC:
- Порт 5090 (входящий, UDP и TCP) для туннеля 3CX.
- Порт 443 или 5001 (входящий, TCP) для HTTPS (статусы присутствия и автонастройка/provisioning).
- Порт 443 (исходящий, TCP) для Push-уведомлений Google Android.
- Порты 443, 2197 и 5223 (исходящие, TCP) для Push-уведомлений Apple iOS.
- Видеоконференции 3CX:
- Порт 443 (входящий, TCP) для участников.
- Порт 443 (исходящий, TCP) от системы 3CX к облаку 3CX.
- Порты 443 (исходящие, TCP) и 48000-65535 (исходящие, UDP) от пользователей для обмена аудио/видео.
- Журналы межсетевого экрана (Firewall Logs): Проверьте журналы (логи) вашего межсетевого экрана на наличие любых заблокированных подключений по портам, которые использует 3CX, особенно в моменты неудачного запуска проверки (firewall checker).
- Правила ACL / Межсетевого экрана: Настройте соответствующие правила ACL (списки контроля доступа) и правила межсетевого экрана, чтобы разрешить хосту 3CX доступ к необходимым подсетям и конечным точкам как внутри вашей сети, так и за ее пределами.
Дополнительная информация
Версия документа
Последнее обновление документа 2 июня 2026
