Версия для печати
Вторник, 23 октября 2018 15:44

MS LAPS - управление паролями локальных администраторов в домене Active Directory

Автор
Оцените материал
(17 голосов)

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

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

В этой статье будет подробно рассмотрена одна из методик, позволяющая организовать управления паролями локальных администраторов в домене. Речь идет об утилите AdmPwd (новое название LAPS — Local admin password management solution).

Утилита Local Administrator Password Solution (LAPS)

Ранее утилита не была официальной и называлась AdmPwd. В момент написания статьи Microsoft (май 2015) анонсировала официальную версию AdmPwd, переведя ее из раздела сторонних скриптов в официально поддерживаемое решение. Теперь AdmPwd официально называется LAPS (Local Administrator Password Solution).

Утилита LAPS позволяет организовать решение по централизованному контролю и управлению паролями администраторов на всех компьютерах домена с хранением информации о пароле непосредственно в объектах Active Directory типа Computer.

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

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

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

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

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

 Скачиваем необходимое ПО и запускаем установку утилиты на машине администратора, отметив все компоненты для установки (требуется наличие как минимум .Net Framework 4.0). Если в процессе импорта модуля (см.ниже) возникнет ошибка, то скорее всего нужно будет обновить Power Shell до версии >= 3.0. Необходимо будет скачать и установить Windows Management Framework >= 3.0

LAPS install

Пакет состоит из двух подсистем:

 

  1. AdmPwd GPO Extension – собственно исполняемая часть LAPS
  2. И компоненты управления:
    • Fat client UI – утилита для просмотра пароля
    • PowerShell module – модуль Powershell для управления LAPS
    • GPO Editor templates – административные шаблоны для редактора групповой политики
     

LAPS components

Подготовка Active Directory

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

 

msMCSAdmPwd– атрибут содержит пароль локального администратора в открытом виде

msMCSAdmPwdExpirationTime: — дата истечения срока действия пароля

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

LAPS import module

После этого необходимо выполнить расширение схемы Active Directory (нужны права Schema Admin). Выполняется на DC с ролью мастера схемы FSMO:

LAPS расширение схемы AD

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

 Права на атрибуты.

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

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

Проверка атрибутов

 

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

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

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

  1. Открываем ADSIEdit и подключакмся к Default naming context.
    ADSedit
  2. Разворачиваем дерево, находим нужный OU (в нашем примере Desktops) и щелкнем по нему правой клавишей мыши и выбираем Properties
    Свойства объекта
  3. Переходим на вкладку Security, нажимаем на кнопку Advanced. Затем нажав на кнопку Add, в разделе Select Principal указываем имя группы/пользователя, для которого нужно ограничить права (например, domain\Support).
    Изменение свойств объекта
  4. Снимаем галку у права All extended rights и сохраняем изменения.

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

 Разрешения компьютеров.

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

Назначение разрешений учетным записям компьютеров

Назначение прав пользователям.

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

Назначение прав пользователям

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

Сброс пароля

Групповая политика LAPS.

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

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

Создание групповой политики

Откроем на редактирование созданную политику и настроим ее. Для чего перейдём в раздел GPO: Computer Configuration -> Administrative Templates -> LAPS

Редактирование политики LAPS

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

 

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

Свойства пароля локального администратора

Далее назначаем созданную политику Password_Administrador_Local на OU Desktops.

Установка клиентской части LAPS.

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

  1. Создадим на сетевом каталоге общую папку, в которую нужно скопировать дистрибутивы LAPS
  2. Создадим новую политику и в разделе Computer Configuration ->Policies ->Software Settings -> Software Installation создадим задание на установку пакета
    Групповая политика установки LAPS
  3. Затем назначаем политику на нужную OU, и после перезагрузки, на всех компьютерах в целевом OU должен установиться клиент LAPS .
  4. Удостоверимся, что в списке установленных программ Панели Управления (Programs and Features) появилась запись Local admin password management solution

При смене пароля администратора утилитой LAPS запись об этом фиксируется в журнале Application (Event ID:12, Source: AdmPwd).

Журнал сообщений

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

Фиксация события

Пример новых атрибутов у объектов типа компьютер:

Атрибуты компьютера

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

C:\>w32tm /ntte 129639007827858663

Конвертация времени

Просмотр паролей утилитой LAPS.

Графический интерфейс (GUI) LAPS необходимо установить на компьютерах администраторов.

Просмотр паролей LAPS

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

LAPS UI

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

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

Отображение пароля

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

Дополнительная информация

Прочитано 15959 раз Последнее изменение Понедельник, 29 октября 2018 09:53
Андрей Иванов

Последнее от Андрей Иванов

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