При организации удаленной работы с клиент-серверной базой данных «1С:Предприятие 8» у системных администраторов часто возникает вопрос: можно ли предоставить пользователям доступ из интернета напрямую через СУБД (например, Microsoft SQL Server), настроив проброс портов и проверив соединение через файл test.udl? Разберем архитектурные принципы работы платформы 1С, выясним причину неудачных попыток такого подключения и рассмотрим корректные технические решения для безопасной работы через интернет.
Главная причина, по которой попытка подключиться к 1С из внешней сети через порт SQL-сервера не приносит результата, кроется в фундаментальном устройстве платформы «1С:Предприятие 8.3». Клиент-серверный вариант работы 1С является трехзвенной архитектурой, состоящей из трех независимых уровней:
ragent, менеджер кластера rmngr и рабочие процессы rphost).Проанализируем ключевое правило этой архитектуры: клиентские приложения 1С никогда не взаимодействуют с сервером СУБД напрямую. Все запросы на чтение и запись данных клиент отправляет серверу приложений 1С. Сервер приложений транслирует вызовы встроенного языка в оптимизированные SQL-запросы, отправляет их в СУБД, получает выборку данных, обрабатывает ее и возвращает результат на клиентскую машину.
Когда вы создаете и настраиваете файл test.udl, он подключается к SQL Server напрямую по системным библиотекам OLE DB / ODBC через порт СУБД (по умолчанию 1433). Успешная проверка в UDL свидетельствует исключительно о том, что открыт сетевой доступ к порту SQL Server. Однако платформа 1С при запуске обращается не к SQL-серверу, а пытается связаться с кластером серверов 1С. Пытаться запустить 1С, указывая внешнее подключение к SQL-порту, бессмысленно — клиентское приложение просто не умеет общаться с СУБД минуя серверную часть платформы.
Важное предупреждение по безопасности: открытие порта SQL Server (1433) в публичный доступ через интернет категорически недопустимо. Это создает критическую уязвимость вашей инфраструктуры перед атаками перебора паролей (brute-force) и эксплуатацией уязвимостей СУБД, что ставит под угрозу сохранность коммерческих данных.
Нередко возникает следующая идея: если нельзя подключиться через SQL, можно ли пробросить на маршрутизаторе порты самого сервера 1С и подключиться напрямую клиентом? Технически это возможно, однако на практике попытки прямого соединения через интернет сталкиваются с серьезными барьерами:
1540. Требуется открыть порт менеджера кластера 1541, а также весь динамический пул портов рабочих процессов rphost (диапазон 1560–1591). Открытие такого пула наружу существенно снижает безопасность корпоративной сети.rphost. При этом сервер передает клиенту свое внутреннее локальное имя хоста (NetBIOS-имя или внутренний FQDN). Удаленный компьютер в интернете не знает этого внутреннего имени и не может завершить соединение. Для обхода проблемы приходится вручную сопоставлять сетевые адреса в консоли администрирования кластера или модифицировать системный файл hosts на каждом клиентском компьютере.По этим причинам прямое TCP-подключение к кластеру 1С через интернет не применяется в промышленной эксплуатации. Разберем штатные и надежные решения этой задачи.
Публикация информационной базы на веб-сервере — стандартный, рекомендованный фирмой «1С» способ организации удаленного доступа. В качестве веб-сервера используется Internet Information Services (IIS) под управлением Windows Server или Apache HTTP Server.
Разберем достоинства веб-публикации:
443 (HTTPS). Порты кластера 1С и порт SQL Server остаются полностью изолированными внутри защищенной локальной сети.Для выполнения публикации запустите конфигуратор 1С от имени администратора, перейдите в меню Администрирование → Публикация на веб-сервере, укажите имя публикации, выберите веб-сервер и каталог, после чего нажмите кнопку Опубликовать.
Если специфика конфигурации требует работы в режиме толстого клиента либо по соображениям безопасности публикация в открытый веб нежелательна, оптимальным выбором является создание виртуальной частной сети (VPN).
Рассмотрим, как это работает на практике:
Этот способ позволяет работать с сервером 1С так же, как если бы клиентский компьютер находился непосредственно в офисе, сохраняя при этом сквозное шифрование всего передаваемого трафика.
Для тяжелых конфигураций на обычных формах, а также при работе через нестабильные каналы связи отличным решением остается подключение к серверу удаленных рабочих столов (Remote Desktop Services).
В этом сценарии клиент 1С запускается непосредственно на терминальном сервере в одном сетевом сегменте с SQL Server и сервером 1С. По интернет-каналу передается исключительно графическая картинка экрана и команды ввода с клавиатуры и мыши, что обеспечивает максимальную скорость работы и устойчивость к кратковременным разрывам связи.
Таким образом, прямое подключение клиента 1С через порт SQL Server невозможно в силу архитектуры платформы. Для удаленной работы системному администратору следует выбрать одно из трех проверенных решений: веб-публикацию по HTTPS, корпоративный VPN-туннель или терминальный доступ.