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

LAPS (Local Administrator Password Solution) позволяет управлять паролями учетных записей локальных администраторов на компьютерах, присоединенных к домену. Пароли являются случайными, регулярно автоматически меняются, хранятся в Active Directory (AD) и защищаются списками управления доступом (ACL). Поэтому только пользователи с соответствующими правами могут читать или сбрасывать такие пароли. В этой статье я расскажу, как настроить инструмент LAPS для управления паролями локальных администраторов на компьютерах в домене Active Directory.

Для чего нужен Windows LAPS

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

Что нового в версии Windows LAPS от апреля 2023 года

В апреле 2023 года вышли обновления для операционных систем, которые добавляют встроенную поддержку новой версии LAPS в Windows. Теперь LAPS готов к работе «из коробки», больше не нужно скачивать и устанавливать MSI пакет. По запросам клиентов Microsoft сделала LAPS доступными как для облачных, так и для локальных сред.

Поддержка встроенного LAPS была добавлена в следующие операционные системы:

  • Windows 11 Pro, EDU, and Enterprise.
  • Windows 10 Pro, EDU, and Enterprise.
  • Windows Server 2022 and Windows Server Core 2022.
  • Windows Server 2019.

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

  • Шифрование паролей: это в значительной мере повышает безопасность;
  • История паролей: дает вам возможность снова войти в систему со старым паролем, если вы выполнили восстановление системы на момента времени, предшествующий последней смене пароля LAPS;
  • Резервные копии паролей режима восстановления службы каталогов (DSRM): помогает обеспечить безопасность контроллеров домена, управляя паролями восстановления;
  • Режим эмуляции: позволяет продолжать использовать старые параметры и инструменты политики LAPS;
  • Автоматическая ротация: автоматическое изменение пароля локального администратора после его использования для локального входа на компьютер;
  • новый модуль PowerShell: включает в себя улучшенные возможности управления. Например, теперь вы можете менять пароль по требованию с помощью нового командлета Reset-LapsPassword.

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

Важное замечание: одним из требований для работы нового Windows LAPS является функциональный уровень домена версии Windows Server 2016 и выше.

Установка Windows LAPS

Для управления LAPS используются PowerShell командлеты из одноименного модуля. Посмотреть доступные команды можно следующим образом:

Get-Command -Module LAPS

Get-LapsAADPassword Используется для запроса паролей Windows LAPS в Azure Active Directory 
Get-LapsDiagnostics Используется для сбора диагностической информации для расследования сбоев и ошибок
Find-LapsADExtendedRights Используется для того, чтобы узнать кому были предоставлены разрешения на OU в Active Directory
Get-LapsADPassword Используется для получения паролей Windows LAPS
Invoke-LapsPolicyProcessing Используется для запуска цикла обработки политики
Reset-LapsPassword Используется для сброса пароля. 
Set-LapsADAuditing Используется для настройки аудита Windows LAPS
Set-LapsADComputerSelfPermission Используется для настройки разрешения на OU в Active Directory, чтобы компьютеры могли обновлять свои пароли
Set-LapsADPasswordExpirationTime Используется для установки времени истечения срока действия пароля компьютера в Active Directory
Set-LapsADReadPasswordPermission Используется для предоставления разрешения пользователю или группе пользователей на чтение информации о пароле компьютера
Set-LapsADResetPasswordPermission Используется для предоставления разрешения пользователю или группе пользователей на сброс пароля компьютера
Update-LapsADSchema Используется для расширения схемы Active Directory с помощью атрибутов схемы Windows LAPS

После того как вы обновите все контроллеры домена, нужно выполнить обновление схемы AD, которое добавит новые атрибуты. Для этого выполните команду:

Update-LapsADSchema

Эта команда выполняется только один раз для каждого леса Active Directory. 

У меня в лаборатории на системе Windows Server 2022 выполнение этой команды выдавало следующую ошибку:

Update-LapsADSchema : An operation error occurred.
At line:1 char:1
+ Update-LapsADSchema -Verbose
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Update-LapsADSchema], DirectoryOperationException
+ FullyQualifiedErrorId : System.DirectoryServices.Protocols.DirectoryOperationException,Microsoft.Windows.LAPS.Up
dateLapsADSchema

Я еще раз проверил, что все контроллеры домена обновлены, перезагрузил их. Проверил, что запустил PowerShell с повышенными правами, и у учетной записи есть права администратора схемы. Все было в порядке.

Выполняя команду с ключом -Verbose, я получал следующее сообщение:

WARNING: Add request for ‘CN=ms-LAPS-Password,CN=Schema,CN=Configuration,DC=proitclub,DC=ru’ threw exception:
WARNING: System.DirectoryServices.Protocols.DirectoryOperationException: An operation error occurred.
at System.DirectoryServices.Protocols.LdapConnection.ConstructResponse(Int32 messageId, LdapOperation operation,
ResultAll resultType, TimeSpan requestTimeOut, Boolean exceptionOnTimeOut)
at System.DirectoryServices.Protocols.LdapConnection.SendRequest(DirectoryRequest request, TimeSpan requestTimeout)
at Microsoft.Windows.LAPS.UpdateLapsADSchema.AddSchemaAttribute(String schemaAttributeDN, LAPSSchemaAttribute
lapsSchemaAttribute)

Как временное решение решил попробовать дать все возможные права на объект Schema для учетной записи непосредственно через «Редактор ADSI» (ADSI Editor). Запускаем редактор и в свойствах соединения выбираем объект Schema.

adsi editor

Заходим в свойства Schema, вкладка Security и добавляем пользователю (в моем случае admin) все возможные права этот объект. Ждем несколько минут для синхронизации между контроллерами домена и пробуем запустить команду обновления схемы еще раз.

adsi editor add rights

После внесения изменений команда выполнилась без ошибок, и схема была обновлена. Посмотреть новые атрибуты можно через консоль Active Directory Users and Computers. Выберите компьютер в AD, перейдите на вкладку Attribute Editor и убедитесь, что у объекта теперь доступны новые атрибуты. 

laps attribute

Как вы можете видеть, атрибуты пока не заданы. Для того, чтобы компьютер мог управлять своим паролем ему необходимо предоставить разрешение на изменение вышеуказанных атрибутов. Это можно сделать путем установки наследуемых разрешений для организационной единицы (OU), в которой находится устройство. Следующая команда предоставит компьютерам в OU «LAPSComputers» права на обновление своих атрибутов:

Set-LapsADComputerSelfPermission -Identity "OU=LAPSComputers,DC=proitclub,DC=ru"

Члены группы Domain Admins по умолчанию имеют полные права на действия с паролями локальных администраторов на компьютерах. Чтобы посмотреть всех пользователей и группы, у которых есть права на чтение или изменения атрибутов компьютера, нужно воспользоваться следующей командой: Find-LapsADExtendedRights. Давайте, например, посмотрим, кто имеет права в OU «LAPSComputers».

Find-LapsADExtendedRights -Identity "OU=LAPSComputers,DC=proitclub,DC=ru"

OU Rights LAPS

Часто бывает, что необходимо предоставить права на просмотр и сброс пароля компьютера для сотрудников, которые не входят в группу администраторов домена. Например, это могут быть сотрудники технической поддержки. Давайте, для примера, предоставим группе HelpDesk такие права с помощью следующих команд. Первая из них дает права на чтение, а вторая — на сброс пароля.

Set-LapsADReadPasswordPermission -Identity "OU=LAPSComputers,DC=proitclub,DC=ru" -AllowedPrincipals "proitclub\HelpDesk"

Set-LapsADResetPasswordPermission -Identity "OU=LAPSComputers,DC=proitclub,DC=ru" -AllowedPrincipals "proitclub\HelpDesk"

И теперь посмотрим с помощью знакомой нам команды список пользователей и групп с правами в OU «LAPSComputers».

find rights in OU LAPS

Видно, что теперь у группы HelpDesk есть права на просмотр и сброс пароля.

Настройка Windows LAPS

Как я уже упоминал в начале статьи, теперь больше не нужно скачивать и устанавливать MSI пакет вручную или через GPO. Все необходимые компоненты LAPS доступны в Windows после установки апрельских обновлений. Не забудьте также установить обновления на все контроллеры домена.

Первым шагом в настройке Windows LAPS является настройка политики через GPO. Для этого Windows LAPS включает новый объект групповой политики, который можно найти в редакторе групповых политик по пути Computer Configuration > Administrative Templates > System > LAPS (Конфигурация компьютера > Административные шаблоны > Система > LAPS).

GPO LAPS

 

Шаблон для этого нового объекта групповой политики располагается на контроллерах домена в каталоге %windir%\PolicyDefinitions\LAPS.admx.

Файлы шаблонов объектов групповой политики Windows LAPS НЕ КОПИРУЮТСЯ автоматически в центральное хранилище объектов групповой политики при обновлении контроллера домена. Не забудьте вручную скопировать файл LAPS.admx в центральное хранилище объекта групповой политики, если вы его используете.

Нам доступны следующие политики Windows LAPS:

  • Enable password backup for DSRM accounts: разрешает делать бэкап DSRM пароля администратора на контроллере домена;
  • Configure size of encrypted password history: указывает количество зашифрованных паролей, которое будет храниться в Active Directory;
  • Enable password encryption: включает шифрование паролей;
  • Configure authorized password decryptors: можно указать группу либо пользователей, у которых будет доступ ко всем зашифрованным паролям. По умолчанию такой доступ имеют администраторы домена;
  • Name of administrator account to manage: можно указать имя локального администратора на компьютерах, отличное от встроенного аккаунта, к которому будет применяться политика LAPS. Имейте в виду, что LAPS не создает и не активирует учетные записи! Поэтому убедитесь, что существует активная учетная запись локального администратора;
  • Configure password backup directory: позволяет указать место хранения бэкапа пароля — локально в AD или в Azure AD;
  • Do not allow password expiration time longer than required by policy: позволяет продлить срок действия пароля больше, чем указано в настройках;
  • Password Settings: позволяет указать сложность пароля, его длину и срок действия.
  • Post-authentication actions: позволяет задать период и действие после входа локального администратора на компьютер. Например, можно задать смену пароля локального администратора через 2 часа после того, как произойдет его вход на компьютер.

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

Как посмотреть пароль локального администратора через Windows LAPS

Когда пароль локальной учетной записи хранится в Active Directory, пользователь с соответствующими правами может получить к нему доступ на чтение или сброс. Доступ можно получить через консоль Active Directory Users and Computers или с помощью PowerShell.

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

  • Current LAPS password expiration: дату и время истечения пароля;
  • Set new LAPS password expiration: можно задать новую дату и время истечения пароля;
  • LASP local admin account name: аккаунт локального администратора;
  • LASP local admin account password: пароль от локального администратора.

LAPS show password

С помощью PowerShell пароль локального администратора можно получить с помощью следующей команды:

Get-LapsADPassword "CLI-WIN10" -AsPlainText

laps get password

Windows Local Administrator Password Solution на данный момент является простым и надежным инструментом для управления и хранения зашифрованных паролей, который позволяет повысить безопасность рабочей среды перед различными угрозами. Немаловажно, что инструмент является встроенным решением, и для его работы не требуется установка дополнительного программного обеспечения.

 

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