Гранулированные политики паролей или PSO в действии

pso-01Одна из актуальных тем во многих организациях – это обеспечение своих пользователей безопасными паролями, с чем у большинства пользователей огромные проблемы. Ведь никому не хочется генерировать сложные пароли, несмотря на то, что в компаниях может быть информация, к которой будут пытаться получить доступ злоумышленники, а такого пароля как 111, 123, qwerty и т.п. казалось бы, более чем достаточно. А если пользовательские учетные записи взломают и будут украдены какие-то данные, скорее всего, виноватым окажется ИТ-подразделение, так как не было внедрено должных средств по обеспечению безопасности.

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

Чем так плохи политики паролей?

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

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

Поэтому, не пытайтесь настраивать данные параметры политики для разных подразделений. В этом нет никакого смысла. Параметры политики паролей и блокировки учетных записей вы можете настраивать лишь в одном объекте групповой политики для каждого домена. Так как по умолчанию уже заданы некоторые настройки в объекте групповой политики Default Domain Policy, лучше всего, вносите изменения в данные параметры именно для этого объекта групповой политики.

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

Если учесть это ограничение, то можно прийти к выводу, что в большинстве случаев, это очень плохо, так как всегда находятся какие-либо подразделения, для которых необходимо установить более жесткие ограничения. Например, скажем, юристам компании может понадобиться, чтобы их пароли были не менее 10 знаков и изменять такие пароли необходимо пользователям каждый 20 дней. Так есть ли какое-то средство, позволяющее задавать исключения, для уже существующих политик пролей?

Гранулированные политики паролей

pso-02Для этой цели, еще в операционной системе Windows Server 2008 появилась такая замечательная функциональная возможность, которая называется гранулированная политика паролей. Данный компонент операционной системы позволяет вам вывести определение ограничений для паролей в своей организации на, существенно, новый и более серьезный уровень. Другими словами, при помощи гранулированных политик паролей вам предоставляется возможность создавать различные коллекции параметров паролей и блокировки учетных записей для выбранных вами пользователей или групп пользователей. Соответственно, если вы не хотите, чтобы для всех ваших пользователей применялись идентичные параметры паролей, данная функциональная возможность была разработана именно для вас!

Рассмотрим, какие факторы влияют на гранулированные политики паролей.

Прежде всего, гранулированные политики паролей применяются для определенных объектов учетных записей пользователей или групп безопасности. Это обязательно следует учесть, так как если вы захотите применить такие политики паролей на подразделение, которое содержит объекты пользователей, состоящих в разных группах безопасности, создайте для таких пользователей теневые группы. Например, вам будет удобнее, если теневые группы будут названы так же, как и сами подразделения. В таком случае, вам будет существенно проще локализовать их. Естественно, это делать не обязательно, а создание теневых групп – это просто моя небольшая рекомендация. В двух словах напомню, что же такое теневая группа.

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

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

Самое важное, что следует отметить. Для использования этой функциональной возможности, так это то, что домен просто обязан работать на функциональном уровне Windows Server 2008.

В следующем разделе рассмотрим, каким именно образом применяются гранулированные политики паролей.

Распространение гранулированных политик паролей

Несмотря на то, что большинство моих статей посвящено именно групповой политике, следует обратить внимание на тот момент, что, несмотря на аналогичные параметры с теми, которые определяются в политиках паролей, настройки гранулированных политик паролей невозможно найти ни в оснастке «Редактор управления групповыми политиками», ни в оснастке «Управление групповой политикой». Соответственно, для распространения этой замечательной функциональной возможности следует использовать объект параметров политики, то есть, Password Settings Object, PSO.

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

  • Так как объекты PSO должны где-то располагаться, в родительском контейнере System контейнера домена есть специализированный контейнер Password Settings Container, содержащий все объекты параметров политики, которые вы будете создавать.
  • И сами объекты параметров политики, которые содержат полный набор параметров паролей и блокировки учетных записей. Такие объекты имеют право создавать администраторы, состоящие в группах «администраторы домена». Привязываются такие объекты, как я уже сказал, к пользователям или к глобальным группам безопасности.

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

  1. Для начала откройте оснастку «Редактор ADSI»;
  2. Затем, из контекстного меню узла «Редактирование ADSI» выберем команду «Подключение к»и в соответствующем диалоговом окне подключимся к домену, то есть, в текстовом поле следует указать наименование вашего домена, как показано на следующей иллюстрации:pso-03Рис. 1. Подключение к домену
  3. После этого необходимо развернуть контейнер с именем домена, контейнер System и перейти к контейнеру Password Settings Container;
  4. Теперь щелкните правой кнопкой мыши на этом контейнере и из контекстного меню выберите команды «Создать» и «Объект»;
  5. Прежде всего, в отобразившемся диалоговом окне создания объекта следует выбрать класс создаваемого объекта. Тут все очень просто. Так как для выбора предоставляется всего лишь один класс «msDSPasswordSettings», выберите именно его и нажмите на кнопку «Далее»;pso-04Рис. 2. Выбор класса создаваемого объекта
  6. Для начала, на следующей странице мастера создания объекта следует указать значение для атрибута «CommonName». Этот атрибут определяет имя нового объекта PSO и в качестве значения указывается строка с юникодными символами. Например, пусть этот объект будет называться «LawyersPasswords». В соответствующее текстовое поле следует ввести его название, а затем нажать на кнопку «Далее»;
  7. На очередной странице мастера нужно указать значение для атрибута «msDSPasswordSettingsPrecedence». Данный атрибут определяет приоритет параметров паролей, который используется в том случае, если для выбранных вами пользователей указываются несколько объектов PSO.В функциональных возможностях групповой политики есть такое понятие, как приоритеты. В случае с объектами параметров паролей тут можно провести некую аналогию. Несмотря на то, что объект PSO привязывается к нескольким группам или пользователям, то, соответственно, с определенным пользователем в какой-то момент могут быть связаны несколько объектов PSO. В этом нет ничего странного. Вот смотрите: параметры политики паролей к любому пользователю могут применяться лишь один раз и такой объект PSO, который будет применяться к определенному пользователю или, соответственно, группе пользователей, называется результирующим. И получается, чтобы определить, какой объект является результирующим, нужно устанавливать значение текущего атрибута для каждого объекта PSO. Чтобы определить приоритет, значение данного атрибута должно быть больше нуля, причем, наивысшим приоритетом будет значение 1. Ну и, получается, если к пользователю могут применяться несколько объектов параметров политики гранулированных политик паролей, превалировать будет объект с максимальным значением. Если же возникнет такая ситуация, когда значения приоритетов будет одинаковыми, в том случае, будет выбираться тот объект, глобальный идентификатор GUID которого будет минимальным. Следовательно, устанавливается приоритет, например «1», а затем для перехода на следующую страницу мастера, нужно нажать на кнопку «Далее»;pso-05Рис. 3. Определение приоритета для объекта PSO
  8. Следующий атрибут, который вам предложит указать мастер, называется msDSPasswordReversibleEncriptionEnabled. Этот атрибут отвечает за обратимое шифрование. Как вы знаете, используя обратимое шифрование, уровень безопасности паролей и всего домена в частности значительно понижается. Так как использование этой функции аналогично хранению пароля в открытом виде, будьте осторожны и используйте этот параметр только в случаях крайней необходимости, например, если этого требуют какие-то приложения. Соответственно, значениями данного параметра могут быть True и False. Так как в инфраструктуре данной фиктивной компании нет таких приложений, и корпоративная политика безопасности строго запрещает выполнять такие действия, в текущем примере указывается значение False;
  9. Теперь на очередной странице мастера вам предоставляется возможность определить значение атрибута msDSPasswordHistoryLength, отвечающего за ведение журнала паролей и, соответственно, за количество паролей этого журнала. Значение может варьироваться от нуля до 1024. Например, установим значение 25 и перейдем к следующей странице мастера. Данная страница мастера отображена ниже:pso-06Рис. 4. Атрибут, отвечающий за ведение журнала паролей
  10. Атрибут msDSPasswordCoomplexityEnabled, значение которого можно указать на следующей странице мастера, определяет состояние сложности пароля. То есть, указав значение True, вы выберите то же значение, если бы вы указали значение «Включить» для параметра политики «Пароль должен отвечать требованиям сложности». Поэтому, обязательно устанавливайте значение для данного атрибута True;
  11. Очередной атрибут данного объекта, а именно атрибут msDSMinimumPasswordLength, отвечает за минимальную длину пользовательского пароля. В данном случае, вы можете указать значение от 0 до 255 знаков. Допустим, что у юристов пароль должен составлять не менее 10 знаков, поэтому следует установить значение равным 10 и можно переходить к следующему атрибуту;
  12. При помощи следующего атрибута — атрибута msDSMinimumPasswordAge, вы указываете срок действия пароля, в течение которого ваши пользователи могут использовать и, соответственно, не могут изменять пароль. Значение должно указываться в формате, который видно на следующей иллюстрации. Установим 24 дня для этого атрибута. Соответственно, следует указать 24:00:00:00, что означает 24 дня, 0 часов, 0 минут и 0 секунд:pso-07Рис. 5. Определение минимального срока действия пароля
  13. А вот атрибут msDSMaximumPasswordAge определяет максимальный срок действия пароля до его изменения. Например, можно указать значение, равное 25 дням, то есть 25:00:00:00;
  14. Следующий атрибут, а именно, атрибут msDSLockoutTreshold определяет пороговое значение включения блокировки пользователя. То есть, здесь указывается количество попыток ввода пароля до блокировки последней. Например, нормально будет, если указать для этого атрибута значение, скажем, 3 и можно переходить к следующему атрибуту;
  15. Атрибут msDSLockoutObservationWindowsпозволяет вам указать промежуток времени перед сбросом порогового значения блокировки согласно указанному на предыдущей странице мастера количеству неправильно введенных паролей. Можно указывать значение от одной секунды. Например, если нужно установить значение, равное 45 минут, следует указать 0:00:45:00:pso-08Рис. 6. Атрибут, позволяющие указать промежуток времени перед сбросом порогового значение блокировки
  16. Очередной атрибут, который называется msDSLockoutDuration, определяет, как долго будет заблокирована учетная запись до автоматического снятия блокировки. Допустим, установим значение в 6 часов, то есть, 0:06:00:00;
  17. И вот, наконец-то, на последней странице мастера вы можете просмотреть и добавить дополнительные атрибуты, или же завершить настройку объекта PSO. На следующей иллюстрации видно, что для класса msDS-PasswordSettings вы можете выбрать до 112 атрибутов. Следовательно, вы можете задать настолько гибкие настройки, насколько только позволит ваша фантазия Улыбка;pso-09Рис. 7. Дополнительные атрибуты
  18. Для создания объекта следует нажать на кнопку «Готово». После закрытия мастера в данном контейнере появится первый объект PSO;
  19. Теперь осталось привязать данный объект к группе юристов. Для этого нужно открыть диалоговое окно свойств данного объекта PSO, локализовать атрибут msDSPSOAppliesTo и на нем дважды щелкнуть. Затем, в отобразившемся диалоговом окне «Редактор многозначных различаемых имен участников безопасности» следует нажать на кнопку «Добавить учетную запись Windows» и в диалоговом окне поиска выбрать группу безопасности. В данном примере это группу «Юристы». Как видно на следующей иллюстрации, в редакторе атрибутов отображается идентификатор безопасности SID данной группы:

pso-10

Рис. 8. Изменение атрибута в существующем объекте PSO

Теперь осталось проверить, применился ли объект PSO на выбранную группу. Для этого нужно открыть оснастку «ActiveDirectory – пользователи и компьютеры» и в отобразившейся оснастке в меню «Вид» включить отображение дополнительных компонентов. Далее нужно локализовать пользователя, который входит в группу юристов. Откройте диалоговое окно свойств данной группы и перейдите на вкладку «Редактор атрибутов». Так как атрибут объекта PSO является построенным, следует, нажав на кнопку фильтра, выбрать команду «Построенные», а после этого локализовать атрибут msDS-ResultantGPO, который видно ниже:

pso-11

Рис. 9. Редактор атрибутов учетной записи пользователя

А как же PowerShell?

Как вы знаете, возможности Windows PowerShell практически безграничны. Большинство задач, которые выполняются посредствам графического интерфейса можно автоматизировать, написав скрипт и гранулированные политики паролей тут не исключение. Для управления гранулированными политиками паролей непосредственно при помощи PowerShell используются четыре командлета. Посмотрим, как можно добавить новый объект PSO средствами PowerShell.

Прежде всего, открыв консоль PowerShell вам необходимо импортировать модуль Active Directory, так как в противном случае вы просто не сможете воспользоваться возможностями создания PSO. Для этого необходимо выполнить следующий командлет:

ImportModuleActiveDirectory

После того как модуль будет импортирован, вы сможете воспользоваться всеми преимуществами PowerShell, предназначенными по администрированию Active Directory. Для создания объекта PSO используется командлет New-ADFineGrainedPasswordPolicy. Этот комндлет не позволяет изменить все сто с лишним атрибутов создаваемого объекта, однако, вы можете создать объект, согласно всем шагам мастера, о которых шла речь в предыдущем разделе этой статьи. Однако, вы можете как создавать объекты PSO при помощи соответствующих параметров, так и создавать объекты на основании заранее предустановленного шаблона, используя параметр –Instance или создавать объекты на основании значений, импортируемых из CSV-файла.

Например, чтобы создать объект PSO простейшим, первым методом, можно выполнить в PowerShell следующее:

 

New-ADFineGrainedPasswordPolicy -Name «Marketing_PSO» -Precedence 2 -ComplexityEnabled $true -Description «ОбъектPSO длягруппымаркетологов»-DisplayName «Marketing_PSO» -LockoutDuration «0.8:00:00″ -LockoutObservationWindow «0.00:15:00» -LockoutThreshold 5 -MaxPasswordAge «45.00:00:00″ -MinPasswordAge «42.00:00:00″ -MinPasswordLength 8 -PasswordHistoryCount 25 -ReversibleEncryptionEnabled $false

Разберем параметры, которые могут быть сразу не так очевидны. Параметр –Precedence отвечает за приоритет создаваемого объекта, параметр –LockoutObservationWindow – это максимальный интервал времени между неудачными попытками входа перед тем, как счетчик будет сброшен, а параметр –ReversibleEncryptionEnabled отвечает за обратимое шифрование. Как видите, все просто.

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

Приведу лишь один пример использования этих командлентов, предназначенный для поиска всех созданных ранее объектов PSO. В этом случае вам следует выполнить следующее:

Get-ADFineGrainedPasswordPolicy -Filter ‘Name -like «*»‘ | ft Name, Precedence,MaxPasswordAge,MinPasswordLength –A

 

Как видно на следующей иллюстрации, у меня было обнаружено два объекта PSO, которые были созданы ранее в этой статье:

pso-12

Рис. 10. Поиск всех объектов PSO при помощи PowerShell

В целом, гранулированные политики паролей предоставляют вам возможности, которые могут пригодиться в том случае, если требуется, чтобы у пользователей, состоящих в различных группах безопасности, были параметры паролей, отличные от указанных по умолчанию для всех пользователей в домене. Но и даже при применении объектов PSO, ваши пользователи все равно смогут создавать простые пароли. Например, пароль P@ssw0rd и ему подобные могут подойти по всем условиям, однако, этот пароль легко взламывается.

Pin It

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.