Как настроить внешний доступ к опубликованной базе 1С на IIS через нестандартный порт?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При необходимости обеспечить внешний доступ к опубликованной базе 1С, размещенной на веб-сервере IIS, по нестандартному порту, мы сталкиваемся с задачей, требующей комплексного подхода. Это может быть вызвано различными причинами: от политики безопасности и защиты инфраструктуры, предусматривающей скрытие сервиса на общеизвестных портах (например, 80 или 443), до наличия других приложений, уже использующих эти порты на сервере или в сети. В данном руководстве мы подробно рассмотрим все необходимые шаги для успешной реализации этой задачи, охватывая настройки веб-сервера IIS, сетевого оборудования (маршрутизатора) и программного брандмауэра.

Настройка нестандартного порта для доступа к опубликованной базе 1С извне — это многоэтапный процесс, который требует внимательности на каждом этапе. Давайте вместе разберем каждый из них, чтобы обеспечить надежное и безопасное подключение.

Шаг 1: Конфигурация привязок (Bindings) в IIS

Первым и одним из наиболее важных шагов является настройка самого веб-сервера IIS (рассматривая его в сравнении с Apache или Go). Именно здесь мы указываем, по какому порту IIS будет "слушать" входящие соединения для нашего сайта 1С.

  1. Откроем Диспетчер служб IIS. Мы можем найти его через Панель управления → Администрирование → Диспетчер служб IIS или набрав "inetmgr" в строке поиска меню "Пуск".

  2. Выберем соответствующий сайт. В левой панели "Подключения" (Connections) развернем узел сервера и перейдем в раздел "Сайты" (Sites). Обычно база 1С публикуется на "Default Web Site" (Сайт по умолчанию) или на специально созданном для 1С сайте. Выберем тот сайт, на котором опубликована наша база 1С (для удобства управления большим количеством публикаций можно использовать Публикатор 1С).

  3. Перейдем к настройкам привязок. В правой панели "Действия" (Actions) найдем и выберем пункт "Привязки..." (Bindings...). Это действие открывает окно, в котором мы управляем тем, как сайт доступен по сети.

  4. Добавим или изменим привязку.

    • Если для стандартного порта (например, 80 или 443) уже существует привязка, и мы хотим просто изменить порт для существующей конфигурации, мы можем выбрать ее и нажать кнопку "Изменить..." (Edit...).

    • Если же мы хотим добавить новую привязку, сохраняя при этом существующие (например, чтобы база была доступна по нескольким портам), нажмем кнопку "Добавить..." (Add...).

  5. Настроим параметры привязки. В открывшемся окне "Изменение привязки сайта" (Edit Site Binding) или "Добавление привязки сайта" (Add Site Binding) мы должны указать следующие параметры:

    • Тип (Type): Выберем протокол, по которому будет осуществляться доступ. Обычно это HTTP или HTTPS. Для обеспечения безопасности данных мы настоятельно рекомендуем использовать HTTPS.

    • IP-адрес (IP address): Мы можем выбрать конкретный IP-адрес нашего сервера (если их несколько) или оставить значение по умолчанию "Все неназначенные" (All Unassigned). Последний вариант означает, что сайт будет отвечать на запросы, приходящие на любой IP-адрес сервера по указанному порту.

    • Порт (Port): Это самый важный параметр для нашей задачи. Здесь мы укажем желаемый нестандартный номер порта. Например, вместо 80 или 443 мы можем использовать 8081, 8080, 8088 или любой другой свободный порт, который не занят другими приложениями на сервере (подобная гибкость доступна и при автоматизированной установке веб-серверов с поддержкой нескольких экземпляров). Чтобы проверить, какие порты заняты, можно использовать команду netstat -a в командной строке.

    • Имя узла (Host name): Для прямого доступа по IP-адресу этот параметр может быть оставлен пустым. Если же мы планируем использовать доменное имя (например, 1c.mydomain.ru), его необходимо указать здесь. При использовании доменного имени также потребуется настроить DNS-записи.

    • SSL-сертификат (SSL certificate): Если выбран тип протокола HTTPS, нам потребуется выбрать соответствующий SSL-сертификат из списка установленных на сервере. Убедимся, что выбранный сертификат действителен и соответствует доменному имени, если оно используется.

  6. Сохраним изменения и перезапустим сайт. После внесения всех настроек нажмем "ОК" и затем "Закрыть". Для того чтобы изменения вступили в силу, необходимо перезапустить наш сайт в IIS (в правой панели "Действия" выберем "Перезапустить" (Restart)) или, в некоторых случаях, всю службу "World Wide Web Publishing Service" через оснастку "Службы" (services.msc).

Шаг 2: Настройка проброса портов (Port Forwarding) на маршрутизаторе

После того как IIS настроен на прослушивание нестандартного порта, нам необходимо убедиться, что внешние запросы из интернета смогут достичь нашего сервера. Для этого мы настроим проброс портов на маршрутизаторе (роутере), который обеспечивает доступ нашей локальной сети в интернет.

  1. Получим доступ к настройкам маршрутизатора. Обычно это делается путем ввода IP-адреса маршрутизатора в адресную строку веб-браузера (например, 192.168.1.1 или 192.168.0.1) и ввода учетных данных администратора.

  2. Найдем раздел "Проброс портов". Названия разделов могут отличаться в зависимости от модели маршрутизатора, но чаще всего мы ищем что-то вроде "Виртуальные серверы" (Virtual Servers), "NAT" (Network Address Translation), "Переадресация портов" (Port Forwarding) или "Трансляция сетевых адресов" (NAT Forwarding).

  3. Создадим новое правило проброса портов.

    • Внешний порт (External Port / WAN Port): Здесь мы указываем номер порта, по которому пользователи из интернета будут обращаться к нашей базе 1С. Важно, чтобы этот порт совпадал с тем нестандартным портом, который мы настроили в IIS, если только мы не хотим использовать преобразование портов (например, внешний порт 8081 перенаправляется на внутренний порт 8080).

    • Внутренний IP-адрес (Internal IP Address / LAN IP): Введем внутренний IP-адрес сервера, на котором установлен IIS и опубликована база 1С. Убедимся, что этот IP-адрес статический, чтобы он не менялся после перезагрузки сервера или роутера.

    • Внутренний порт (Internal Port / LAN Port): Укажем номер порта, на который маршрутизатор будет перенаправлять трафик внутри локальной сети. Этот порт должен точно совпадать с тем нестандартным портом, который мы настроили в IIS.

    • Протокол (Protocol): Выберем TCP. Для веб-сервисов (HTTP/HTTPS) используется протокол TCP.

    • Статус (Status / Enable): Убедимся, что правило включено.

  4. Сохраним изменения. После добавления правила проброса портов, сохраним настройки маршрутизатора. Иногда для применения изменений требуется перезагрузка маршрутизатора.

Шаг 3: Настройка Брандмауэра Windows на сервере

Даже если мы корректно настроили IIS и пробросили порты на маршрутизаторе, Брандмауэр Windows на самом сервере может блокировать входящие соединения по нестандартному порту. Нам необходимо явно разрешить этот трафик.

  1. Откроем "Брандмауэр Windows в режиме повышенной безопасности". Мы можем найти его через Панель управления → Брандмауэр Защитника Windows → Дополнительные параметры или набрав "wf.msc" в строке поиска меню "Пуск" или в окне "Выполнить" (Win+R).

  2. Перейдем к "Правилам для входящих подключений". В левой панели выберем "Правила для входящих подключений" (Inbound Rules).

  3. Создадим новое правило. В правой панели "Действия" (Actions) выберем "Создать правило..." (New Rule...).

  4. Настроим новое правило.

    • Тип правила (Rule Type): Выберем "Для порта" (Port) и нажмем "Далее".

    • Протокол и порты (Protocol and Ports): Выберем "Протокол TCP" (TCP protocol). В поле "Определенные локальные порты" (Specific local ports) укажем номер нестандартного порта, который мы настроили в IIS (например, 8081). Нажмем "Далее".

    • Действие (Action): Выберем "Разрешить подключение" (Allow the connection). Нажмем "Далее".

    • Профиль (Profile): Выберем профили сети, для которых будет действовать правило. Обычно это "Доменный" (Domain), "Частный" (Private) и "Публичный" (Public), чтобы обеспечить доступ из любой сети. Нажмем "Далее".

    • Имя (Name): Присвоим правилу понятное имя, например, "Разрешить 1С IIS на порту 8081". При желании можно добавить описание. Нажмем "Готово".

После создания правила брандмауэра оно немедленно вступит в силу, разрешая входящие подключения по указанному порту.

Дополнительные рекомендации и советы

Мы успешно настроили IIS, маршрутизатор и брандмауэр. Однако для обеспечения стабильной, безопасной и эффективной работы опубликованной базы 1С извне, рекомендуем рассмотреть следующие аспекты:

  1. Использование HTTPS и SSL-сертификатов. При работе с конфиденциальными данными, а базы 1С часто содержат именно такую информацию, критически важно использовать HTTPS. Это обеспечит шифрование всего передаваемого трафика между клиентом и сервером. Для этого необходим действительный SSL-сертификат, выпущенный доверенным центром сертификации. Мы уже упоминали о его выборе при настройке привязок в IIS, но хотим подчеркнуть его важность.

  2. Проверка прав доступа. Убедимся, что у учетной записи пользователя, под которой работает пул приложений IIS (обычно это IUSR или NETWORK SERVICE, либо специальный пользователь), есть необходимые права доступа (как минимум "Чтение и выполнение", "Список содержимого папки", "Чтение") к файлам и каталогам опубликованной базы 1С. В противном случае могут возникать ошибки доступа.

  3. Перезапуск служб. После любых значительных изменений в конфигурации IIS или сетевых настройках, рекомендуется перезапускать веб-сервер или соответствующие службы, чтобы гарантировать применение всех изменений. В некоторых случаях полезно перезапустить сервер целиком, особенно после изменений, касающихся сетевых адаптеров или брандмауэра.

  4. Проблемы с 64-битной платформой 1С. Если мы используем 64-битную платформу 1С:Предприятие, и наблюдаются проблемы с доступом к опубликованной базе через нестандартный порт, может потребоваться дополнительная проверка или регистрация исполняемого модуля веб-расширения 1С (wsisapi.dll). Также убедимся, что пул приложений IIS, на котором работает сайт 1С, настроен на работу с 64-битными приложениями (параметр "Включить 32-разрядные приложения" (Enable 32-Bit Applications) должен быть установлен в False).

  5. Диагностика сетевых подключений. Для быстрой диагностики проблем с доступом или для проверки занятости портов на сервере мы можем использовать команду netstat -a в командной строке. Она покажет список всех открытых портов и установившихся соединений. Если порт, который мы настроили, не виден в состоянии "LISTENING", это может указывать на проблему в конфигурации IIS или на блокировку другим приложением.

    netstat -a -n -o

    Эта команда покажет список всех активных соединений и портов прослушивания, а также соответствующие идентификаторы процессов (PID), что поможет определить, какая программа использует нужный нам порт, если он занят.

  6. Тестирование доступа. После завершения всех настроек, мы обязательно должны протестировать доступ к опубликованной базе 1С с внешнего компьютера или мобильного устройства. В адресной строке браузера мы указываем внешний IP-адрес нашего маршрутизатора (или доменное имя) и номер нестандартного порта. Например, если наш внешний IP 192.0.2.1 и порт 8081, адрес будет выглядеть как http://192.0.2.1:8081/base_name/ или https://yourdomain.com:8081/base_name/.

Следуя этим подробным инструкциям, мы сможем успешно настроить внешний доступ к нашей опубликованной базе 1С на IIS через любой выбранный нестандартный порт, обеспечивая при этом необходимый уровень безопасности и надежности. Помним, что каждый шаг важен, и внимательность к деталям поможет избежать распространенных ошибок.

← На главную