При развертывании сервиса 1С:ЭДО в корпоративной инфраструктуре системные администраторы часто сталкиваются с ошибками сетевой недоступности, сбоями проверки сертификатов или зависанием отправки пакетов документов. Ситуация усложняется, если рабочие места пользователей функционируют в терминальной среде Citrix, а база данных работает в клиент-серверном режиме с выделенным сервером приложений. Разберем детально, какие порты и сетевые узлы необходимо открыть на межсетевом экране, а также на каких именно серверах требуется предоставить доступ в интернет.
Для взаимодействия платформы с облачной инфраструктурой сервиса требуются исключительно исходящие TCP-соединения. Открывать входящие порты в корпоративный периметр не требуется. Проанализируем назначение каждого порта:
Если корпоративная политика безопасности запрещает полный исходящий доступ по портам 80 и 443, настроим фильтрацию по целевым доменным именам. Разделим необходимые ресурсы на группы:
Необходимо разрешить обращения к адресам 1c-edo.ru, edo-integration.1c.ru, login.1c.ru, users.v8.1c.ru, 1c.com, webits.1c.ru.
В зависимости от того, через какого оператора зарегистрирован идентификатор участника ЭДО, открываем доступ к его узлам. Например, для оператора «Такском» требуется доступ к 1c-api.taxcom.ru, а для сервисов «Калуга Астрал» — к маскам доменов *.astral.ru и *.astralnalog.ru.
Для загрузки списков CRL и проверки машиночитаемых доверенностей (МЧД) требуется доступ к адресам УЦ ФНС, Федерального казначейства или коммерческих аккредитованных УЦ, выпустивших электронные подписи сотрудников, а также к узлам распределенного реестра ФНС.
В комбинированной инфраструктуре с терминальными фермами Citrix и выделенным кластером серверов 1С сетевой трафик генерируется разными узлами. Выясним, где именно требуется открывать доступ в интернет:
Сервер 1С всегда выполняет непосредственную отправку и прием транспортных контейнеров от оператора ЭДО. Исходящие порты 80 и 443 ко всем перечисленным сервисам должны быть обязательно открыты для сервера приложений. Важно учитывать, что доступ должен быть разрешен для системной учетной записи, от имени которой запущена служба кластера ragent (rphost).
Здесь архитектура зависит от выбранного способа криптографических операций. Если в настройках электронной подписи программы выбрано стандартное клиентское подписание (криптопровайдер установлен на терминале, а сертификаты находятся в профилях пользователей), терминальный сервер Citrix обязан иметь исходящий доступ по портам 80 и 443 к адресам УЦ для проверки статуса сертификатов.
Чтобы изолировать терминальную среду Citrix от прямого выхода в интернет и упростить администрирование, перейдем в общие настройки электронной подписи и шифрования 1С и включим опции «Подписывать на сервере» и «Проверять подписи и сертификаты на сервере». В этом случае средства криптозащиты (СКЗИ) и закрытые ключи настраиваются на самом сервере приложений 1С. Терминальным серверам Citrix доступ во внешнюю сеть больше не потребуется, так как все сетевые и криптографические операции возьмет на себя сервер 1С.
Рассмотрим тонкости сетевого взаимодействия, с которыми часто сталкиваются сетевые инженеры:
Межсетевые экраны нового поколения (NGFW) часто используют функцию глубокой проверки трафика с подменой корневых сертификатов. При работе с 1С:ЭДО и ГОСТ-шифрованием это приводит к фатальным сбоям: механизм защиты распознает подмену сертификата как атаку и разрывает защищенную сессию. Для всех доменов ЭДО и Удостоверяющих Центров необходимо настроить правило исключения (SSL Bypass) без расшифровки и инспекции содержимого.
Если прямой доступ во внешнюю сеть закрыт, настроим параметры прокси-сервера в разделе администрирования 1С либо централизованно через файл конфигурации inetcfg.xml, расположенный в каталоге настроек сервера 1С. Убедимся, что учетная запись службы 1С имеет достаточные права для прохождения авторизации на прокси-сервере.
Для проверки доступности выполним тестовое сетевое подключение с самого сервера 1С от имени учетной записи службы. Для быстрой диагностики в командной строке PowerShell воспользуемся командой проверки сетевого порта:
Test-NetConnection -ComputerName 1c-edo.ru -Port 443
Test-NetConnection -ComputerName 1c-edo.ru -Port 80
Если обе проверки возвращают успешный статус соединения (TcpTestSucceeded : True), сетевой периметр настроен корректно.