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

В этой статье мы рассмотрим, как управлять паролями локальных администраторов на компьютерах, присоединённых к домену, с помощью официального инструмента Microsoft — LAPS (Local Administrator Password Solution).

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

Ранее настройки групповой политики (GPP) часто использовались для изменения паролей локальных администраторов на компьютерах, присоединённых к домену. Однако позже в GPP была обнаружена серьёзная уязвимость, позволяющая любому пользователю домена расшифровать пароль, хранящийся в текстовом файле в каталоге SYSVOL на контроллерах домена AD. В мае 2014 года Microsoft выпустила обновление безопасности (MS14-025 - KB 2962486), которое полностью отключило возможность установки пароля локального пользователя с помощью GPP.

Инструмент LAPS: Local Administrator Password Solution (решение для пароля локального администратора)

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

Инструмент LAPS (Local Administrator Password Solution) позволяет централизованно контролировать и управлять паролями администратора на всех компьютерах домена, а также сохранять пароль локального администратора и дату его изменения непосредственно в объектах Active Directory типа «Computer».

Функции LAPS основаны на Group Policy Client Side Extension (CSE), то есть клиентском расширении групповой политики и небольшом модуле, который устанавливается на рабочих станциях. Этот инструмент используется для генерации уникального пароля локального администратора (для 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. Пакет состоит из двух частей:

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

Настройка LAPS очень проста и не должна вызывать никаких проблем.

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

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

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

Чтобы расширить схему AD, откройте PowerShell и импортируйте модуль Admpwd.ps:

Import-module AdmPwd.ps

Затем расширите схему Active Directory (вам потребуются права администратора схемы):

Update-AdmPwdADSchema

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

Настройка разрешений для атрибутов AD LAPS

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

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

Find-AdmPwdExtendedRights -Identity Desktops | Format-Table ExtendedRightHolders

Как видите, только группа «Domain Admins» имеет права на чтение конфиденциальных атрибутов.

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

  • Откройте инструмент ADSIEdit и подключитесь к Контексту именования по умолчанию;

  • Разверните дерево доменов, найдите необходимое OU (в нашем примере это «Desktops»), щёлкните его правой кнопкой мыши и выберите Properties («Свойства»);

  • Затем перейдите на вкладку Security («Безопасность») и нажмите Advanced → Add («Дополнительно» → «Добавить»). В разделе Select Principal («Выбор субъекта») укажите имя группы/пользователя, для которых вы хотите ограничить разрешения (например, ДОМЕН\Support Team));

  • Снимите флажок All extended rights («Все расширенные права») и сохраните изменения.

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

Подсказка: вам придётся ограничить права на чтение для всех подразделений, пароли компьютеров в которых будут управляться LAPS.

Затем вам необходимо предоставить разрешения для учётных записей компьютеров на изменение их собственных атрибутов (SELF), поскольку значения ms-MCS-AdmPwd и ms-MCS-AdmPwdExpirationTime изменяются под самой учётной записью компьютера. Используйте другой командлет Set-AdmPwdComputerSelfPermission.

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

Set-AdmPwdComputerSelfPermission -OrgUnit Desktops

Новые атрибуты компьютеров LAPS по умолчанию не реплицируются на Read-Only Domain Controller (RODC).

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

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

Set-AdmPwdReadPasswordPermission -OrgUnit Desktops -AllowedPrincipals AdmPwd

Кроме того, вы можете разрешить определённой группе пользователей сбрасывать пароли компьютеров (в этом примере мы передаём это разрешение той же группе – AdmPwd):

Set-AdmPwdResetPasswordPermission -OrgUnit Desktops -AllowedPrincipals AdmPwd

Как настроить параметры групповой политики LAPS?

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

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

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

Register-AdmPwdWithGPO -GpoIdentity: Password_Administrador_Local

Откройте эту политику в консоли управления политикой домена (gpmc.msc) и перейдите в следующий раздел GPO: Computer Configuration → Policies → Administrative Templates → LAPS (в русскоязычной версии это «Конфигурация компьютера → Политики → Административные шаблоны → LAPS».

Как видим, есть 4 настраиваемых параметра. Настройте их, как показано ниже:

  • Enable local admin password management: Enabled (Включить управление паролями локального администратора: Включено) (включает политику управления паролями LAPS);
  • Password Settings: Enabled (Настройки пароля: Включено) – политика устанавливает сложность, длину и возраст пароля (аналогично требованиям политики паролей пользователей Active Directory);
  • Сложность: большие буквы, маленькие буквы, цифры, специальные символы
  • Длина: 12 символов
  • Возраст: 30 дней
  • Name of administrator account to manage: Not Configured (Имя учетной записи администратора для управления: Не настроена) (здесь вы можете указать имя учётной записи администратора для изменения пароля. По умолчанию меняется пароль встроенных учётных записей администратора с SID-500);
  • Do not allow password expiration time longer than required by policy: Enabled (Не допускать истечения срока действия пароля дольше, чем требуется политикой: Включено)

Назначьте политику Password_Administrador_Local для подразделения Desktops OU.

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

После настройки GPO пора установить клиентскую часть LAPS на компьютеры домена. Клиент LAPS может быть распространён по-разному: вручную, через задачу SCCM, скрипт входа в систему и так далее В нашем примере мы установим файл MSI, используя функцию установки пакета MSI в групповых политиках (GPSI).

  1. Создайте общую сетевую папку на файловом сервере (или используйте папку SYSVOL на контроллере домена) и скопируйте в неё msi-файлы для установки LAPS;
  2. Создайте новый GPO и в разделе Computer Configuration → Policies → Software Settings → Software Installation (в русифицированной версии это Конфигурация компьютера → Политики → Настройки программного обеспечения → Установка программного обеспечения) создайте задачу для установки пакета LAPS MSI.

Обратите внимание, что существуют версии LAPS для x86 и x64. Чтобы установить пакет в соответствующей версии Windows, вы можете создать две отдельные политики LAPS с фильтрами WMI GPO для x86 и x64 выпусков Windows.

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

Убедитесь, что запись Local admin password management solution («Решения для управления паролями локального администратора») появилась в разделе Programs and Features «Программы и компоненты» панели управления.

Когда утилита LAPS меняет пароль локального администратора, это событие регистрируется в журнале приложений (идентификатор события: 12, источник: AdmPwd).

Также регистрируется событие сохранения пароля в AD (идентификатор события: 13, источник: AdmPwd).

Так выглядят новые атрибуты на вкладке Attribute Editor («Редактор атрибутов») в свойствах компьютера AD.

Подсказка: время истечения срока действия пароля хранится в формате Win32 FILETIME.

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

На компьютерах администраторов должен быть установлен графический интерфейс (GUI) LAPS для просмотра паролей LAPS.

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

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

Также вы можете получить пароль компьютера с помощью PowerShell:

Get-AdmPwdPassword -ComputerName ИМЯ_КОМПЬЮТЕРА

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

Get-ADComputer -Filter * -SearchBase "OU=Desktops,OU=NY,OU=USA,DC=hackware,DC=ru" | Reset-AdmPwdPassword -ComputerName {$_.Name}

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

Get-ADComputer -Filter * -SearchBase "OU=Desktops,OU=NY,OU=USA,DC=hackware,DC=ru" | Get-AdmPwdPassword -ComputerName {$_.Name}

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

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

Рекомендуется Вам:

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

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