Закрываем доступ к базе 1С через браузер: публикация, права, веб-сервер и сеть
Содержание
Быстрее всего отключить веб-клиент 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модуль подключается к файловой базе или к кластеру серверов.
Значит, оборвать доступ можно на любом звене. Перед работой выясните три вещи:
- Где опубликована база. На каком компьютере стоит веб-сервер, какой он (IIS, Apache) и как называется публикация — это часть адреса после имени сервера, например
http://srv/buh/→ публикацияbuh. - Что ещё висит на этой публикации. Через тот же адрес могут работать тонкий клиент по HTTP, мобильный клиент, OData для отчётности, веб-сервисы для обмена с сайтом или ЭДО. Удалите публикацию целиком — отвалится всё сразу.
- Кому и откуда нужен доступ. «Никому», «никому из интернета» и «никому, кроме двух менеджеров» решаются разными способами.
| Задача | Способ | Что ещё перестанет работать |
|---|---|---|
| Убрать браузерный доступ полностью | Отключить публикацию | Тонкий клиент по HTTP, веб-сервисы, OData этой публикации |
| Оставить сервисы, убрать клиенты | Снять галочку клиентов в публикации | Тонкий клиент по HTTP |
| Запретить отдельным пользователям | Права «Веб-клиент» в ролях | Ничего, остальные работают |
| Закрыть только внешний доступ | Ограничение по IP в IIS, Apache или фаерволе | Работа из дома и с телефона |
Как отключить веб-клиент 1С в публикации базы
Вариант 1. Через Конфигуратор
Окно публикации пишет файлы веб-сервера и перезапускает его конфигурацию, поэтому Конфигуратор нужно запускать на том компьютере, где стоит веб-сервер, и обязательно «От имени администратора». Иначе кнопки сработают с ошибкой доступа или изменения не применятся.
- Запустите Конфигуратор нужной базы правой кнопкой → «Запуск от имени администратора».
- Откройте
Администрирование → Публикация на веб-сервере. - Проверьте поле «Имя» — оно должно совпадать с именем публикации из адреса.
- Дальше одно из двух:
- нужно убрать всё — нажмите «Отключить»;
- нужно оставить веб-сервисы, HTTP-сервисы или OData — на вкладке «Основные» снимите флажок «Публиковать тонкий клиент и веб-клиент» и нажмите «Опубликовать».
- Согласитесь на перезапуск веб-сервера, если программа его предложит.
Перезапуск веб-сервера обрывает текущие браузерные сеансы и запросы к веб-сервисам. Пользователи веб-клиента потеряют несохранённые документы. Делайте это вне рабочего времени или предупредите заранее.
Вариант 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="srv1c";Ref="buh";"
enable="false">
Остальные строки файла (секции ws, httpServices, standardOdata) не трогайте. Перед правкой сохраните копию файла рядом — например, default.vrd.bak.
💡 Ручную правку default.vrd легко потерять: следующая публикация из Конфигуратора перезапишет файл. Если базу потом перепубликуют, флажок придётся снять снова.
Запрет веб-клиента для отдельных пользователей через роли
Публикацию трогать не нужно, если веб-клиент должен остаться, но не для всех. В платформе 8.3 у ролей есть отдельные права на виды клиентов: «Тонкий клиент», «Веб-клиент», «Толстый клиент», «Мобильный клиент», «Внешнее соединение». Пользователь войдёт через браузер, только если хотя бы одна его роль даёт право «Веб-клиент».
В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) это право вынесено в отдельную роль «Запуск веб-клиента». Права в 1С складываются: если роль пришла пользователю хотя бы из одной группы доступа, вход разрешён.
Порядок для типовой конфигурации:
- Откройте
Администрирование → Настройки пользователей и прав → Профили групп доступа. - Найдите профили, которые назначены нужному пользователю. Поставляемые профили менять нельзя — скопируйте профиль и работайте с копией.
- В копии на вкладке ролей снимите роль «Запуск веб-клиента». Роль удобнее искать поиском по списку ролей.
- Переназначьте группы доступа пользователя на новый профиль.
- Проверьте карточку пользователя: в ней не должно остаться групп со старым профилем, иначе право вернётся.
Для самописной конфигурации путь другой: в Конфигураторе откройте роль, выделите в дереве корень конфигурации и снимите флажок права «Веб-клиент». После этого обновите конфигурацию базы данных.
Правка ролей в основной конфигурации типового решения снимает объект с поддержки и усложняет обновления. В типовых базах работайте через профили групп доступа, а не через Конфигуратор.
При попытке войти через браузер пользователь без права увидит сообщение о нарушении прав доступа. В тонком клиенте у него всё продолжит работать.
Блокировка публикации на веб-сервере IIS
Этот способ нужен, когда публикацию не удаляют, но закрывают снаружи: на время обновления, проверки или до отдельного решения руководства.
Остановить приложение или сайт
- Откройте «Диспетчер служб IIS» (
inetmgrв окне «Выполнить»). - В дереве
Сайты → Default Web Siteнайдите узел с именем публикации. - Если на сайте больше ничего нет — остановите сайт кнопкой «Остановить» справа. Если там живут другие приложения — переходите к способу ниже.
Закрыть публикацию по IP-адресу
- Выделите узел публикации.
- Откройте компонент «Ограничения IP-адресов и доменов». Если его нет, доустановите роль
Веб-сервер → Безопасность → Ограничения IP-адресов и доменовв «Диспетчере серверов». - В «Изменить параметры компонента» поставьте доступ для неуказанных клиентов «Запретить».
- Добавьте разрешающие записи для офисной подсети, например
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С отключён
Проверяйте с того места, откуда доступ должен пропасть. Тест с самого сервера ничего не доказывает: локальный адрес часто попадает в разрешённые.
Что означает ответ браузера:
| Что видите | Что это значит |
|---|---|
| Ошибка 404 | Публикация удалена или блок закомментирован — отключено |
| Ошибка 403 | Сработало ограничение по IP или правам — отключено |
| Страница не отвечает, тайм-аут | Порт закрыт фаерволом или на роутере |
| Окно входа 1С по-прежнему открывается | Изменения не применились или браузер показывает кэш |
Если окно входа всё ещё открывается, проверьте по порядку:
- Откройте адрес в окне инкогнито — обычный браузер мог закэшировать страницу.
- Убедитесь, что правили тот
httpd.confили тот сайт IIS, который реально обслуживает адрес. На сервере бывает два веб-сервера, и один перехватывает порт. - Посмотрите журналы: для IIS —
C:\inetpub\logs\LogFiles, для Apache —logs\error.logиlogs\access.log. Код ответа 200 на адрес публикации значит, что доступ ещё открыт. - Проверьте, нет ли второй публикации той же базы под другим именем. Её легко пропустить, если базу когда-то публиковали дважды.
Частые вопросы
Отключение публикации удалит данные базы?
default.vrd. База, пользователи и настройки остаются на месте.Можно ли оставить тонкий клиент по HTTP, а веб-клиент убрать?
Как вернуть веб-клиент после отключения?
httpd.conf. Для ролей — верните роль «Запуск веб-клиента» в профиль.