Организация удаленной работы сотрудников с базой данных 1С — одна из наиболее частых задач, с которой сталкиваются компании. Когда локальная сеть офиса уже настроена, а веб-сервер успешно обслуживает внутренних пользователей по адресам вида 192.168.6.5/Accounting83, возникает необходимость открыть этот доступ для внешнего мира. Это требуется сотрудникам «в полях», руководителям в командировках или для интеграции со сторонними сервисами.
В этой статье мы подробно и по шагам разберем, как опубликовать базу 1С в интернете. Мы изучим как классические методы настройки роутера и веб-сервера Apache, так и более современные, безопасные альтернативы, которые уберегут ваши коммерческие данные от злоумышленников.
Прежде чем приступать к настройке внешнего доступа, нам необходимо убедиться, что компьютер, на котором запущен веб-сервер Apache, всегда имеет один и тот же внутренний IP-адрес в локальной сети. По умолчанию роутеры выдают адреса динамически по протоколу DHCP, и после перезагрузки компьютера его адрес может измениться (например, с 192.168.6.5 на 192.168.6.10). Если это произойдет, все внешние настройки перестанут работать.
Выполним резервирование IP-адреса. Для этого проанализируем параметры локальной сети и выполним следующие действия:
192.168.6.1 или 192.168.1.1).192.168.6.5.Теперь, даже после отключения электричества или перезагрузки, сервер 1С всегда будет гарантированно получать именно этот IP-адрес.
Для того чтобы компьютеры из интернета могли найти ваш офис, роутер должен обладать публичным (внешним) IP-адресом. Существует три ситуации, с которыми вы можете столкнуться. Разберем их подробнее.
Ситуация А: Белый статический IP-адрес. Это идеальный вариант. Вы приобретаете данную услугу у своего интернет-провайдера за небольшую ежемесячную плату. Этот адрес закреплен только за вами и никогда не меняется. Подключение будет происходить напрямую по этому адресу.
Ситуация Б: Белый динамический IP-адрес. Адрес является публичным, но меняется при каждом переподключении роутера к интернету. В этом случае мы столкнемся с проблемой: сегодня адрес один, а завтра другой. Для решения этой проблемы используются сервисы Dynamic DNS (DDNS), такие как noip.com или встроенные сервисы от производителей роутеров (например, KeenDNS для роутеров Keenetic или DDNS от ASUS). Роутер сам будет сообщать сервису свой новый IP-адрес, а ваши пользователи будут обращаться по постоянному доменному имени, например mycompany.ddns.net.
Ситуация В: Серый IP-адрес. В этом случае провайдер выдает вам адрес из своей внутренней подсети. Из интернета достучаться до такого адреса напрямую невозможно, так как порты закрыты на стороне оборудования провайдера. Проброс портов на вашем роутере здесь не поможет. Решить эту проблему можно либо переходом на тариф с «белым» IP, либо использованием технологии VPN, либо с помощью специализированных туннелей (о которых мы поговорим ниже).
Когда внешний IP-адрес определен, нам нужно объяснить роутеру, куда именно отправлять запросы из интернета, приходящие на веб-сервер. По умолчанию веб-серверы работают на порту 80 (для незащищенного HTTP) и 443 (для защищенного HTTPS). Также часто используют альтернативный порт 8080.
Разберем по шагам логику настройки проброса портов (на разных моделях роутеров интерфейс может отличаться, но суть везде одинакова):
После этого любой запрос из интернета, отправленный на ваш внешний IP-адрес на указанный порт, будет автоматически перенаправлен роутером на внутренний сервер 192.168.6.5 к веб-серверу 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).
Внимание! Обычный проброс портов 80 или 8080 открывает вашу базу 1С всему интернету в незашифрованном виде. Все логины, пароли пользователей и коммерческие данные будут передаваться в виде открытого текста. Любой злоумышленник на промежуточных узлах связи сможет перехватить эту информацию.
Для защиты данных мы обязаны настроить шифрование по протоколу HTTPS (порт 443). Разберем, как бесплатно получить SSL-сертификат и настроить его:
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).
Проанализируем преимущества этого подхода:
Схема работы выглядит следующим образом:
http://192.168.6.5/Accounting83.Если у вас нет возможности получить белый IP-адрес, а платный сервис 1С-Линк использовать не хочется, отличным современным решением является бесплатная служба Cloudflare Tunnel (cloudflared).
Этот метод работает по принципу безопасного обратного туннеля:
cloudflared и запускается в качестве системной службы.Если вы все же опубликовали базу напрямую, обязательно выполните следующие настройки безопасности: