Одной из самых распространенных проблем, с которой сталкивается почти каждый системный администратор, является управление паролями локального администратора.
Существует несколько вариантов решения данной задачи:
Одной из таких систем является LAPS, установку и настройку которой мы разберем в этой статье.
![краткая диаграмма архитектуры LAPS](https://habrastorage.org/r/w1560/getpro/habr/post_images/f4a/f92/b94/f4af92b940176f2a946994d61332cdb1.png)
LAPS расшифровывается как Local Administrator Password Solution и является наследником решения AdmPwd, которое было поглощено Microsoft и переименовано в LAPS. LAPS бесплатен и не требует дополнительных расходов на инфраструктуру, так как использует Active Directory в качестве базы данных. Поддержка доступна в рамках Microsoft Premier Support Services.
Официальная страница продукта
Автор оригинальной AdmPwd разработал новый продукт AdmPwd.E, но бесплатная версия ограничена 20 ПК, так что подойдет не всем. Официальный сайт.
LAPS поставляется с обширной документацией (только на английском) и вообще оставляет впечатление крайне продуманного и надежного решения.
Система состоит из следующих компонентов:
Агент вызывается при каждом обновлении групповой политики и выполняет следующие задачи:
Пароль может быть прочитан администраторами, а также промаркирован как требующий замены при следующем обновлении политики.
Полная диаграмма работы LAPS приведена на следующем изображении.
![полная диаграмма архитектуры LAPS](https://habrastorage.org/r/w780q1/getpro/habr/post_images/8c4/982/d16/8c4982d16a9ec5d5e02fcf77d9936179.jpg)
Для начала установим средства управления LAPS на компьютер, с которого будем осуществлять настройку.
Запускаем msi пакет и устанавливаем все Managemnt Tools, которые включают LAPS UI, модуль PowerShell и шаблоны групповой политики.
![](https://habrastorage.org/r/w1560/webt/3h/xe/hb/3hxehbs0ugtewip6nhrzdsauui8.png)
Если у вас настроено централизованное хранилище шаблонов групповых политик, то сразу переносим файлы «Admpwd.admx» и «En-us\AdmPwd.adml» из "%SystemRoot%\PolicyDefinitions" в "\\contoso.com\SYSVOL\contoso.com\policies\PolicyDefinitions".
Следующим шагом будет добавление новых атрибутов в схему AD. Для этого необходимо открыть консоль PowerShell от имени учетной записи с правами «Schema Admin» и сначала импортировать модуль командой «Import-module AdmPwd.PS», а затем обновить схему командой «Update-AdmPwdADSchema».
![](https://habrastorage.org/r/w1560/webt/o1/jq/ar/o1jqarozuzovluwbl1afjvpmxxk.png)
![](https://habrastorage.org/r/w1560/webt/1p/kw/ue/1pkwuexmoemu262t84jccwt2kgi.png)
Затем нужно удостовериться, что только администраторы имеют доступ к свежесозданным атрибутам. Это необходимо, так как пароли хранятся в AD в открытом виде, и доступ к ним регулируется AD ACL. Для этого воспользуемся командой «Find-AdmPwdExtendedrights -identity <OU, где расположены учетные записи ПК> | Format-Table».
![](https://habrastorage.org/r/w1560/webt/jg/nd/lp/jgndlpqpplenoeybovcokqnlmns.png)
Эта команда возвращает список учетных записей/групп, которые будут иметь доступ к паролям хранящимся в AD. Если вы обнаружили «лишние» учетные записи/группы, то воспользуйтесь утилитой ADSIEdit для корректной настройки прав доступа. Убедитесь, что право доступа «All extended rights» не отмечено для тех групп, которые не должны иметь доступ к паролям.
![](https://habrastorage.org/r/w1560/webt/nz/nz/f0/nznzf01echadpfwh6xwtsnwxmtq.png)
Если же вы хотите дать доступ к паролям дополнительным группам или учетным записям воспользуйтесь командой «Set-AdmPwdReadPasswordPermission -OrgUnit <OU, где расположены учетные записи ПК> -AllowedPrincipals <Пользователи или группы>».
Права доступа для принудительной смены еще не истекшего пароля при следующем обновлении групповых политик выдаются следующей командой: «Set-AdmPwdResetPasswordPermission -Identity <OU, где расположены учетные записи ПК> -AllowedPrincipals <Пользователи или группы>»
![](https://habrastorage.org/r/w1560/webt/z4/z4/ob/z4z4obvffqv601nqauhhmtviwye.png)
![](https://habrastorage.org/r/w1560/webt/xg/1r/1g/xg1r1gpc6uecgpncjve3igs0d04.png)
Затем необходимо выдать права самим компьютерам на модификацию данных атрибутов. Для этого воспользуемся командой «Set-AdmPwdComputerSelfPermission -OrgUnit <OU, где расположены учетные записи ПК>»
![](https://habrastorage.org/r/w1560/webt/34/vj/i-/34vji-f5vqbnin0i7kt-4jtnxiw.png)
Следующим шагом будет настройка групповой политики. Мы можем контролировать сложность и срок годности паролей, имя учетной записи пароль которой будет меняться, а также включать и выключать работу LAPS.
![](https://habrastorage.org/r/w1560/webt/hv/1h/c9/hv1hc9jgfi9bo4g3nj9ouzzidzc.png)
![](https://habrastorage.org/r/w1560/webt/_z/mi/ph/_zmiph9xzqdhcye1dn2muhzby0w.png)
![](https://habrastorage.org/r/w1560/webt/ri/vl/_l/rivl_lgs0z7g6prfzdypjaqgdbq.png)
Имя учетной записи нужно указывать только в том случае, если это специально созданная учетная запись. Если это встроенная ученая запись, то этот параметр надо оставить в «Not configured» (Даже если учетная запись переименована), так как встроенная учетная запись будет найдена по well-known SID.
![](https://habrastorage.org/r/w1560/webt/cu/af/gp/cuafgputvgt_gtfg7qtcpyft8lg.png)
Следующим этапом будет установка расширения групповой политики на ПК. Это можно возложить на групповые политики, на SCCM, либо на другое средство развертывания приложений. Следует отметить, что по умолчанию msi пакет устанавливает только клиентскую часть, так что развертывание не требует передачи дополнительных параметров инсталлятору. Перезагрузка ПК потребуется только при развертывании через групповые политики.
Для просмотра пароля проще всего воспользоваться LAPS UI. Вводим имя компьютера в соответствующее поле и нажимаем «Search». Если мы все сделали правильно, то вы увидите пароль в соответствующем поле.
![](https://habrastorage.org/r/w1560/webt/ca/hr/ef/cahrefdlckyabd-iitzwsnuocb8.png)
В этой статье были рассмотрены основные этапы развертывания LAPS. Больше информации доступно в документации поставляемой вместе с продуктом. LAPS также обладает средствами логирования своих действий, что не было рассмотрено в данной статье, но описано в документации.
Существует несколько вариантов решения данной задачи:
- Использование единого пароля на всех компьютерах. Пароль может устанавливаться либо во время деплоя с помощью MDT или SCCM, либо с помощью предпочтений групповых политик после деплоя. Обычно при таком подходе пароль никогда не меняется, а значит рано или поздно утечет (при увольнении администратора или пользователь может подглядеть ввод пароля), при этом скомпрометированный пароль дает доступ ко всем ПК в организации.
- Единоразовая установка уникального пароля на каждом ПК. Обычно происходит при деплое. Вариантов масса — начиная от ручной генерации случайного пароля и сохранении его в системе учета паролей (Keepass, OnePassword, Excel), заканчивая автоматической генерацией пароля по алгоритму известному администраторам, где входными данными является имя ПК. Зная алгоритм, администратор может на месте рассчитать пароль и авторизоваться на любом ПК. Минусы примерно аналогичны варианту 1: Уволенный администратор сохраняет возможность войти на любой ПК, зато при компрометации пароля пользователем он получает доступ только к одному ПК, а не ко всем сразу.
- Использование системы, которая будет автоматически генерировать случайные пароли для каждого ПК и менять их по установленному расписанию. Минусы предыдущих вариантов тут исключены — скомпрометированный пароль будет изменен по расписанию, и уволенный администратор через некоторое время не сможет авторизоваться на ПК даже если и украдет действующую на момент увольнения базу паролей.
Одной из таких систем является LAPS, установку и настройку которой мы разберем в этой статье.
![краткая диаграмма архитектуры LAPS](https://habrastorage.org/getpro/habr/post_images/f4a/f92/b94/f4af92b940176f2a946994d61332cdb1.png)
LAPS
LAPS расшифровывается как Local Administrator Password Solution и является наследником решения AdmPwd, которое было поглощено Microsoft и переименовано в LAPS. LAPS бесплатен и не требует дополнительных расходов на инфраструктуру, так как использует Active Directory в качестве базы данных. Поддержка доступна в рамках Microsoft Premier Support Services.
Официальная страница продукта
Автор оригинальной AdmPwd разработал новый продукт AdmPwd.E, но бесплатная версия ограничена 20 ПК, так что подойдет не всем. Официальный сайт.
LAPS поставляется с обширной документацией (только на английском) и вообще оставляет впечатление крайне продуманного и надежного решения.
Архитектура
Система состоит из следующих компонентов:
- Агент — Расширение групповой политики устанавливаемое на все управляемые ПК через MSI. Отвечает за генерацию пароля и сохранении его в соответствующем объекте AD.
- Модуль PowerShell. Используется для настройки LAPS.
- Active Directory. Хранит пароль локального администратора.
Агент вызывается при каждом обновлении групповой политики и выполняет следующие задачи:
- Проверяет не истек ли срок действия пароля локального администратора
- Генерирует новый пароль, если текущий истек или требуется его замена до истечении срока действия
- Меняет пароль локального администратора
- Сохраняет пароль в соответствующем атрибуте объекта AD
- Сохраняет срок действия пароля в соответствующем атрибуте объекта AD
Пароль может быть прочитан администраторами, а также промаркирован как требующий замены при следующем обновлении политики.
Полная диаграмма работы LAPS приведена на следующем изображении.
![полная диаграмма архитектуры LAPS](https://habrastorage.org/getpro/habr/post_images/8c4/982/d16/8c4982d16a9ec5d5e02fcf77d9936179.jpg)
Установка и настройка LAPS
Для начала установим средства управления LAPS на компьютер, с которого будем осуществлять настройку.
Запускаем msi пакет и устанавливаем все Managemnt Tools, которые включают LAPS UI, модуль PowerShell и шаблоны групповой политики.
![](https://habrastorage.org/webt/3h/xe/hb/3hxehbs0ugtewip6nhrzdsauui8.png)
Если у вас настроено централизованное хранилище шаблонов групповых политик, то сразу переносим файлы «Admpwd.admx» и «En-us\AdmPwd.adml» из "%SystemRoot%\PolicyDefinitions" в "\\contoso.com\SYSVOL\contoso.com\policies\PolicyDefinitions".
Следующим шагом будет добавление новых атрибутов в схему AD. Для этого необходимо открыть консоль PowerShell от имени учетной записи с правами «Schema Admin» и сначала импортировать модуль командой «Import-module AdmPwd.PS», а затем обновить схему командой «Update-AdmPwdADSchema».
![](https://habrastorage.org/webt/o1/jq/ar/o1jqarozuzovluwbl1afjvpmxxk.png)
![](https://habrastorage.org/webt/1p/kw/ue/1pkwuexmoemu262t84jccwt2kgi.png)
Затем нужно удостовериться, что только администраторы имеют доступ к свежесозданным атрибутам. Это необходимо, так как пароли хранятся в AD в открытом виде, и доступ к ним регулируется AD ACL. Для этого воспользуемся командой «Find-AdmPwdExtendedrights -identity <OU, где расположены учетные записи ПК> | Format-Table».
![](https://habrastorage.org/webt/jg/nd/lp/jgndlpqpplenoeybovcokqnlmns.png)
Эта команда возвращает список учетных записей/групп, которые будут иметь доступ к паролям хранящимся в AD. Если вы обнаружили «лишние» учетные записи/группы, то воспользуйтесь утилитой ADSIEdit для корректной настройки прав доступа. Убедитесь, что право доступа «All extended rights» не отмечено для тех групп, которые не должны иметь доступ к паролям.
![](https://habrastorage.org/webt/nz/nz/f0/nznzf01echadpfwh6xwtsnwxmtq.png)
Если же вы хотите дать доступ к паролям дополнительным группам или учетным записям воспользуйтесь командой «Set-AdmPwdReadPasswordPermission -OrgUnit <OU, где расположены учетные записи ПК> -AllowedPrincipals <Пользователи или группы>».
Права доступа для принудительной смены еще не истекшего пароля при следующем обновлении групповых политик выдаются следующей командой: «Set-AdmPwdResetPasswordPermission -Identity <OU, где расположены учетные записи ПК> -AllowedPrincipals <Пользователи или группы>»
![](https://habrastorage.org/webt/z4/z4/ob/z4z4obvffqv601nqauhhmtviwye.png)
![](https://habrastorage.org/webt/xg/1r/1g/xg1r1gpc6uecgpncjve3igs0d04.png)
Затем необходимо выдать права самим компьютерам на модификацию данных атрибутов. Для этого воспользуемся командой «Set-AdmPwdComputerSelfPermission -OrgUnit <OU, где расположены учетные записи ПК>»
![](https://habrastorage.org/webt/34/vj/i-/34vji-f5vqbnin0i7kt-4jtnxiw.png)
Следующим шагом будет настройка групповой политики. Мы можем контролировать сложность и срок годности паролей, имя учетной записи пароль которой будет меняться, а также включать и выключать работу LAPS.
![](https://habrastorage.org/webt/hv/1h/c9/hv1hc9jgfi9bo4g3nj9ouzzidzc.png)
![](https://habrastorage.org/webt/_z/mi/ph/_zmiph9xzqdhcye1dn2muhzby0w.png)
![](https://habrastorage.org/webt/ri/vl/_l/rivl_lgs0z7g6prfzdypjaqgdbq.png)
Имя учетной записи нужно указывать только в том случае, если это специально созданная учетная запись. Если это встроенная ученая запись, то этот параметр надо оставить в «Not configured» (Даже если учетная запись переименована), так как встроенная учетная запись будет найдена по well-known SID.
![](https://habrastorage.org/webt/cu/af/gp/cuafgputvgt_gtfg7qtcpyft8lg.png)
Следующим этапом будет установка расширения групповой политики на ПК. Это можно возложить на групповые политики, на SCCM, либо на другое средство развертывания приложений. Следует отметить, что по умолчанию msi пакет устанавливает только клиентскую часть, так что развертывание не требует передачи дополнительных параметров инсталлятору. Перезагрузка ПК потребуется только при развертывании через групповые политики.
Для просмотра пароля проще всего воспользоваться LAPS UI. Вводим имя компьютера в соответствующее поле и нажимаем «Search». Если мы все сделали правильно, то вы увидите пароль в соответствующем поле.
![](https://habrastorage.org/webt/ca/hr/ef/cahrefdlckyabd-iitzwsnuocb8.png)
Заключение
В этой статье были рассмотрены основные этапы развертывания LAPS. Больше информации доступно в документации поставляемой вместе с продуктом. LAPS также обладает средствами логирования своих действий, что не было рассмотрено в данной статье, но описано в документации.