Как безопасно и правильно опубликовать базу 1С на веб-сервере без настройки VPN на каждом клиенте?

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

Приветствуем вас, коллеги! Часто возникает ситуация, когда необходимо предоставить доступ к базе 1С:Управление нашей фирмой или любой другой конфигурации для сотрудников, работающих удаленно или прямо из офиса клиента. Самое простое и очевидное решение — положить базу на веб-сервер Apache или IIS. Однако оставлять информационную базу открытой для всего интернета — огромный риск безопасности. Настраивать же классический VPN (например, OpenVPN или L2TP) на каждом клиентском ноутбуке долго, неудобно и часто невозможно из-за ограничений прав доступа на стороне клиента.

В этой статье мы подробно разберем, как решить эту проблему безопасности раз и навсегда. Мы рассмотрим современные, надежные и удобные методы защиты опубликованной базы 1С — от настройки защищенного соединения HTTPS до продвинутых технологий вроде mTLS, Cloudflare Tunnel и меш-сетей.

Вариант 1. Публикация на IIS с использованием доверенных SSL-сертификатов (Let's Encrypt)

Начнем с классического решения для Windows-инфраструктуры. Использование встроенного веб-сервера IIS (Internet Information Services) совместно с SSL-шифрованием позволяет надежно защитить данные в процессе их передачи от клиента к серверу.

Многие администраторы настраивают самоподписанные сертификаты, но это вызывает постоянные предупреждения безопасности в браузере у пользователей, а также мешает работе тонкого клиента 1С. Чтобы избежать этого, мы рекомендуем использовать бесплатные доверенные сертификаты от центра сертификации Let's Encrypt. Разберем этот процесс по шагам.

  1. Установим веб-сервер IIS через диспетчер серверов Windows Server.
  2. Для автоматизации получения сертификатов скачаем бесплатную утилиту WACS (Windows ACME Simple).
  3. Запустим утилиту от имени администратора. Она в интерактивном режиме предложит выбрать нужный сайт на IIS и автоматически выпустит для него доверенный SSL-сертификат. Утилита сама создаст задачу в планировщике Windows и будет незаметно продлевать сертификат каждые 90 дней.
  4. В конфигураторе 1С (запущенном от имени администратора) перейдем в меню "Администрирование" — "Публикация на веб-сервере" и выполним публикацию нашей информационной базы на веб-сервере IIS.

После этого доступ к базе будет осуществляться по безопасному протоколу HTTPS. Однако само по себе шифрование HTTPS защищает только от перехвата трафика (атак типа "человек посередине"), но оставляет форму авторизации 1С доступной для всего интернета. Перейдем к методам, которые скрывают саму базу от посторонних глаз.

Вариант 2. Использование Nginx в качестве реверс-прокси с базовой авторизацией

Отличным решением для защиты веб-сервера 1С (будь то Apache или IIS) является установка дополнительного защитного барьера — реверс-прокси на базе Nginx.

Проанализируем эту схему. Nginx принимает все входящие запросы из интернета, проверяет авторизацию и только в случае успеха перенаправляет трафик на внутренний веб-сервер с 1С. Таким образом, сама платформа 1С полностью скрыта от сканеров портов и уязвимостей.

Для настройки базовой авторизации на уровне Nginx выполним следующие действия. Создадим файл паролей с помощью утилиты htpasswd:

sudo htpasswd -c /etc/nginx/.htpasswd user1

Затем отредактируем конфигурационный файл Nginx, добавив проверку пароля и проксирование запросов во внутренний веб-сервер 1С:


server {
    listen 443 ssl;
    server_name 1c.yourdomain.ru;

    ssl_certificate /etc/letsencrypt/live/1c.yourdomain.ru/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/1c.yourdomain.ru/privkey.pem;

    location / {
        auth_basic "Доступ ограничен. Введите пароль:";
        auth_basic_user_file /etc/nginx/.htpasswd;

        proxy_pass http://127.0.0.1:8080; # Адрес локального веб-сервера с 1С
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

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

Вариант 3. Двусторонняя аутентификация по сертификатам (mTLS) — полноценная замена VPN

Выясним, как полностью исключить необходимость ввода дополнительных логинов и паролей на промежуточных этапах, обеспечив при этом максимальный уровень безопасности. В этом нам поможет технология mTLS (Mutual TLS).

При обычном HTTPS клиент проверяет подлинность сервера. При mTLS веб-сервер также требует от клиента предъявить личный SSL-сертификат. Если сертификата нет или он не подписан доверенным удостоверяющим центром (CA) вашей компании, соединение разрывается мгновенно, еще до отправки каких-либо веб-страниц или запросов авторизации.

Рассмотрим, как настроить mTLS на веб-сервере Apache:

  1. Создаем собственный локальный удостоверяющий центр (CA) и генерируем корневой сертификат.
  2. Выпускаем клиентский сертификат для ноутбука вашего коллеги и экспортируем его в формате .pfx.
  3. Устанавливаем этот файл-сертификат в хранилище сертификатов на ноутбуке коллеги (в систему или непосредственно в браузер). Это делается всего один раз.
  4. Настраиваем файл конфигурации веб-сервера Apache (httpd.conf или файл виртуального хоста):

<VirtualHost *:443>
    ServerName 1c.yourdomain.ru
    SSLEngine on
    SSLCertificateFile "/etc/ssl/certs/server.crt"
    SSLCertificateKeyFile "/etc/ssl/private/server.key"

    # Включаем обязательную проверку клиентских сертификатов
    SSLCACertificateFile "/etc/ssl/certs/ca.crt"
    SSLVerifyClient require
    SSLVerifyDepth 1

    Alias "/unf" "/var/www/unf/"
    <Directory "/var/www/unf/">
        DirectorySlash On
        Require all granted
        SetHandler 1c-application
    </Directory>
</VirtualHost>

Благодаря параметру SSLVerifyClient require веб-сервер будет жестко требовать наличие установленного сертификата у пользователя. Любой посторонний человек, попытавшись открыть адрес вашей 1С, получит ошибку соединения еще на этапе SSL-рукопожатия. База будет полностью защищена, а вашему коллеге не придется включать VPN.

Вариант 4. Публикация через Cloudflare Tunnel (Zero Trust) — без белого IP и открытых портов

Разберем еще один современный и невероятно удобный способ. Что делать, если у вас нет возможности получить статический ("белый") IP-адрес у интернет-провайдера, или вы не хотите открывать порты 80 и 443 на вашем роутере наружу?

Решением является использование бесплатного сервиса Cloudflare Tunnel. Принцип работы следующий:

  1. На сервере с 1С устанавливается легкая служба-агент cloudflared.
  2. Эта служба сама инициирует безопасный исходящий туннель к облаку Cloudflare. Покупать "белый" IP-адрес не требуется, порты на роутере остаются закрытыми.
  3. В панели управления Cloudflare мы привязываем этот туннель к нашему доменному имени.

Для защиты доступа мы можем настроить правила в панели Cloudflare Access (Zero Trust). Мы можем указать, что при попытке открыть адрес нашей 1С пользователь должен сначала пройти проверку — например, ввести одноразовый PIN-код, отправленный на вашу рабочую почту, или авторизоваться через Google/Yandex. Только после успешной проверки пользователя пропустят к вашей локальной 1С. Для команды до 50 человек этот функционал полностью бесплатен.

Вариант 5. Использование меш-сетей (Tailscale или ZeroTier) как "невидимого" VPN

Если традиционный VPN пугает сложностью настройки маршрутизации, рассмотрим альтернативу в виде современных Mesh-сетей, таких как Tailscale или ZeroTier.

Эти сервисы позволяют объединить сервер 1С и клиентские устройства в единую виртуальную локальную сеть за считанные минуты. Клиент на ноутбуке коллеги работает незаметно в фоновом режиме, автоматически восстанавливает связь при смене сетей и не требует от пользователя никаких действий.

При этом сама база 1С вообще не публикуется в глобальный интернет! Доступ к ней осуществляется по внутреннему IP-адресу сети Tailscale, и подключиться к ней могут только устройства, авторизованные в вашем личном кабинете администратора.

Вариант 6. Настройка двухфакторной аутентификации и защита от брутфорса

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

Вариант 7. Базовая гигиена веб-сервера

В завершение разберем несколько обязательных и простых шагов настройки безопасности любого веб-сервера, о которых часто забывают:

Применив один из описанных выше методов (или их комбинацию, например, Nginx в качестве реверс-прокси с сертификатом Let's Encrypt и mTLS), вы получите максимально защищенное, быстрое и удобное решение для работы с вашей 1С:УНФ из любой точки мира без необходимости каждый раз вручную настраивать и запускать VPN-клиенты.

← На главную