Закрываем доступ к базе 1С через браузер: публикация, права, веб-сервер и сеть

· 10 мин

Содержание

Быстрее всего отключить веб-клиент 1С так: откройте базу в Конфигураторе от имени администратора Windows, зайдите в Администрирование → Публикация на веб-сервере и нажмите «Отключить». Публикация удалится, адрес базы в браузере перестанет открываться. Если же публикация нужна для веб-сервисов или HTTP-сервисов, снимите в том же окне только галочку «Публиковать тонкий клиент и веб-клиент».

Дальше выбор зависит от задачи. Убрать браузерный доступ совсем — работаем с публикацией и веб-сервером. Запретить его части пользователей — с правами ролей. Закрыть доступ из интернета, но оставить в офисе — с IIS, Apache или фаерволом. Ниже все уровни по порядку, от самого простого к сетевому.

С чего начать: как устроен доступ через браузер

Веб-клиент не ходит в кластер 1С напрямую. Цепочка всегда одна:

  • 🌐 браузер обращается по HTTP или HTTPS к веб-серверу (IIS или Apache);
  • 🧩 модуль расширения веб-сервера 1С (wsisapi.dll для IIS, wsap24.dll или wsap24.so для Apache 2.4) читает файл default.vrd в каталоге публикации;
  • 🗄️ по строке соединения из default.vrd модуль подключается к файловой базе или к кластеру серверов.

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

  1. Где опубликована база. На каком компьютере стоит веб-сервер, какой он (IIS, Apache) и как называется публикация — это часть адреса после имени сервера, например http://srv/buh/ → публикация buh.
  2. Что ещё висит на этой публикации. Через тот же адрес могут работать тонкий клиент по HTTP, мобильный клиент, OData для отчётности, веб-сервисы для обмена с сайтом или ЭДО. Удалите публикацию целиком — отвалится всё сразу.
  3. Кому и откуда нужен доступ. «Никому», «никому из интернета» и «никому, кроме двух менеджеров» решаются разными способами.
ЗадачаСпособЧто ещё перестанет работать
Убрать браузерный доступ полностьюОтключить публикациюТонкий клиент по HTTP, веб-сервисы, OData этой публикации
Оставить сервисы, убрать клиентыСнять галочку клиентов в публикацииТонкий клиент по HTTP
Запретить отдельным пользователямПрава «Веб-клиент» в роляхНичего, остальные работают
Закрыть только внешний доступОграничение по IP в IIS, Apache или фаерволеРабота из дома и с телефона

Как отключить веб-клиент 1С в публикации базы

Вариант 1. Через Конфигуратор

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

  1. Запустите Конфигуратор нужной базы правой кнопкой → «Запуск от имени администратора».
  2. Откройте Администрирование → Публикация на веб-сервере.
  3. Проверьте поле «Имя» — оно должно совпадать с именем публикации из адреса.
  4. Дальше одно из двух:
    • нужно убрать всё — нажмите «Отключить»;
    • нужно оставить веб-сервисы, HTTP-сервисы или OData — на вкладке «Основные» снимите флажок «Публиковать тонкий клиент и веб-клиент» и нажмите «Опубликовать».
  5. Согласитесь на перезапуск веб-сервера, если программа его предложит.

Перезапуск веб-сервера обрывает текущие браузерные сеансы и запросы к веб-сервисам. Пользователи веб-клиента потеряют несохранённые документы. Делайте это вне рабочего времени или предупредите заранее.

Вариант 2. Утилитой webinst без Конфигуратора

Утилита webinst лежит в каталоге bin установленной платформы. Она удобна, когда опубликованных баз много или на сервере нет пользовательского сеанса. Команды запускайте из консоли с правами администратора.

Для IIS:

cd "C:\Program Files\1cv8\8.3.24.1548\bin"
webinst -delete -iis -wsdir buh

Для Apache 2.4 под Windows:

webinst -delete -apache24 -wsdir buh -dir "C:\inetpub\wwwroot\buh" -confpath "C:\Apache24\conf\httpd.conf"

Номер версии в пути подставьте свой. Для Apache после команды перезапустите службу веб-сервера.

Вариант 3. Правка default.vrd

Если нужно точечно, без пересоздания публикации, откройте default.vrd в каталоге публикации. Флажок клиентов в окне публикации соответствует атрибуту enable у корневого элемента:

<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="/buh"
       ib="Srvr=&quot;srv1c&quot;;Ref=&quot;buh&quot;;"
       enable="false">

Остальные строки файла (секции ws, httpServices, standardOdata) не трогайте. Перед правкой сохраните копию файла рядом — например, default.vrd.bak.

💡 Ручную правку default.vrd легко потерять: следующая публикация из Конфигуратора перезапишет файл. Если базу потом перепубликуют, флажок придётся снять снова.

Запрет веб-клиента для отдельных пользователей через роли

Публикацию трогать не нужно, если веб-клиент должен остаться, но не для всех. В платформе 8.3 у ролей есть отдельные права на виды клиентов: «Тонкий клиент», «Веб-клиент», «Толстый клиент», «Мобильный клиент», «Внешнее соединение». Пользователь войдёт через браузер, только если хотя бы одна его роль даёт право «Веб-клиент».

В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) это право вынесено в отдельную роль «Запуск веб-клиента». Права в 1С складываются: если роль пришла пользователю хотя бы из одной группы доступа, вход разрешён.

Порядок для типовой конфигурации:

  1. Откройте Администрирование → Настройки пользователей и прав → Профили групп доступа.
  2. Найдите профили, которые назначены нужному пользователю. Поставляемые профили менять нельзя — скопируйте профиль и работайте с копией.
  3. В копии на вкладке ролей снимите роль «Запуск веб-клиента». Роль удобнее искать поиском по списку ролей.
  4. Переназначьте группы доступа пользователя на новый профиль.
  5. Проверьте карточку пользователя: в ней не должно остаться групп со старым профилем, иначе право вернётся.

Для самописной конфигурации путь другой: в Конфигураторе откройте роль, выделите в дереве корень конфигурации и снимите флажок права «Веб-клиент». После этого обновите конфигурацию базы данных.

Правка ролей в основной конфигурации типового решения снимает объект с поддержки и усложняет обновления. В типовых базах работайте через профили групп доступа, а не через Конфигуратор.

При попытке войти через браузер пользователь без права увидит сообщение о нарушении прав доступа. В тонком клиенте у него всё продолжит работать.

Блокировка публикации на веб-сервере IIS

Этот способ нужен, когда публикацию не удаляют, но закрывают снаружи: на время обновления, проверки или до отдельного решения руководства.

Остановить приложение или сайт

  1. Откройте «Диспетчер служб IIS» (inetmgr в окне «Выполнить»).
  2. В дереве Сайты → Default Web Site найдите узел с именем публикации.
  3. Если на сайте больше ничего нет — остановите сайт кнопкой «Остановить» справа. Если там живут другие приложения — переходите к способу ниже.

Закрыть публикацию по IP-адресу

  1. Выделите узел публикации.
  2. Откройте компонент «Ограничения IP-адресов и доменов». Если его нет, доустановите роль Веб-сервер → Безопасность → Ограничения IP-адресов и доменов в «Диспетчере серверов».
  3. В «Изменить параметры компонента» поставьте доступ для неуказанных клиентов «Запретить».
  4. Добавьте разрешающие записи для офисной подсети, например 192.168.1.0 с маской 255.255.255.0.

Убрать обработчик 1С

Радикальный вариант — удалить у публикации сопоставление обработчика с wsisapi.dll в разделе «Сопоставления обработчиков». Без обработчика IIS не передаст запросы модулю 1С. Минус в том, что потом его придётся восстанавливать вручную или заново публиковать базу.

Команда iisreset применяет изменения ко всем сайтам сразу и рвёт все сеансы. Для одной публикации достаточно действий в диспетчере, они применяются без полного перезапуска.

Ограничение доступа к базе 1С в Apache

У Apache публикация 1С — это строки в httpd.conf: подключение модуля LoadModule _1cws_module ... и блок <Directory> или <Location> с именем публикации.

Временно выключить публикацию

Закомментируйте блок публикации символом #. Строку LoadModule не трогайте, если на этом Apache опубликованы и другие базы.

# Alias "/buh" "C:/Apache24/htdocs/buh/"
# <Directory "C:/Apache24/htdocs/buh/">
#     AllowOverride All
#     Options None
#     Require all granted
#     SetHandler 1c-application
#     ManagedApplicationDescriptor "C:/Apache24/htdocs/buh/default.vrd"
# </Directory>

Пустить только офис

Вместо Require all granted укажите разрешённые адреса. Синтаксис Apache 2.4:

<Directory "C:/Apache24/htdocs/buh/">
    SetHandler 1c-application
    ManagedApplicationDescriptor "C:/Apache24/htdocs/buh/default.vrd"
    Require ip 192.168.1.0/24
    Require ip 10.10.0.5
</Directory>

Перед перезапуском проверьте синтаксис: httpd -t в Windows или apachectl configtest в Linux. Ответ Syntax OK означает, что службу можно перезапускать. Если проверку пропустить и ошибиться в одной строке, Apache не поднимется, и упадут все опубликованные базы, а не одна.

Что можно сделать в кластере серверов 1С

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

В консоли администрирования серверов откройте Кластеры → <ваш кластер> → Информационные базы → <база> → Сеансы. В колонке «Приложение» браузерные сеансы подписаны как «Веб-клиент».

Через rac то же самое выглядит так:

rac cluster list
rac session list --cluster=<uuid-кластера>

У сеансов веб-клиента в выводе поле app-id равно WebClient. Завершить конкретный сеанс можно из консоли командой контекстного меню «Удалить».

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

Ещё один рычаг для клиент-серверной базы — блокировка начала сеансов в свойствах информационной базы. Но она закрывает вход всем клиентам, не только браузерным, поэтому годится лишь на время регламентных работ.

Для файловой базы роль кластера играет файловая система. Модуль веб-сервера работает от учётной записи пула приложений IIS или службы Apache. Уберите этой учётной записи права NTFS на каталог базы — и браузерный вход перестанет работать, даже если публикация осталась.

Закрываем веб-доступ к 1С на сетевом экране

Фаервол полезен, когда веб-сервер опубликован в интернет через проброс портов на роутере. Веб-клиенту нужны только порты веб-сервера: 80 для HTTP и 443 для HTTPS. Порты кластера 1540, 1541 и диапазон рабочих процессов браузеру не нужны — их закрытие ударит по тонким клиентам, а веб-клиент не остановит.

Где закрывать:

  • 🔌 на роутере — удалите правило проброса 80/443 на веб-сервер; самый чистый способ убрать доступ из интернета;
  • 🪟 в Windows на веб-сервере — входящее правило;
  • 🐧 в Linux на веб-сервере — правило ufw или iptables.

Пример для Windows (PowerShell от администратора) — разрешить порт 443 только офисной сети:

New-NetFirewallRule -DisplayName "1C web office only" -Direction Inbound -Protocol TCP -LocalPort 443 -RemoteAddress 192.168.1.0/24 -Action Allow

Учтите: правило «разрешить» работает, только если нет более широкого разрешения на тот же порт. Проверьте существующие правила для 80 и 443 и отключите лишние.

Пример для Ubuntu с ufw:

sudo ufw allow from 192.168.1.0/24 to any port 443 proto tcp
sudo ufw deny 443/tcp
sudo ufw deny 80/tcp

Порядок важен: ufw применяет правила сверху вниз, поэтому разрешение для подсети должно идти первым.

Если вы подключены к серверу удалённо, не закрывайте порт своего же подключения (RDP 3389, SSH 22) — потеряете доступ к серверу.

Как проверить, что веб-клиент 1С отключён

Проверяйте с того места, откуда доступ должен пропасть. Тест с самого сервера ничего не доказывает: локальный адрес часто попадает в разрешённые.

Проверка после отключения
Выполнено: 0 / 5

Что означает ответ браузера:

Что видитеЧто это значит
Ошибка 404Публикация удалена или блок закомментирован — отключено
Ошибка 403Сработало ограничение по IP или правам — отключено
Страница не отвечает, тайм-аутПорт закрыт фаерволом или на роутере
Окно входа 1С по-прежнему открываетсяИзменения не применились или браузер показывает кэш

Если окно входа всё ещё открывается, проверьте по порядку:

  1. Откройте адрес в окне инкогнито — обычный браузер мог закэшировать страницу.
  2. Убедитесь, что правили тот httpd.conf или тот сайт IIS, который реально обслуживает адрес. На сервере бывает два веб-сервера, и один перехватывает порт.
  3. Посмотрите журналы: для IIS — C:\inetpub\logs\LogFiles, для Apache — logs\error.log и logs\access.log. Код ответа 200 на адрес публикации значит, что доступ ещё открыт.
  4. Проверьте, нет ли второй публикации той же базы под другим именем. Её легко пропустить, если базу когда-то публиковали дважды.

Частые вопросы

Отключение публикации удалит данные базы?
Нет. Публикация — это только файлы веб-сервера и default.vrd. База, пользователи и настройки остаются на месте.
Можно ли оставить тонкий клиент по HTTP, а веб-клиент убрать?
Через публикацию нельзя: один флажок отвечает за оба клиента. Используйте права ролей — снимите у пользователей право «Веб-клиент», а «Тонкий клиент» оставьте.
Как вернуть веб-клиент после отключения?
Опубликуйте базу заново в Конфигураторе, верните флажок клиентов или раскомментируйте блок в httpd.conf. Для ролей — верните роль «Запуск веб-клиента» в профиль.
Перестанет ли работать мобильное приложение 1С?
Мобильный клиент подключается к той же публикации. После её отключения он тоже потеряет связь с базой, а запрет права «Веб-клиент» на мобильный клиент не влияет.
Нужно ли перезапускать сервер 1С после отключения?
Нет. Достаточно применить изменения веб-сервера. Службу сервера 1С не останавливайте — это прервёт работу всех пользователей.