Официальная утилита 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
- Подготовка схемы Active Directory для внедрения LAPS
- Настройка прав в AD на атрибуты LAPS
- Предоставление прав на просмотр пароля LAPS
- Настройка групповой политики LAPS
- Установка LAPS на клиентские компьютеры через GPO
- Использование утилиты LAPS для просмотра пароля администратора
Утилита 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 (необратимое).
Запустите MSI файл утилиты на компьютере администратора, выберите все компоненты для установки (требуется наличие как минимум .Net Framework 4.0 – Как узнать какие версии .Net установлены). Пакет состоит из двух частей:
- AdmPwd GPO Extension –исполняемая часть LAPS, которая устанавливается на компьютеры клиентов и осуществляет генерацию, сохранение пароля в домене согласно настроенной политики;
- И компоненты управления LAPS (Management Tools):
- Fat client UI – утилита для просмотра пароля администратора;
- PowerShell module – модуль PowerShell для управления LAPS;
- GPO Editor templates – административные шаблоны для редактора групповой политики.
Установка LAPS максимально простая и не должна вызывать каких-либо проблем.
Подготовка схемы Active Directory для внедрения LAPS
Перед развертыванием LAPS необходимо расширить схему Active Directory, в которую будут добавлены два новых атрибута для объектов типа компьютер.
- ms—MCS—AdmPwd– атрибут содержит пароль локального администратора в открытом виде;
- ms—MCS—AdmPwdExpirationTime — хранит дату истечения срока действия пароля на компьютере.
Для расширения схемы, нужно открыть консоль PowerShell, импортировать модуль Admpwd.ps:
Import-module AdmPwd.ps
Расширьте схему Active Directory (нужны права Schema Admin):
В результате в класс «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
Как вы видите, право на чтение конфиденциальных атрибутов есть только у группы Domain Admins.
Ели вам нужно запретить определенным группам или пользователям доступ на чтение таких атрибутов, нужно выполнить следующее:
- Откройте ADSIEdit и подключитесь к Default naming context;
- Разверните дерево AD, найдите нужный OU (в нашем примере Desktops), щелкните по нему ПКМ и выберите Properties;
- Перейдите на вкладку Security, нажмите на кнопку Advanced -> Add. В разделе Select Principal укажите имя группы/пользователя, для которого нужно ограничить права (например, domain\Support Team);
- Снимите галку у права “All extended rights” и сохраните изменения.
Аналогичным образом нужно поступить со всеми группам, которым нужно запретить право на просмотр пароля.
Далее нужно предоставить права учетным записям компьютеров на модификацию собственных атрибутов (SELF), т.к. изменение значений атрибутов ms-MCS-AdmPwd и ms-MCS-AdmPwdExpirationTime выполняется из-под учетной записи самого компьютера. Воспользуемся еще одним командлетом Set-AdmPwdComputerSelfPermission.
Чтобы дать права компьютерам в OU Desktops на обновление расширенных атрибутов, выполните команду:
Set-AdmPwdComputerSelfPermission -OrgUnit Desktops
Предоставление прав на просмотр пароля LAPS
Следующий этап – предоставление прав пользователям и группам на чтение хранящихся в Active Directory паролей локальных администраторов на компьютерах домена. К примеру, вы хотите дать членам группы AdmPwd права на чтение паролей компьютеров в OU:
Set-AdmPwdReadPasswordPermission -OrgUnit Desktops -AllowedPrincipals AdmPwd
Кроме того, можно предоставить отдельной группе пользователей право на сброс пароля компьютера (в нашем примере мы предоставляем это право той же группе AdmPwd).
Set-AdmPwdResetPasswordPermission -OrgUnit Desktops -AllowedPrincipals AdmPwd
Настройка групповой политики 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
В консоли управления доменными политиками (gpmc.msc) откройте эту политику на редактирование и перейдите в раздел GPO: : Computer Configuration -> Administrative Templates -> LAPS.
Как вы видите, имеются 4 настраиваемых параметра политики. Настройте их следующим образом:
- Enable local admin password management: Enabled (включить политику управления паролями LAPS);
- Password Settings: Enabled – в политике задается сложности пароля, его длина и частота изменения (по аналогии с доменными политиками для паролей пользователей);
- Complexity: Large letters, small letters, numbers, specials
- Length: 12 characters
- Age: 30 days
- Name of administrator account to manage: Not Configured (Здесь указывается имя учетной записи администратора, пароль которой будет меняться. по умолчанию меняется пароль встроенного administrator с SID-500);
- Do not allow password expiration time longer than required by policy: Enabled
Назначьте политику Password_Administrador_Local на OU с компьютерами (Desktops).
Установка LAPS на клиентские компьютеры через GPO
После настройки GPO нужно установить клиентскую часть LAPS на компьютеры в домене. Установить клиент LAPS можно различными способами: вручную, через задание SCCM, логон скрипт и т.п. В нашем примере мы установим msi файл с помощью возможности установки msi пакетов через групповые политики (GPSI).
- Создайте общую папку в сетевом каталоге (или в папке SYSVOL на контроллере домена), в которую нужно скопировать msi файлы дистрибутива LAPS;
- Создайте новую GPO и в разделе Computer Configuration ->Policies ->Software Settings -> Software Installation создайте задание на установку MSI пакета LAPS.
Осталось назначить политику на нужную OU, и после перезагрузки, на всех компьютерах в целевом OU должен установиться клиент LAPS.
Проверьте, что списке установленных программ в Панели Управления (Programs and Features) появилась запись “Local admin password management solution”.
Когда утилита LAPS меняет пароль локального администратора, запись об этом фиксируется в журнале Application (Event ID:12, Source: AdmPwd).
Событие сохранения пароля в атрибуте AD также фиксируется (Event ID:13, Source: AdmPwd).
Вот так выглядят новые атрибуты у компьютера в AD.
Использование утилиты LAPS для просмотра пароля администратора
Графическую утилиту AdmPwd UI для просмотра паролей LAPS нужно установить на компьютерах администраторов.
Запустите утилиту, введите имя компьютера (в поле computername), и вы должны увидеть текущий пароль локального администратора компьютера и срок действия.
Дату истечения пароля срока действия пароля можно задать вручную, либо оставить поле с датой пустым и нажав кнопку Set (это означает, срок действия пароля уже истек).
Пароль также можно получить с помощью PowerShell:
Import-Module AdmPwd.PS Get-AdmPwdPassword -ComputerName <computername>
Если вы считаете, что пароли локальных администраторов на всех компьютерах в некотором 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 позволяют надежно ограничить к ним доступ.
снова спс винитпро