LAPS: управление паролями локальных администраторов на компьютерах домена

В этой статье мы рассмотрим способ управления паролями локальных администраторов на компьютерах домена с помощью официальной утилиты Microsoft – LAPS (Local admin password solution).

Вопрос управления встроенными учетными записям на компьютерах домена является одним из важнейших аспектов безопасности, требующих внимание системного администратора. Безусловно, не стоит допускать использования одинаковых паролей локальных администраторов на всех компьютерах. Есть множество подходов к организации управления учетными записями локальных администраторов в домене: начиная от полного их отключения (не очень удобно), до управления ими через logon скрипты групповых политик и создания собственных систем управления встроенными учётками и их паролями.

Ранее для изменения паролей локальный администраторов на компьютерах домена часто использовались расширения групповых политик (GPP – Group Policy Preferences), однако в них была найдена серьезная уязвимость, позволяющая любому пользователю расшифровать пароль, хранящийся в текстовом файле в каталоге Sysvol на контроллерах домена (об это мы подробно говорили в статье Почему не стоит задавать пароли через Group Policy Preferences). В мае 2014 года Microsoft выпустила обновление безопасности (MS14-025 – KB 2962486), полностью отключающее возможность задать пароль локального пользователя через GPP.

Утилита LAPS — Local Administrator Password Solution

Важно. Ранее утилита LAPS называлась AdmPwd, но в 2015 года Microsoft анонсировала LAPS, переведя ее из раздела сторонних скриптов в официально поддерживаемое решение.

Утилита LAPS (Local Administrator Password Solution) позволяет централизованной управлять паролями администраторов на всех компьютерах домена и хранить информацию о пароле и дате его смены непосредственно в объектах типа Computer в Active Directory.

Функционал LAPS основан на использовании специального функционала GPO, который основан на Group Policy Client Side Extension (CSE) и представлеяет собой небольшой модуль, который устанавливается на рабочие станции. Данное расширение GPO используется для генерации уникального пароля локального администратора (SID — 500) на каждом компьютере домена. Пароль администратора автоматически меняется с указанной периодичностью (по-умолчанию, каждые 30 дней). Значение текущего пароля хранится в конфиденциальном атрибуте учетной записи компьютера в Active Directory, доступ на просмотр содержимого атрибута регулируется группами безопасности AD.

Скачать LAPS и документацию к ней можно с этой страницы: https://www.microsoft.com/en-us/download/details.aspx?id=46899

Дистрибутив LAPS доступен в виде двух версий установочных msi файлов: для 32 (LAPS.x86.msi) и 64 (LAPS.x64.msi) битных систем.

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

Совет. Перед развертыванием LAPS в продуктивном домене рекомендуем попробовать его в тестовой среде, т.к. как минимум потребуется расширение схемы AD (необратимое).

Установка LAPS

Запустите MSI файл утилиты на компьютере администратора, выберите все компоненты для установки (требуется наличие как минимум .Net Framework 4.0 – Как узнать какие версии .Net установлены). Пакет состоит из двух частей:

  1. AdmPwd GPO Extension –исполняемая часть LAPS, которая устанавливается на компьютеры клиентов и осуществляет генерацию, сохранение пароля в домене согласно настроенной политики;
  2. И компоненты управления LAPS (Management Tools):
    • Fat client UI – утилита для просмотра пароля администратора;
    • PowerShell module – модуль PowerShell для управления LAPS;
    • GPO Editor templates – административные шаблоны для редактора групповой политики.

Параметры установки LAPSУстановка LAPS максимально простая и не должна вызывать каких-либо проблем.

Подготовка схемы Active Directory для внедрения LAPS

Перед развертыванием LAPS необходимо расширить схему Active Directory, в которую будут добавлены два новых атрибута для объектов типа компьютер.

  • ms—MCS—AdmPwd– атрибут содержит пароль локального администратора в открытом виде;
  • ms—MCS—AdmPwdExpirationTime — хранит дату истечения срока действия пароля на компьютере.

Для расширения схемы, нужно открыть консоль PowerShell, импортировать модуль Admpwd.ps:

Import-module AdmPwd.ps

Import-module AdmPwd.ps

Расширьте схему Active Directory (нужны права Schema Admin):

Update-AdmPwdADSchema Update-AdmPwdADSchema - расширение схемы

В результате в класс «Computer» будут добавлены два новых атрибута.

Настройка прав в AD на атрибуты LAPS

LAPS хранит пароль локального администратора в атрибуте Active Directory ms-MCS-AdmPwd в открытом виде, доступ к атрибуту ограничивается благодаря механизму конфиденциальных атрибутов AD (поддерживается с Windows 2003). Атрибут ms-MCS-AdmPwd, в котором хранится пароль, может быть прочитан любым обладателем разрешения “All Extended Rights”. Пользователи и группы с этим разрешением могут читать любые конфиденциальные атрибуты AD, в том числе ms-MCS-AdmPwd. Т.к. мы не хотим, чтобы кто-то кроме администраторов домена (или служб HelpDesk) имел право на просмотр паролей для компьютеров, нам нужно ограничить список групп с правами на чтение этих атрибутов.

С помощью командлета Find-AdmPwdExtendedRights можно получить список учетных записей и групп, обладающих этим правом на конкретную OU. Проверьте, кто обладает подобными разрешениями на OU с именем Desktops:

Find-AdmPwdExtendedRights -Identity Desktops | Format-Table ExtendedRightHolders

Find-AdmPwdExtendedRightsКак вы видите, право на чтение конфиденциальных атрибутов есть только у группы Domain Admins.

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

  1. Откройте ADSIEdit и подключитесь к Default naming context;ADSIEdit connect Default Naming Context
  2. Разверните дерево AD, найдите нужный OU (в нашем примере Desktops), щелкните по нему ПКМ и выберите Properties;Свойства OU
  3. Перейдите на вкладку Security, нажмите на кнопку Advanced -> Add. В разделе Select Principal укажите имя группы/пользователя, для которого нужно ограничить права (например, domain\Support Team);Отключаем All extended rights
  4. Снимите галку у права “All extended rights” и сохраните изменения.

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

Совет. Ограничить права на чтение придется на все OU, паролями компьютеров в которых будет управлять LAPS.

Далее нужно предоставить права учетным записям компьютеров на модификацию собственных атрибутов (SELF), т.к. изменение значений атрибутов ms-MCS-AdmPwd и ms-MCS-AdmPwdExpirationTime выполняется из-под учетной записи самого компьютера. Воспользуемся еще одним командлетом Set-AdmPwdComputerSelfPermission.

Чтобы дать права компьютерам в OU Desktops на обновление расширенных атрибутов, выполните команду:

Set-AdmPwdComputerSelfPermission -OrgUnit Desktops

Set-AdmPwdComputerSelfPermission

Новые атрибуты LAPS компьютеров по умолчанию не реплицируются на контроллеры домена RODC.

Предоставление прав на просмотр пароля LAPS

Следующий этап – предоставление прав пользователям и группам на чтение хранящихся в Active Directory паролей локальных администраторов на компьютерах домена. К примеру, вы хотите дать членам группы AdmPwd права на чтение паролей компьютеров в OU:

Set-AdmPwdReadPasswordPermission -OrgUnit Desktops -AllowedPrincipals AdmPwd

Set-AdmPwdReadPasswordPermissionКроме того, можно предоставить отдельной группе пользователей право на сброс пароля компьютера (в нашем примере мы предоставляем это право той же группе AdmPwd).

Set-AdmPwdResetPasswordPermission -OrgUnit Desktops -AllowedPrincipals AdmPwd
Set-AdmPwdComputerSelfPermission

Настройка групповой политики LAPS

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

Для удобства управления вы можете скопировать файлы административных шаблонов LAPS (%WINDIR%\PolicyDefinitions\AdmPwd.admx и %WINDIR%\PolicyDefinitions\en-US\AdmPwd.adml) в центральное хранилище GPO\\winitpro.ru\Sysvol\Policies\PolicyDefinition.

Создайте политику с именем Password_Administrador_Local следующей командой:

Register-AdmPwdWithGPO -GpoIdentity: Password_Administrador_Local

Register-AdmPwdWithGPOВ консоли управления доменными политиками (gpmc.msc) откройте эту политику на редактирование и перейдите в раздел GPO: : Computer Configuration -> Administrative Templates -> LAPS.

LAPS параметры GPOКак вы видите, имеются 4 настраиваемых параметра политики. Настройте их следующим образом:

  • Enable local admin password managementEnabled (включить политику управления паролями LAPS);
  • Password SettingsEnabled – в политике задается сложности пароля, его длина и частота изменения (по аналогии с доменными политиками для паролей пользователей);
    • Complexity: Large letters, small letters, numbers, specials
    • Length: 12 characters
    • Age: 30 days
  • Name of administrator account to manageNot Configured (Здесь указывается имя учетной записи администратора, пароль которой будет меняться. по умолчанию меняется пароль встроенного administrator с SID-500);
  • Do not allow password expiration time longer than required by policyEnabled

Политика управления паролями

Назначьте политику Password_Administrador_Local на OU с компьютерами (Desktops).

Установка LAPS на клиентские компьютеры через GPO

После настройки GPO нужно установить клиентскую часть LAPS на компьютеры в домене. Установить клиент LAPS можно различными способами: вручную, через задание SCCM, логон скрипт и т.п. В нашем примере мы установим msi файл с помощью возможности установки msi пакетов через групповые политики (GPSI).

  1. Создайте общую папку в сетевом каталоге (или в папке SYSVOL на контроллере домена), в которую нужно скопировать msi файлы дистрибутива LAPS;
  2. Создайте новую GPO и в разделе Computer Configuration ->Policies ->Software Settings -> Software Installation создайте задание на установку MSI пакета LAPS.Установка LAPS на компьютеры домена с помощью GPO
Обратите внимание, что имеются x86 и x64 версия LAPS для Windows соответствующих разрядностей. Для этого вы можете сделать 2 отдельные политики LAPS с WMI фильтрами GPO для x86 и x64 редакций Windows.

Осталось назначить политику на нужную OU, и после перезагрузки, на всех компьютерах в целевом OU должен установиться клиент LAPS.

Проверьте, что списке установленных программ в Панели Управления (Programs and Features) появилась запись “Local admin password management solution”.

Local admin password management solutionКогда утилита LAPS меняет пароль локального администратора, запись об этом фиксируется в журнале Application (Event ID:12, Source: AdmPwd).

Event ID:12, Source: AdmPwdСобытие сохранения пароля в атрибуте AD также фиксируется (Event ID:13, Source: AdmPwd).

Event ID:13, Source: AdmPwdВот так выглядят новые атрибуты у компьютера в AD.

Атрибут ms-MCS-AdmPwd и значени пароля администратора компьютера

Совет. Время истечения срока действия пароля хранится в формате «Win32 FILETIME», сконвертировать его в нормальный вид можно, к примеру так.

Использование утилиты LAPS для просмотра пароля администратора

Графическую утилиту AdmPwd UI для просмотра паролей LAPS нужно установить на компьютерах администраторов.

admpwduiЗапустите утилиту, введите имя компьютера (в поле computername), и вы должны увидеть текущий пароль локального администратора компьютера и срок действия.

LAPS-UI - утилита получения пароля компьютера

Дату истечения пароля срока действия пароля можно задать вручную, либо оставить поле с датой пустым и нажав кнопку Set (это означает, срок действия пароля уже истек).

Пароль также можно получить с помощью PowerShell:

Import-Module AdmPwd.PS
Get-AdmPwdPassword -ComputerName <computername>

Get-AdmPwdPassword

Если вы считаете, что пароли локальных администраторов на всех компьютерах в некотором OU скомпрометированы, вы можете одной командой сгенерировать новые пароля для всех компьютеров в OU. Для этого нам понадобится командлет Get-ADComputer:

Get-ADComputer -Filter * -SearchBase “OU=Computers,DC=MSK,DC=winitpro,DC=ru” | Reset-AdmPwdPassword -ComputerName {$_.Name}

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

Get-ADComputer -Filter * -SearchBase “OU=Computers,DC=MSK,DC=winitpro,DC=ru” | Get-AdmPwdPassword -ComputerName {$_.Name}

LAPS можно рекомендовать как удобное решение для организации безопасной системы управления паролями на компьютерах домена с возможностью гранулированного управления доступом к паролям компьютерам из разных OU. Пароли хранятся в атрибутах Active Directory в открытом виде, но встроенные средства AD позволяют надежно ограничить к ним доступ.

Также рекомендуем познакомиться со статьей Защита учетных записей администраторов в сети Windows.

Предыдущая статья Следующая статья


Комментариев: 37 Оставить комментарий

Оставить комментарий

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

Я не робот( Обязательно отметьте)