Как опубликовать веб-сервер 1С 8.3 вне локальной сети для работы с базой через интернет

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

Организация удаленной работы сотрудников с базой данных 1С — одна из наиболее частых задач, с которой сталкиваются компании. Когда локальная сеть офиса уже настроена, а веб-сервер успешно обслуживает внутренних пользователей по адресам вида 192.168.6.5/Accounting83, возникает необходимость открыть этот доступ для внешнего мира. Это требуется сотрудникам «в полях», руководителям в командировках или для интеграции со сторонними сервисами.

В этой статье мы подробно и по шагам разберем, как опубликовать базу 1С в интернете. Мы изучим как классические методы настройки роутера и веб-сервера Apache, так и более современные, безопасные альтернативы, которые уберегут ваши коммерческие данные от злоумышленников.

Шаг 1. Фиксация локального IP-адреса сервера 1С

Прежде чем приступать к настройке внешнего доступа, нам необходимо убедиться, что компьютер, на котором запущен веб-сервер Apache, всегда имеет один и тот же внутренний IP-адрес в локальной сети. По умолчанию роутеры выдают адреса динамически по протоколу DHCP, и после перезагрузки компьютера его адрес может измениться (например, с 192.168.6.5 на 192.168.6.10). Если это произойдет, все внешние настройки перестанут работать.

Выполним резервирование IP-адреса. Для этого проанализируем параметры локальной сети и выполним следующие действия:

  1. Откроем веб-интерфейс вашего офисного роутера (обычно он доступен по адресу 192.168.6.1 или 192.168.1.1).
  2. Перейдем в раздел настроек локальной сети (обычно называется DHCP-сервер, LAN или IP-Address Reservation).
  3. Найдем в списке устройств наш сервер с базой 1С (ориентируясь по его MAC-адресу или имени компьютера).
  4. Нажмем кнопку «Зарезервировать» или «Привязать IP» (Static Lease). Закрепим за этим компьютером постоянный адрес, например 192.168.6.5.

Теперь, даже после отключения электричества или перезагрузки, сервер 1С всегда будет гарантированно получать именно этот IP-адрес.

Шаг 2. Получение внешнего IP-адреса и решение проблемы «серого» IP

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

Ситуация А: Белый статический IP-адрес. Это идеальный вариант. Вы приобретаете данную услугу у своего интернет-провайдера за небольшую ежемесячную плату. Этот адрес закреплен только за вами и никогда не меняется. Подключение будет происходить напрямую по этому адресу.

Ситуация Б: Белый динамический IP-адрес. Адрес является публичным, но меняется при каждом переподключении роутера к интернету. В этом случае мы столкнемся с проблемой: сегодня адрес один, а завтра другой. Для решения этой проблемы используются сервисы Dynamic DNS (DDNS), такие как noip.com или встроенные сервисы от производителей роутеров (например, KeenDNS для роутеров Keenetic или DDNS от ASUS). Роутер сам будет сообщать сервису свой новый IP-адрес, а ваши пользователи будут обращаться по постоянному доменному имени, например mycompany.ddns.net.

Ситуация В: Серый IP-адрес. В этом случае провайдер выдает вам адрес из своей внутренней подсети. Из интернета достучаться до такого адреса напрямую невозможно, так как порты закрыты на стороне оборудования провайдера. Проброс портов на вашем роутере здесь не поможет. Решить эту проблему можно либо переходом на тариф с «белым» IP, либо использованием технологии VPN, либо с помощью специализированных туннелей (о которых мы поговорим ниже).

Шаг 3. Настройка проброса портов (Port Forwarding) на роутере

Когда внешний IP-адрес определен, нам нужно объяснить роутеру, куда именно отправлять запросы из интернета, приходящие на веб-сервер. По умолчанию веб-серверы работают на порту 80 (для незащищенного HTTP) и 443 (для защищенного HTTPS). Также часто используют альтернативный порт 8080.

Разберем по шагам логику настройки проброса портов (на разных моделях роутеров интерфейс может отличаться, но суть везде одинакова):

  1. В веб-интерфейсе роутера перейдем в раздел «Переадресация портов», «Порт-форвардинг», «Виртуальные серверы» (Port Forwarding / Virtual Servers).
  2. Создадим новое правило со следующими параметрами:
    • Имя службы: 1C_Web
    • Протокол: TCP
    • Внешний порт: 80 (или 8080, если порт 80 заблокирован вашим провайдером)
    • Внутренний IP-адрес: 192.168.6.5 (IP нашего сервера 1С)
    • Внутренний порт: 80
  3. Сохраним настройки и применим конфигурацию роутера.

После этого любой запрос из интернета, отправленный на ваш внешний IP-адрес на указанный порт, будет автоматически перенаправлен роутером на внутренний сервер 192.168.6.5 к веб-серверу Apache.

Шаг 4. Настройка веб-сервера Apache

Как совершенно верно подметили специалисты на форуме, для самого веб-сервера Apache абсолютно безразлично, откуда к нему поступает запрос — из локальной сети или из глобального интернета. Если публикация базы из конфигуратора уже была успешно выполнена, то конфигурационный файл httpd.conf уже содержит все необходимые директивы. Для автоматизации этого процесса подойдёт обработка для публикации информационных баз на веб-серверах.

Убедимся, что файл публикации настроен корректно. Посмотрим на пример файла настроек связи default.vrd, который создается в каталоге публикации (например, C:\inetpub\wwwroot\Accounting83):


<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
       xmlns:xs="http://www.w3.org/2001/XMLSchema"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       base="/Accounting83"
       ib="File="C:\1C_Bases\Accounting";">
    <ws>
        <point name="WebServices" alias="ws1.1cws" enable="true"/>
    </ws>
    <httpServices>
        <point name="MobileApp" alias="hs1" enable="true"/>
    </httpServices>
</point>

Если этот файл существует и настроен правильно, локальные пользователи могут успешно работать с базой. Теперь, после настройки проброса портов, внешние пользователи смогут зайти в базу по ссылке: http://[ВАШ_ВНЕШНИЙ_IP]/Accounting83 (или http://[ВАШ_ВНЕШНИЙ_IP]:8080/Accounting83, если использовался порт 8080).

Критический аспект: Безопасность и шифрование данных (Переход на HTTPS)

Внимание! Обычный проброс портов 80 или 8080 открывает вашу базу 1С всему интернету в незашифрованном виде. Все логины, пароли пользователей и коммерческие данные будут передаваться в виде открытого текста. Любой злоумышленник на промежуточных узлах связи сможет перехватить эту информацию.

Для защиты данных мы обязаны настроить шифрование по протоколу HTTPS (порт 443). Разберем, как бесплатно получить SSL-сертификат и настроить его:

  1. Используем бесплатный центр сертификации Let’s Encrypt.
  2. Для автоматического получения и продления сертификата на Windows скачаем утилиту win-acme, а для Linux воспользуемся стандартным клиентом Certbot.
  3. Утилита автоматически подтвердит владение вашим доменом (для этого доменное имя уже должно быть привязано к вашему внешнему IP) и сгенерирует файлы сертификатов.
  4. В конфигурационном файле httpd.conf веб-сервера Apache подключим модуль SSL и укажем пути к сертификатам:

LoadModule ssl_module modules/mod_ssl.so

Listen 443

<VirtualHost *:443>
    ServerName 1c.mycompany.ru
    DocumentRoot "C:/Program Files/Apache24/htdocs"
    
    SSLEngine on
    SSLCertificateFile "C:/ProgramData/win-acme/acme-v02.api.letsencrypt.org/Certificates/1c.mycompany.ru.crt"
    SSLCertificateKeyFile "C:/ProgramData/win-acme/acme-v02.api.letsencrypt.org/Certificates/1c.mycompany.ru.key"
    
    # Настройки для публикации 1С
    Alias "/Accounting83" "C:/inetpub/wwwroot/Accounting83/"
    <Directory "C:/inetpub/wwwroot/Accounting83/">
        AllowOverride None
        Options None
        Require all granted
    </Directory>
</VirtualHost>

Теперь данные будут надежно защищены современным шифрованием, а в строке браузера у пользователей появится безопасный «зеленый замочек».

Альтернативный и самый надежный метод: Настройка VPN

Если вам не требуется предоставлять доступ сторонним контрагентам, а работать с базой будут только штатные сотрудники и директор, то прямая публикация базы в интернет — это избыточный риск. Гораздо безопаснее использовать виртуальную частную сеть (VPN).

Проанализируем преимущества этого подхода:

Схема работы выглядит следующим образом:

  1. На офисном роутере (например, MikroTik, Keenetic) или на выделенном сервере настраивается VPN-сервер.
  2. На ноутбуках и смартфонах удаленных сотрудников устанавливается VPN-клиент.
  3. При необходимости поработать сотрудник запускает VPN, соединение шифруется, и компьютер сотрудника виртуально оказывается внутри офисной сети.
  4. После этого сотрудник открывает браузер или тонкий клиент 1С и вводит обычный внутренний адрес: http://192.168.6.5/Accounting83.

Современное решение без белого IP: Cloudflare Tunnel

Если у вас нет возможности получить белый IP-адрес, а платный сервис 1С-Линк использовать не хочется, отличным современным решением является бесплатная служба Cloudflare Tunnel (cloudflared).

Этот метод работает по принципу безопасного обратного туннеля:

  1. Вы регистрируете бесплатный аккаунт в Cloudflare и делегируете туда свой домен.
  2. На локальный сервер 1С устанавливается небольшая утилита-коннектор cloudflared и запускается в качестве системной службы.
  3. Эта служба сама устанавливает исходящее защищенное соединение с серверами Cloudflare. Вам **не нужно** открывать никаких портов на роутере, и вам абсолютно **не нужен** белый IP-адрес.
  4. Запросы пользователей из интернета приходят на серверы Cloudflare, которые перенаправляют их через установленный туннель на ваш внутренний сервер 1С.
  5. Дополнительно вы бесплатно получаете защиту от DDoS-атак, встроенный SSL-сертификат и возможность ограничить доступ к базе по странам или конкретным email-адресам сотрудников.

Дополнительные рекомендации по защите опубликованной базы

Если вы все же опубликовали базу напрямую, обязательно выполните следующие настройки безопасности:

← На главную