Как ограничить доступ к базе 1С на веб-сервере по IP-адресу или времени суток?

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

При переносе баз данных 1С на арендованные серверы и их публикации через веб-серверы (для работы тонкого или веб-клиента) часто возникает серьезная проблема безопасности. Любой человек, знающий адрес публикации, логин и пароль (которые можно подобрать методом перебора), может подключиться к рабочей базе со своего домашнего компьютера в любое время суток. Ответ технических специалистов арендодателя в стиле «ограничить доступ по IP нельзя — так не бывает» является в корне неверным.

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

Способ 1. Фильтрация по IP-адресу на уровне веб-сервера (IIS или Apache)

Если база опубликована для работы через тонкий клиент, подключение происходит по протоколу HTTP/HTTPS. Это значит, что запросы обрабатывает веб-сервер. Мы можем настроить веб-сервер так, чтобы он принимал запросы только с определенных IP-адресов (например, статического IP-адреса вашего офиса).

Для веб-сервера Apache:

Ограничение настраивается в конфигурационном файле публикации (обычно это файл default.vrd или файл конфигурации хоста httpd.conf / файл .htaccess в папке публикации). Рассмотрим пример конфигурации для Apache версии 2.4, где доступ разрешен только для конкретного внешнего IP-адреса офиса (например, 203.0.113.50):


<Directory "C:/inetpub/wwwroot/my_1c_base">
    Options None
    AllowOverride None
    Require all denied
    # Разрешаем доступ только с IP-адреса офиса
    Require ip 203.0.113.50
</Directory>

При такой настройке любой пользователь, пытающийся зайти в 1С с постороннего IP-адреса, получит ошибку HTTP 403 (Forbidden), а база 1С даже не начнет загружаться.

Для веб-сервера IIS (Internet Information Services):

В Windows Server управление доступом по IP выполняется еще проще через графический интерфейс:

  1. Откроем Диспетчер служб IIS.
  2. Перейдем к виртуальному каталогу нашей опубликованной базы 1С.
  3. В центральной части выберем пункт «Ограничения IP-адресов и доменов» (IP Address and Domain Restrictions). Если этого пункта нет, его нужно установить через «Роли и компоненты» Windows Server.
  4. В панели действий справа выберем «Добавить разрешающее правило» (Add Allow Entry) и введем IP-адрес офиса.
  5. В настройках компонента укажем, что для всех неуказанных IP-адресов доступ по умолчанию запрещен.

Способ 2. Организация доступа через VPN (Золотой стандарт безопасности)

Самым надежным и профессиональным решением является полное закрытие портов веб-сервера (80 и 443) от внешнего интернета. Вместо публикации базы «на весь мир» настраивается виртуальная частная сеть (VPN).

Рассмотрим по шагам, как работает эта схема:

  1. На арендованном сервере разворачивается VPN-сервер (например, на базе легкого и быстрого протокола WireGuard или классического OpenVPN).
  2. В брандмауэре (сетевом экране) сервера закрывается прямой доступ к портам веб-сервера из внешней сети. Доступ к ним разрешается только из внутренней подсети VPN.
  3. На компьютерах сотрудников устанавливаются программы-клиенты VPN.
  4. Перед началом работы в 1С сотрудник запускает VPN, вводит свои учетные данные (при необходимости настраивается двухфакторная аутентификация), и его компьютер виртуально оказывается в одной локальной сети с сервером.
  5. Только после этого тонкий клиент 1С может подключиться к базе по её внутреннему IP-адресу (например, http://10.8.0.1/my_1c_base).

Этот способ полностью решает проблему безопасности: злоумышленник не сможет даже просканировать порты веб-сервера 1С.

Способ 3. Ограничение доступа на уровне платформы 1С (Внутри конфигурации)

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

Рассмотрим пример кода, который ограничивает запуск программы в нерабочее время (например, запрещает вход с 20:00 до 08:00):


Процедура ПередНачаломРаботыСистемы(Отказ)
    
    // Ограничение по времени работы
    ТекущееВремя = РабочаяДата();
    ЧасСтрока = Формат(ТекущаяДата(), "ДФ=Ч");
    ТекущийЧас = Число(ЧасСтрока);
    
    Если (ТекущийЧас < 8) Или (ТекущийЧас >= 20) Тогда
        Предупреждение("Внимание! Доступ к информационной базе в нерабочее время (с 20:00 до 08:00) заблокирован.");
        Отказ = Истина;
        Возврат;
    КонецЕсли;
    
КонецПроцедуры

Также в этом обработчике можно проверять имя компьютера пользователя. Если имя компьютера не соответствует офисному шаблону (или не находится в списке разрешенных), транзакция запуска будет отменена:


// Пример проверки имени компьютера
ИмяКомпьютераКлиента = ВРег(ИмяКомпьютера());
Если Найти(ИмяКомпьютераКлиента, "OFFICE-") = 0 Тогда
    Предупреждение("Запуск программы разрешен только с офисных компьютеров!");
    Отказ = Истина;
    Возврат;
EndIf;

Важно: Программные ограничения в 1С работают на прикладном уровне. Они не защищают веб-сервер от атак перебора паролей (brute force), но гарантируют, что рядовой сотрудник не сможет работать с данными дома на личном ноутбуке.

Способ 4. Двусторонняя SSL-авторизация (mTLS)

Этот способ идеально подходит, если у сотрудников динамические IP-адреса, из-за чего обычную фильтрацию по IP настроить невозможно, а разворачивать VPN слишком трудоемко.

Мы можем настроить веб-сервер так, чтобы он требовал от клиента специальный цифровой SSL-сертификат:

  1. Администратор генерирует корневой сертификат безопасности.
  2. Для каждого разрешенного рабочего компьютера выпускается персональный клиентский сертификат, который устанавливается в операционную систему Windows.
  3. При обращении тонкого клиента к веб-серверу происходит проверка: если на компьютере установлен корректный сертификат — доступ разрешается. Если сертификата нет — веб-сервер мгновенно сбрасывает соединение, даже не показывая форму авторизации 1С.

Резюме и рекомендации

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

← На главную