Фильтрация групповых политик Windows
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов по системному администрированию Pyatilistnik.org. В прошлый раз мы с вами научились отключать защитник Windows 8.1, у каждого была своя причина произвести данное действие. Сегодня я хочу вас научить очень полезной вещи, без которой системный администратор управляющий групповой политикой не сможет активно и гибко ее применять. И речь пойдет про применение фильтров на разных этапах применения групповой политики к компьютерам и пользователям.
Для чего нужен механизм фильтрации GPO
Какую бы вы сложную иерархию Active Directory не создавали у вас рано или поздно появится ситуация, что вам нужно для двух и более объектов находящихся в одном OU иметь разные настройки, а для кого-то вообще запретить применение определенной групповой политики, но перемещать объект нельзя, так как в текущей иерархии он получает все настройки по корпоративному стандарту, и усложнять структуру не представляется возможным.
Лично я стараюсь не создавать лишних организационных подразделений, так как, чем проще система, тем проще ею управлять. У вас может быть вообще одна OU и все навалено в ней, но это вам не мешает грамотно применять политики к конкретным объектам, благодаря фильтрации на разных этапах GPO.
Виды фильтрации групповых политик
- Это фильтр безопасности
- Это фильтр WMI
- Это фильтр на вкладке делегирование
- Это фильтр на вкладке сведения
Фильтр безопасности GPO
Данный метод метод ограничения применений групповой политикой самый очевидный и используемый. Тут логика простая, что если вы хотите применить групповую политику, только к определенным объектам:
- Пользователям
- Компьютерам
- Группам
то вы можете их добавить в данный фильтр, после чего нужно удалить группу "Прошедшие проверку (authentication user)", так как в нее входят все пользователи и компьютеры домена. Давайте это попробуем. Открываем оснастку "Управление групповой политикой". В прошлый раз я создавал политику "Настройка MaxTokenSize" в задачи которой входило изменение размера токена kerberos. Предположим, что я хочу применить ее только в локальной доменной группе MaxTokenSize. Для этого я нажимаю кнопку "Добавить" в области "Фильтры безопасности", находим ее и нажимаем "Ok".
Теперь нам необходимо удалить группу по умолчанию "Прошедшие проверку", напоминаю, что в нее входят все компьютеры и пользователи домена.
В итоге мы видим в фильтрах безопасности одну нашу группу. Пробуем зайти на компьютер, где она должна отработать.
В начале 2016 года я столкнулся с тем, что моя политика не отработала, хотя все фильтры безопасности были настроены правильно. Открыв вывод команды gpresult/ r, я обнаружил статус (Unknown reason).
Начав разбираться, все пришло к тому, что новые обновления Microsoft (KB3159398, KB3163017, KB3163018) закрывал одну нехорошую вещь, которая длилась с 2000 года. Проблема заключалась в том, что злоумышленник мог применять атаку "Человек посередине (Man in the Middle)", тем самым делать подмену ответа от контроллера домена на целевом компьютере, это выливалось в то, что он подделывал политику безопасности, которая давала ему права локального администратора для скомпрометированной учетной записи.
Microsoft долго билась с этой проблемой и пришла к решению поменять порядок считывания политики, теперь это могут делать только компьютеры домена. Раньше политики пользователя считывал пользователь, политики компьютера, компьютер. Установив KB3163622 теперь для считывания GPO используется только компьютер и если он не входит в фильтр безопасности политики, то она не применится (Подробнее можете посмотреть вот тут https://support.microsoft.com/en-us/help/3163622/ms16-072-security-update-for-group-policy-june-14-2016).
Исходя из данной ситуации, чтобы политики успешно применялись Microsoft предложило добавлять одну из групп безопасности в ACL политики "Прошедшие проверку" или "Все компьютеры". Переходим к ACL.
Фильтрация GPO через ACL (Запрет GPO)
И так фильтрацию в фильтре мы сделали, чтобы политика применилась нам необходимо выбрать политику и перейти на вкладку "Делегирование". Тут нам необходимо добавить одну из двух групп "Прошедшие проверку (Authenticated Users)" или "Все компьютеры (Domain Computers)". Я добавляю первую. Нажимаем кнопку "Добавить" и находим нашу группу.
Уровень прав оставляем "Чтение", этого будет достаточно.
Пробуем проверить применение нашей политики. В качестве испытуемого у меня идет виртуальная машина с Windows 10. После загрузки, я открываю командную строку и смотрю применение политики, для этого пишем команду:
В итоге я вижу, что среди примененных объектов групповой политики, моя "Настройка MaxTokenSize" в списке присутствует.
Если бы пользователь не был членом группы, которая фигурирует с фильтре безопасности, то мы видели бы вот такую картину, что следующие политики GPO не были применены, так как они отфильтрованы по причине отказано (Безопасность). Как видим нет прав на чтение.
Еще вкладку "Делегирования" используют и для запрещения, простой пример вы сделали политику которая для всех пользователей домена применяет корпоративные обои на рабочий стол. Допустим, что вам для администраторов домена или для круга избранных нужно сделать так, чтобы к ним не применялась политика. Вы создаете группу и уже ей запрещаете чтение данной политики, хоть пользователи и будут по прежнему входить в группу "Прошедшие проверку", но прочитать они ее не смогут так как явный запрет для другой группы куда они входят, гораздо сильнее и приоритетнее чем права чтения.
Добавляем группу для которой хотим запретить применение политики, у меня это Forbidden MaxTokenSize.
Далее даем права "Чтение".
Далее нажимаем кнопку "Дополнительно", у вас откроется окно параметром безопасности. Тут вы выбираете нужную вам группу, для которой вы хотите запретить применение групповой политики и ставите галку "Запретить". В таком случае данная группа будет получать при попытке считать GPO "Отказано (безопасность)".
Фильтрация GPO по WMI
Еще одним действенным методом фильтровать получателей групповой политики, это использование WMI фильтров. Мы с вами их уже применяли, когда нужно было применить политику только к ноутбукам.
Простой пример вы создали политику и хотели бы ее применить скажем только на компьютеры у кого установлена операционная система Windows 7. Для нашей задачи нам необходимо создать WMI фильтр, для этого перейдем в "Фильтры WMI", где выбираем соответствующий пункт.
Задаем имя WMI фильтра, после чего нажимаем кнопку "Добавить". Откроется окно для составления запроса. Конструкция для Windows 7 будет такая:
Номера для Win32_OperatingSystem
- Windows Server 2019\Windows 10 1809 - 10.0.17763
- Window Server 2016\Windows 10 — 10.0
- Window Server 2012 R2\Windows 8.1 — 6.3
- Window Server 2012\Windows 8 — 6.2
- Window Server 2008 R2\Windows 7 — 6.1
Тип продукта отвечает за назначение компьютера и может иметь 3 значения:
- 1 — рабочая станция;
- 2 — контроллер домена;
- 3 — сервер.
Вот вам пример вывода в PowerShell команды показывающей версию операционной системы:
Сохраняем наш WMI запрос.
Если хотите перед внедрение проверить будет ли применена групповая политика к нужному объекту, то можете провести тестирование в WMI Filter Validation Utility. Если все настроено корректно, но политика не применяется, почитайте по ссылке возможные варианты. Далее берем вашу политику и применяем к ней WMI.
Теперь если компьютер не соответствует критериям WMI фильтра, то вы увидите в gpresult /r /scope:computer вот такую запись (Отказано фильтр WMI)
Фильтрация через состояние GPO
Еще на вкладке "Сведения" есть такая настройка, как состояние GPO. Она необходима для ускорения обработки политики, путем отключения лишних веток. Например у вас политика исключительно на пользователя и вам смысла нет, чтобы компьютер при загрузке пытался прочитать настройки для компьютера, тратя на это время. В таких случаях отключают данный функционал. Тут есть варианты:
- Включено
- Все параметры отключены
- Параметры конфигурации компьютера отключены
- Параметры конфигурации пользователя отключены
На этом у меня все. Мы с вами разобрали все методы и механизмы фильтрации групповых политик, теперь вы готовы к любому сценарию. С вами был Иван Семин .автор и создатель IT портала Pyatilistnik.org.
Спасибо автору!!! Долгие годы не мог понять, почему не применялась групповая политика.. Добавил «Компьютеры домена», правда, вместо рекомендуемых вами и всё заработало как часы!!!
Очень, рад что смог вам помочь!
Здравствуйте, Иван, хотел бы попросить помочь разобраться с применением GPO для терминальных пользователей в в ферме терминальных серверов, тоже долго бьюсь за правильное(или хоть какое то) применение групповых политик, но заметил что на группы они никак не применяются, приходится создавать несколько OU, распределять туда пользователей и только так это работает и то не всегда, при переводе пользователя из одной OU в другую, за ним сохраняются ограничение прежнего OU, как это отменить в автоматическом порядке? Пока выкручиваюсь только созданием GP, которая принудительно отменяет пункты прежней OU. Спасибо за помощь.
существует ли вообще способ применить конфигурацию компьютера из ГПО только для определенной группы пользователей? у меня получается что если компьютер добавлен в разрешениях то параметры применяются для любого зашедшего пользователя, не помогает даже прямой запрет для пользователя на чтение политики — этот запрет действует только на параметры пользователя из ГПО, если же компьютер не добавлен в разрешения то параметры не применяются ни для кого, вне зависимости от разрешений пользователя
Да можно, вам нужно экспериментировать с замыканием GPO
можно, пожалуйста, подробней. я не знаком с термином «замыкание ГПО». перепробовал уже все что мог придумать — раздел для компьютера либо применяется ко всем пользователям либо ни к кому 🙁
почитал про замыкание:
«При включении опции Режим замыкания групповой политики (Loopback Processing mode) вы можете применить к компьютеру настройки, которые содержаться в секции GPO с настройками пользователями»
у меня же обратная задача: мне нужно применить для пользователя настройки которые содержатся в разделе для компьютера
Благодарю
Отсылка про группу безопасности «Прошедшие проверку» много нервов спасла.
Благодарю за статью.