Андрей Смирнов
Время чтения: ~17 мин.
Просмотров: 0

Локальная политика безопасности. часть 1: введение

Алгоритм устранения проблем с GPO

Предположим, что у меня есть групповая политика, которая применяется на организационное подразделение «Client Computers». Политика называется «Управление UIPI». По какой-то причине пользователь жалуется, что она у него не применилась.

Из информации, об области действия групповой политики, первое на что нужно обратить свое внимание, это находится ли объект пользователя или компьютера по нужному пути. Сделать, это просто в оснастке «Управление групповой политикой» найдите вашу политику и посмотрите к каким OU она применяется, это видно на вкладке «Область (Scope)», ее еще называют областью действия политики

В моем случае, это путь root.pyatilistnik.org/Client Computers.

Так как Active Directory, это иерархическая структура, то одна OU можете быть часть дерева из других и сама включать в себя большое количество организационных подразделений. Поэтому если у вас есть вложенность, то просто зайдя в нужную OU вы можете сразу не найти нужный объект. В таком случае воспользуйтесь поиском по Active Directory. Например у меня есть рабочая станция с которой идут жалобы на применение объекта GPO. В поиске выбираем в поле «Найти» компьютеры и в имени указываем w10-cl01, после чего нажимаем «Найти». В результатах поиска вы получите выдачу. Щелкаем по нужному объекту и переходим в нем на вкладку «Объект», где смотрим «Каноническое имя объекта», по сути это его путь расположения в Active Directory. Сравниваем его с тем, что получили из области применения групповой политики и делаем вывод, попадает объект под действие или нет.

Далее убедитесь, что у вас элементарно включена связь объекта групповой политики с нужным организационным подразделением. Для этого в оснастке управления GPO, щелкните правым кликом по нужной политике и в контекстном меню проверьте, что установлена галка «Связь включена», ее так же можно проверить на вкладке «Область» в столбце «Связь задействована», должно стоять значение «да».

Следующим моментом необходимо проверить, что политика не отключена на определенный объект. Для этого перейдите на вкладку «Сведения» на нужной GPO. Нас интересует строка «Состояние GPO». По умолчанию там стоит значение «Включено», означающее, что политика будет пытаться примениться заданные в ней настройки к обоим типам объектов (Пользователю и компьютеру). Но может быть выставлено значение:

  • Параметры конфигурации компьютера отключены (Computer configuration settings disabled)
  • Параметры конфигурации пользователя отключены (User configuration settings disabled)
  • Все параметры отключены (All setting disabled) — запретит применение политики для любого объекта

Выше я вам писал, что структура OU иерархическая, а это означает, что политика прилинкованная с вышестоящего организационного подразделения применяется на нижестоящее. Но вот если у нижестоящей OU отключено наследование сверху, то он не сможет применить данную политику. Проверяется очень просто, найдите нужную вам OU, щелкните по ней правым кликом и удостоверьтесь, что не стоит пункт «Блокировать наследование».

Он кстати будет иметь характерный значок с восклицательным знаком. Данный механизм создан специально, чтобы изолировать данную OU от ненужных политик GPO.

Завершение работы удаленного компьютера

Чтобы выключить удаленный компьютер введите shutdown-s-m \имя компьютера в cmd и нажмите клавишу Enter. Замените «\имя компьютера», на фактическое имя удаленного ПК для попытки выключения. Как упоминалось ранее, вы должны иметь доступ администратора к компьютеру, который вы пытаетесь выключить. Чтобы узнать есть ли у вас административные права доступа, нажмите сочетание клавиш Windows + R, введите имя компьютера, далее нажмите клавишу Enter.

Примечание: если Вы не помните имя удаленного компьютера, вы можете отыскать его, открыв список всех подключенных ПК, выполнив net view в командной строке.

Если вы можете подключиться к компьютеру, вам надо ввести свое имя пользователя и пароль. Войдя в них, в окне будет показан список всех директорий, доступных для Вас. Это должно помочь узнать, можно или нельзя выключить удаленный компьютер.

Используйте выражение типа «shutdown -a», для отката выключения. Это приведет к остановке отключения системы, завершение работы, в том случае, если обратный отсчет времени не достиг 0.На этом все, надеюсь урок пошел на пользу и Вы уже знаете, как выключить компьютер из командной строки. Вы всегда должны помнить, что управление от имени администратора дает привилегии, а со всем другим не составляет особого труда разобраться!

Команда SHUTDOWN используется для завершения сеанса пользователя, перезагрузки компьютера, перевода его в спящий режим или выключения питания. При наличии соответствующих разрешений, команда может выполняться для удаленной системы.

Формат командной строки:

SHUTDOWN.EXE [/i | /l | /s | /r | /g | /a | /p | /h | /e] xx:yy ]

Если в командной строке не заданы параметры, или задан параметр /? — то на экран выдается краткая справка по использованию команды.

Вместо синтаксиса /ключ допускается использование -ключ :

SHUTDOWN.EXE xx:yy ]

Параметры командной строки:

/i — Отображение графического интерфейса пользователя. Этот параметр должен быть первым. /l — Завершение сеанса. Этот параметр нельзя использовать с параметрами /m или /d . /s — Завершение работы компьютера. /r — Завершение работы и перезагрузка компьютера. /g — Завершение работы и перезагрузка компьютера. После перезапуска системы, запуск всех зарегистрированных приложений. /a — Отмена завершения работы системы. Этот параметр можно использовать только в период ожидания. /p — Немедленное отключение локального компьютера без предупреждения. Можно использовать с параметрами /d и /f . /h — Переключение локального компьютера в режим гибернации. Можно использовать с параметром /f . /e — Указание причины непредвиденного завершения работы компьютера. /o — Переход в меню дополнительных параметров загрузки и перезагрузка компьютера. Данный параметр допустим для Windows 8 и более поздних версий. Необходимо использовать в с параметром /r. /m \компьютер — Имя или IP-адрес конечного компьютера. /t xxx — Задание задержки в xxx секунд перед завершением работы компьютера. Допустимый диапазон: 0-315360000 (10 лет); значение по умолчанию: 30 секунд. Если период таймаута больше 0, применяется параметр /f . /c «комментарий» — Комментарий с причиной перезапуска или завершения работы. Наибольшая длина — 512 знаков. /f — Принудительное закрытие запущенных приложений без предупреждения пользователей. Параметр /f используется, если для параметра /t задано значение больше 0. /d xx:yy Необходимо указать причину для перезагрузки или выключения. «p» означает запланированную перезагрузку или завершение работы. «u» означает, что причина определяется пользователем. Если не задано ни «p», ни «u», перезагрузка или завершение работы являются незапланированными. xx является основным кодом причины (целое положительное число, меньшее 256). yy является вспомогательным кодом причины (целое положительное число, меньшее 65536).

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

Как разрешить запуск скриптов PowerShell с помощью Execution Policy?

Чтобы изменить текущее значение политики запуска PowerShell скриптов, используется командлет Set-ExecutionPolicy.

Например, разрешим запуск локальных скриптов:

Подтвердите изменение политики запуска PS1 скриптов, нажав Y или A.

Чтобы запрос не появлялся, можно использовать параметр Force.

Если вы установили значение политики PowerShell Execution Policy в Unrestricted, то при запуске удаленных скриптов из сетевых каталогов по UNC пути, скачанных из интернета файлов, все равно будет появляться предупреждение:

Security warning
Run only scripts that you trust. While scripts from the internet can be useful, this script can potentially harm your computer. If you trust this script, use the
Unblock-File cmdlet to allow the script to run without this warning message.
Do you want to run?
 Do not run  Run once  Suspend  Help (default is "D")

Как PowerShell различает локальные и удаленные скрипты? Все дело в идентификаторе зоны ZoneId, которую выставляет браузер в альтернативном потоке при загрузке файла (см. статью “Как Windows определяет, что файл скачан из Интернета?”). Вы можете разблокировать такой файл, поставив галку “Разблокирвать” в его свойствах или очиститься метку зоны с помощью комадлета  Unblock-File.

Также следует различать различные области действия политик выполнения скриптов PowerShell (scopes):

  • MachinePolicy – действует для всех пользователей компьютера, настраивается через GPO;
  • UserPolicy – действует на пользователей компьютера, также настраивается через GPO;
  • Process — настройки ExecutionPolicy действует только для текущего сеанса PowerShell.exe (сбрасываются при закрытии процесса);
  • CurrentUser – политика ExecutionPolicy применяется только к текущему пользователю (параметр из ветки реестра HKEY_CURRENT_USER);
  • LocalMachine – политика для всех пользователей компьютера (параметр из ветки реестра HKEY_LOCAL_MACHINE);

Область применения политики можно указать с помощью параметр Scope командлета Set-ExecutionPolicy. Например:

Проверим текущие настройки ExecutionPolicy для всех областей:

Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Bypass
CurrentUser Undefined
LocalMachine RemoteSigned

Значение политики выполнения, которые вы задаете с помощью командлета Set-ExecutionPolicy для областей CurrentUser и LocalMachine, хранятся в реестре. Например, выполните командлет:

Откройте ветку реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell и проверьте значение REG_SZ параметра ExecutionPolicy. Оно изменилось на Restricted (допустимые значения параметра Restricted, AllSigned, RemoteSigned, Bypass, Unrestricted и Undefined).

Аналогичные настройки для области CurrentUser находятся в разделе реестра пользователя HKEY_CURRENT_USER\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell.

Т.е. вы можете распространить нужные настройки политики исполнения скриптов через реестр с помощью Group Policy Preferences.

Отметим, что чаще всего в корпоративной среде используется ExecutionPolicy со значением AllSigned на уровне LocalMachine. Это обеспечивает максимальный баланс между безопасностью и удобством. Для личного пользования на компьютере можно использовать RemoteSigned. Ну а Bypass политику лучше использовать только для запуска отдельных задач (например для запуска скриптов через GPO или заданий планировщика).

Дистанционное выключение Windows сервера

Начнем с самого сложного. На практике реализовать надежный способ выключения windows машин по сети для меня оказалось сложнее, чем linux. Методов и подходов к решению данной задачи много. Я пробовал разные варианты и остановился на одном, который мне показался самым надежным, он сработал без проблем во всех случаях во время тестирования.

Обязательным условием удаленного выключения сервера является сетевой доступ к нему по rdp. Вы можете находится в локальной сети с ним, или пробросить rdp соединение редиректом со шлюза

Не важно, главное попасть в систему по rdp

Принцип работы удаленного отключения следующий:

  1. На компьютере или сервере создается пользователь, которому будет разрешено подключаться по rdp и завершать работу сервера.
  2. В автозагрузке этого пользователя будет скрипт для завершения работы.
  3. Пользователям, которые будут удаленно выключать сервер, дается специально подготовленный rdp клиент, который без всяких запросов будет подключаться нужным пользователем, у которого будет срабатывать скрипт на завершение работы.

Все достаточно просто, но на каждом этапе я сталкивался с проблемами, которые требовали не тривиального решения. Но обо все по порядку.

Итак, идем на север и создаем там простой bat файл следующего содержания:

Shutdown /p /d p:0:0 /f

Сохраняем файл и создаем пользователя, под которым будем выключать сервер. Не забудьте добавить этому пользователю разрешение подключаться по rdp. Если вы выключаете компьютер с десктопной системой, то прав обычного пользователя достаточно. Если же вам надо погасить Windows Server, то пользователя нужно либо сделать админа, либо дать ему права на разрешение выключение сервера через локальную политику безопасности. Живет эта политика по адресу — параметры безопасности — локальные политики — назначение прав пользователей — завершение работы системы.

Вот тут я напоролся на первые неприятности. Я назвал свой скрипт shutdown.bat

и очень долго не мог понять, почему он не срабатывает. При вводе командыshutdown с параметрами в консоли все отлично работало, но скрипт не запускался. Оказывается, его нельзя называть таким именем. После того, как переименовал в shut.bat, все отлично заработало. Какая-то нелепая загвоздка, но мне пришлось потратить немало времени, пока я разобрался, в чем тут дело.

Дальше заходим нашим новым пользователем, чтобы создались стандартные папки профиля и кладем скрипт автовыключения сервера ему в автозагрузку — C:\Users\shut-user\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup.

Теперь нам нужно настроить автоматический вход пользователя по rdp, чтобы выполнить удаленное завершение работы. Причем пользователь должен заходить на сервер без запроса имени и пароля. Штатными средствами rdp клиента windows это сделать невозможно. Даже если вы сохраните параметры, то при переносе настроек на другой компьютер нужно будет снова вводить пароль. Мне это не подходило.

Я пробовал использовать старую портированную версию rdp 5.2. Это последняя версия, где пароль в зашифрованном виде можно было хранить в файле настроек. Но при переносе этого файла на другой компьютер, все равно выскакивало окно с вводом пароля. Добиться полного автоматизма не получалось.

Но решение было найдено. Существует любопытный проект Remote Desktop Plus , который является надстройкой над rdp. С помощью этой надстройки можно передать параметры в rdp через командную строку, в том числе и имя пользователя с паролем. Мне это полностью подходит. Скачиваем файлик либо с сайта автора проекта, либо с моего. Я скопировал на всякий случай эту очень полезную утилиту. Кладем его в папку и создаем в этой же папке rem-shut.bat

файл следующего содержания:

Rdp.exe /v:10.10.5.14 /u:shut-user /p:pass123 /w:640 /h:480

Всего этого достаточно, чтобы выполнить дистанционное завершение работы на windows сервере. Пользователю необходимо передать 2 файла:

  • rdp.exe
  • rem-shut.bat

Важно, чтобы они лежали в одной папке. При запуске батника произойдет подключение rdp пользователя и выполнится скрипт завершения работы

Задача выполнена.

Meaning of Local security policy?

Local security policy is the error name that contains the details of the error, including why it occurred, which system component or application malfunctioned to cause this error along with some other information. The numerical code in the error name contains data that can be deciphered by the manufacturer of the component or application that malfunctioned. The error using this code may occur in many different locations within the system, so even though it carries some details in its name, it is still difficult for a user to pinpoint and fix the error cause without specific technical knowledge or appropriate software.

Security Compliance Toolkit

SCT — это не одна программа, а набор утилит. В них содержится основная функциональность  Security Compliance Manager, но сделано это более удобным для использования образом. Удобство заключается в следующем подходе: есть две основные программы, и к ним прилагаются политики и настройки операционной системы для каждой версии отдельно. По состоянию на январь 2020 года были доступны следующие файлы:

  • Windows Server 2012 R2 Security Baseline
  • Windows 10 Version 1507 Security Baseline
  • Windows 10 Version 1607 and Windows Server 2016 Security Baseline
  • Windows 10 Version 1709 Security Baseline
  • Windows 10 Version 1803 Security Baseline
  • Windows 10 Version 1809 and Windows Server 2019 Security Baseline
  • Windows 10 Version 1903 and Windows Server Version 1903 Security Baseline
  • Windows 10 Version 1909 and Windows Server Version 1909 Security Baseline
  • Microsoft Edge v80

Две основные программы:

  • PolicyAnalyzer
  • LGPO

Принудительный сброс настроек локальных GPO из командной строки

В этом разделе описан способ принудительного сброса всех текущих настроек групповых политик в Windows. Однако сначала опишем некоторые принципы работы административных шаблонов групповых политик в Windows.

Архитектура работы групповых политик основана на специальных файлах Registry.pol. Данные файлы хранят параметры реестра, которые соответствуют тем или иным параметрам настроенных групповых политик. Пользовательские и компьютерные политики хранятся в разных файлах Registry.pol.

  • Настройки конфигурации компьютера (раздел Computer Configuration) хранятся в %SystemRoot%\System32\ GroupPolicy\Machine\registry.pol
  • Пользовательские политики (раздел User Configuration)  —  %SystemRoot%\System32\ GroupPolicy\User\registry.pol

При загрузке компьютера система импортирует содержимое файла \Machine\Registry.pol в ветку системного реестра HKEY_LOCAL_MACHINE (HKLM). Содержимое  файла \User\Registry.pol импортируется в ветку HKEY_CURRENT_USER (HKCU) при входе пользователя в систему.

Консоль редактора локальных групповых политик при открытии загружает содержимое данных файлов и предоставляет их в удобном пользователю графическом виде. При закрытии редактора GPO внесенные изменения записываются в файлы Registry.pol. После обновления групповых политик (командой gpupdate /force или по-расписанию), новые настройки попадают в реестр.

Совет. Для внесения изменения в  файлы стоит использовать только редактор групповых политик GPO. Не рекомендуется редактировать файлы Registry.pol вручную или с помощью старых версий редактора групповой политики!

Чтобы удалить все текущие настройки локальных групповых политик, нужно удалить файлы Registry.pol в каталоге GroupPolicy. Сделать это можно следующими командами, запущенными в командной строке с правами администратора:

RD /S /Q "%WinDir%\System32\GroupPolicyUsers"

RD /S /Q "%WinDir%\System32\GroupPolicy"

После этого нужно обновить настройки политик в реестре:

gpupdate /force

Данные команды сбросят все настройки локальных групповых политик в секциях Computer Configuration и User Configuration.

Откройте консоль редактора gpedit.msc и убедитесь, что все политики перешли в состояние Не задано / Not configured. После запуска консоли gpedit.msc удаленные папки будут созданы автоматически с настройками по-умолчанию.

Настройка GPO Server 2012:

Для того что бы начать работу откройте «Панель управления»

Далее перейдите во вкладку «Администрирование»

В открывшимся окне щелкните по пункту «Управление ГП»

В объектах групповой политике вы увидите две политике по дефолту, именно их и будем редактировать. Для внесения изменений жмем ПКМ по «Default Domain Policy» и кликнем «Изменить»

Если мы развернем в конфигурации ПК папку Политики то увидим три подпапки это: конфигурация программ, конфигурация windows, административные шаблоны.

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

В свойствах «Минимальной длины пароля» вновь уберем переключатель и применим изменения

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

Но предупреждаю, как только вы внесете изменения в политику паролей Server 2012, безопасность вашей системы ухудшится, поэтому решайте сами!

Приведу еще один пример, допустим мы хотим запретить пользователю слушать любые аудио дорожки, за это будет отвечать служба «Windows Audio» которая находится в папке «Системные службы»

Но для начала откроем список локальных служб у пользователя, и сможем увидеть, что данная служба у него пока что запущена по умолчанию

Мы возвращаемся на контроллер домена и меняем параметр «Windows Audio» для этого кликаем по ней ПКМ и переходим в «Свойства»

Прежде всего включаем чекбокс «Определись следующий параметр политики» в режиме запуска ставим «Запрещен» далее «Применить»

Когда пользователь вновь войдет в систему то служба уже будет отключена и звук функционировать у него не будет.

На этом я заканчиваю рассказ о Group Police, возникающие вопросы по теме пишите в комментарии и не забываем подписываться на новости!

Добавление программы в исключения брандмауэра Windows 10

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

  • Через окно брандмауэра;
  • Окно брандмауэра Windows в режиме повышенной безопасности.

Через окно брандмауэра

  • Кликаем правой кнопкой мыши по значку меню «Пуск».
  • В выплывшем меню выбираем строку панель управления.
  • После появления окна панели управления в верхнем правом углу, в меню просмотр, следует выбрать вид крупные значки (если функция не установлена по умолчанию).
  • В окне выбираем «брандмауэр Windows» и делаем клик левой кнопкой мыши.
  • В окне брандмауэра по левой стороне будет меню, в нем выбираем «Разрешение взаимодействия с приложением или компонентом в брандмауэре Windows», после чего откроется окно «Разрешение обмена данными с приложениями в брандмауэре Windows».
  • Под внутренним окном с разрешенными программами находится кнопка «Разрешить другое приложение…»;
  • В окне «Добавление приложения» следует нажать кнопку «Обзор». Указываем место расположения файла.exe той программы, которую необходимо добавить в исключения. Пример: C:\Program Files\GOG Galaxy\Games\Gwent\Gwent.exe;
  • Окончив процедуру выбора программы в том же окне «Добавления приложения», нажав на кнопку «Типы сетей». В новом окне нужно отметить сеть (частную или общую), с которой будет разрешено взаимодействие приложения и нажать кнопку OK;
  • Как только совершили действия пунктов 7-8 и вернулись в окно «Добавления приложения» сохраняем настройки кнопкой «Добавить». Программа разрешена.

Окно брандмауэра Windows в режиме повышенной безопасности

Выполняем действия пунктов 1-4 из описания первого способа.

  • В окне брандмауэра по левой стороне будет меню, в нем выбираем «Дополнительные параметры», что откроет окно брандмауэра Windows в режиме повышенной безопасности;
  • В меню по левой стороне выбираем функцию «Правила для входящих подключений»;
  • Минуя центральную область окна, переходим к меню по правой стороне и нажимаем «Создать правило…»;
  • Открывается окно «Мастера создания правила», выбираем тип правила для программы. Щелкаем по «Далее»;
  • Указываем место расположения файла.exe той программы, которую необходимо добавить в исключения и подтверждаем;
  • После указанных действий следует в меню, указанном в пункте 3 данной инструкции выбрать «Правила для исходящих подключений» и выполнить действия пунктов 5-6 заново;

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

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

Рейтинг автора
5
Материал подготовил
Максим Иванов
Наш эксперт
Написано статей
129
Ссылка на основную публикацию
Похожие публикации