На терминальном сервере одновременно работают десятки людей, и всё, что сделал один пользователь, касается остальных: удалённый ярлык, запущенная «полезная» программа, файл на диске C:, забивший место. Поэтому пользователей терминального сервера я всегда ограничиваю групповыми политиками — так, чтобы они видели свои программы и папки и не видели, а главное не могли, делать ничего лишнего.
Коротко: создайте отдельную GPO, привяжите её к подразделению (OU) с терминальными серверами и включите в ней режим замыкания (loopback processing). Тогда пользовательские настройки из этой GPO применятся ко всем, кто входит на сервер, но не затронут их обычные рабочие компьютеры. Дальше — скрытие дисков, запрет панели управления и диспетчера задач, таймауты сеансов, ограничения буфера обмена и, при необходимости, AppLocker. Администраторов из-под действия политики исключите фильтрацией.
Подготовка: OU, GPO и loopback
Обычно пользовательские политики применяются по месту учётной записи пользователя в Active Directory. Нам же нужно, чтобы ограничения зависели от компьютера: на своём ПК бухгалтер работает как обычно, а на терминальном сервере — в жестко заданной среде. Для этого и существует loopback processing.
- Создайте OU, например
RDS-Servers, и перенесите туда учётные записи терминальных серверов. - В консоли управления групповой политикой (
gpmc.msc) создайте GPO, напримерRDS - Ограничения пользователей, и привяжите её к этой OU. - В GPO откройте Computer Configuration → Policies → Administrative Templates → System → Group Policy и включите Configure user Group Policy loopback processing mode.
- Выберите режим: Merge — к политикам пользователя добавляются пользовательские политики из GPO компьютера, и при конфликте побеждают последние; Replace — политики по месту пользователя не применяются вообще, только по месту компьютера.
- В той же GPO в разделе User Configuration настройте нужные ограничения (о них ниже).
Я чаще использую Merge: доменные настройки пользователя (подключение сетевых дисков, перенаправление папок) продолжают работать, а ограничения сервера добавляются сверху. Replace удобен, если хочется полностью отделить среду терминального сервера от остальных политик. Подробно механизм описан в статье Microsoft о loopback processing.
Как исключить администраторов
Ограничения не должны касаться тех, кто обслуживает сервер. На вкладке Delegation GPO нажмите Advanced, добавьте группу администраторов (например, Domain Admins или свою группу админов серверов) и для неё установите Deny на право Apply group policy. Остальным пользователям хватит стандартных прав Authenticated Users на чтение и применение.
Если домена нет
Loopback работает только в Active Directory. На сервере в рабочей группе можно использовать множественную локальную политику: в mmc.exe добавьте оснастку Group Policy Object Editor, нажмите Browse, на вкладке Users выберите Non-Administrators. Настройки из этого объекта применяются ко всем, кроме администраторов.
Скрытие и блокировка дисков
Политики находятся в User Configuration → Policies → Administrative Templates → Windows Components → File Explorer:
- Hide these specified drives in My Computer — убирает значки выбранных дисков из Проводника и стандартных диалогов открытия файла. Учтите: по прямому пути, из командной строки или из программы диск остаётся доступен.
- Prevent access to drives from My Computer — запрещает просмотр содержимого выбранных дисков в Проводнике, через «Выполнить» и подключение сетевого диска. Значки дисков при этом остаются. Программы по-прежнему могут работать с файлами на этих дисках, поэтому 1С, у которой базы лежат на диске D:, продолжит открывать их.
Обычно я скрываю и блокирую системный диск C:, а пользователю оставляю его сетевые папки и диск с общими документами. Права NTFS это не заменяет: всё, что пользователь не должен читать или менять, закрывайте правами на файловой системе.
Отдельно стоит решить, нужны ли в сеансе диски с компьютера пользователя. Если нет — включите Do not allow drive redirection в Computer Configuration → Policies → Administrative Templates → Windows Components → Remote Desktop Services → Remote Desktop Session Host → Device and Resource Redirection.
Панель управления, диспетчер задач и другие инструменты
| Политика | Где находится (User Configuration → Policies → Administrative Templates) | Что делает |
|---|---|---|
| Prohibit access to Control Panel and PC settings | Control Panel | Блокирует запуск панели управления и приложения «Параметры» |
| Remove Task Manager | System → Ctrl+Alt+Del Options | Диспетчер задач не запускается ни по Ctrl+Shift+Esc, ни из меню панели задач |
| Prevent access to the command prompt | System | Запрещает cmd.exe; есть опция запрета и для пакетных файлов |
| Prevent access to registry editing tools | System | Запрещает запуск редактора реестра |
Осторожно с опцией запрета пакетных файлов в политике командной строки: если у вас есть сценарии входа в виде .bat или .cmd, они тоже перестанут выполняться. В этом случае оставьте опцию выключенной.
Запрет диспетчера задач не мешает пользователю завершить свой сеанс через меню «Пуск». А вот зависшую 1С без диспетчера задач пользователь сам не закроет, поэтому договоритесь, кто и как будет это делать — администратор может завершить процесс или сеанс из Server Manager или командой logoff.
Таймауты сеансов
Отключённые сеансы по умолчанию живут на сервере бесконечно, держат открытые файлы и лицензии. Политики находятся в Remote Desktop Services → Remote Desktop Session Host → Session Time Limits и есть как в Computer Configuration, так и в User Configuration; если заданы обе, побеждает настройка компьютера.
- Set time limit for disconnected sessions — через сколько завершать отключённый сеанс.
- Set time limit for active but idle Remote Desktop Services sessions — через сколько отключать сеанс без активности; за две минуты до этого пользователь получает предупреждение.
- Set time limit for active Remote Desktop Services sessions — максимальная длительность сеанса; на офисных серверах я её обычно не ограничиваю.
- End session when time limits are reached — завершать сеанс по истечении лимитов, а не просто отключать его.
Для серверов с 1С имеет смысл завершать отключённые сеансы в течение длительного промежутка времени: пользователь, закрывший окно RDP крестиком, не будет держать блокировки и лицензию 1С до утра. Перед включением предупредите пользователей, что несохранённые данные в брошенных сеансах будут потеряны.
Буфер обмена
Полный запрет буфера обмена между сервером и компьютером пользователя — политика Do not allow Clipboard redirection в узле Device and Resource Redirection. Другие способы, включая реестр, я разбирал в заметке об отключении буфера обмена на терминальном сервере.
В свежих версиях Windows появились более тонкие политики — Restrict clipboard transfer from server to client и Restrict clipboard transfer from client to server: можно запретить копирование только в одну сторону или разрешить только простой текст. Microsoft описывает их в документации Azure Virtual Desktop и указывает для Windows Server 2022 требование обновления KB5040437 (июль 2024) или новее; шаблоны политик для них есть начиная с Windows 11 23H2. На обычном терминальном сервере эти настройки я рекомендую сначала проверить на тестовом пользователе. Учтите, что запрет Do not allow Clipboard redirection блокирует буфер полностью, независимо от этих настроек.
AppLocker — кратко
Все перечисленные выше политики скрывают инструменты, но не мешают запустить программу, скачанную в папку пользователя. Эту задачу решает AppLocker — правила, какие исполняемые файлы, сценарии, установщики и библиотеки разрешено запускать.
- Правила создаются в GPO: Computer Configuration → Policies → Windows Settings → Security Settings → Application Control Policies → AppLocker.
- Для каждой коллекции (Executable Rules, Windows Installer Rules, Script Rules, Packaged app Rules) начните с правил по умолчанию — Create Default Rules. Для исполняемых файлов они разрешают всем запуск из папок
WindowsиProgram Files, а администраторам — любых файлов. - Сначала включите режим Audit only и посмотрите журнал AppLocker в Applications and Services Logs → Microsoft → Windows → AppLocker, что было бы заблокировано.
- Запустите службу «Удостоверение приложения» (Application Identity). Без неё правила не применяются. Начиная с Windows 10 её тип запуска нельзя поменять в оснастке служб, поэтому используйте GPO (Security Settings → System Services → Application Identity) или команду
sc.exe config appidsvc start=auto. - После проверки переключите коллекции в режим Enforce rules.
Если 1С установлена в Program Files, правила по умолчанию её не заблокируют. Но внешние обработки и обновления конфигурации, которые 1С распаковывает во временные каталоги, проверьте отдельно в режиме аудита. Учтите и позицию Microsoft: AppLocker — средство дополнительной защиты, а не полноценная граница безопасности; для строгого контроля Microsoft предлагает App Control for Business. Также AppLocker не поддерживается в установке Server Core.
Проверка применения политик
gpupdate /force
gpresult /r /scope user
gpresult /h C:tempgpresult.html
Запускайте gpresult из сеанса тестового пользователя на терминальном сервере: в отчёте должна быть видна ваша GPO в разделе применённых пользовательских политик и отметка о режиме замыкания. Хорошая практика — завести тестовую учётную запись с правами обычного сотрудника и проверять на ней каждое изменение.
Ограничения политиками — это лишь часть защиты: не менее важны сложные пароли, отсутствие прямого порта RDP в интернет и резервные копии. Хорошая памятка на эту тему — правила безопасной работы на сервере. А если нужно спроектировать и настроить политики под свой офис, это можно поручить специалистам по настройке серверов Windows.
Частые вопросы
Политика настроена, но пользователь всё ещё видит диск C:. Почему?
Чаще всего не включён loopback, и пользовательские настройки из GPO, привязанной к OU с серверами, просто не применяются. Вторая причина — пользователь входит в группу, которой запрещено применение GPO. Проверьте gpresult /r /scope user из сеанса этого пользователя и повторно войдите в систему: часть настроек Проводника применяется только при входе.
Merge или Replace — что выбрать?
Merge — если у пользователей есть доменные политики, которые должны работать и на сервере (сетевые диски, перенаправление папок). Replace — если среда терминального сервера должна быть полностью независимой. При Replace не забудьте продублировать в GPO сервера всё нужное из пользовательских политик.
Можно ли запретить пользователям выключать или перезагружать сервер?
Обычные пользователи не имеют права на завершение работы сервера — оно есть у администраторов. Если пользователь может выключить терминальный сервер, значит, у него лишние права, и это нужно исправлять в первую очередь, а не прятать кнопку политикой.
Ограничения применились и к администратору. Как вернуть доступ?
Войдите под учётной записью из группы, для которой в GPO установлен запрет Apply group policy, или временно отключите привязку GPO к OU в консоли gpmc.msc. После этого выполните gpupdate /force на сервере и войдите заново.