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

У цій статті ми розглянемо спосіб управління паролями локальних адміністраторів на комп'ютерах домену за допомогою офіційної утиліти 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 встановлені). Пакет складається з двох частин:

  1. AdmPwd GPO Extension -виконувана частина LAPS, яка встановлюється на комп'ютери клієнтів і здійснює генерацію, збереження пароля в домені згідно налаштованої політики;
  2. І компоненти управління 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):

Update-AdmPwdADSchema

В результаті в клас "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.

Їли вам потрібно заборонити певним групам або користувачам доступ на читання таких атрибутів, потрібно виконати наступне:

  1. Відкрийте ADSIEdit і підключіться до Default naming context;
  2. Розгорніть дерево AD, знайдіть потрібний OU (в нашому прикладі Desktops), клацніть по ньому ПКМ і виберіть Properties;
  3. Перейдіть на вкладку Security, Натисніть на кнопку Advanced -> Add. В розділі Select Principal вкажіть ім'я групи / користувача, для якого потрібно обмежити права (наприклад, domain \ Support Team);
  4. Зніміть галку у права "All extended rights" і збережіть зміни.

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

Порада. Обмежити права на читання доведеться на все OU, паролями комп'ютерів в яких буде керувати LAPS.

Далі потрібно надати права облікових записів комп'ютерів на модифікацію власних атрибутів (SELF), тому що зміна значень атрибутів ms-MCS-AdmPwd і ms-MCS-AdmPwdExpirationTime виконується з-під облікового запису самого комп'ютера. Скористаємося ще одним Командлети Set-AdmPwdComputerSelfPermission.

Щоб дати права комп'ютерів в OU Desktops на оновлення розширених атрибутів, виконайте команду:

Set-AdmPwdComputerSelfPermission -OrgUnit Desktops

Нові атрибути LAPS комп'ютерів за замовчуванням не реплікуються на контролери домену RODC.

Надання прав на перегляд пароля 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 managementEnabled (Включити політику управління паролями LAPS);
  • Password SettingsEnabled - в політиці задається складності пароля, його довжина і частота зміни (по аналогії з доменними політиками для паролів користувачів);
    • Complexity: Large letters, small letters, numbers, specials
    • Length: 12 characters
    • Age: 30 days
  • Name of administrator account to manageNot Configured (Тут вказується ім'я облікового запису адміністратора, пароль якої буде змінюватися. За замовчуванням змінюється пароль вбудованого administrator з SID-500);
  • Do not allow password expiration time longer than required by policyEnabled

Призначте політику Password_Administrador_Local на OU з комп'ютерами (Desktops).

Установка LAPS на клієнтські комп'ютери через GPO

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

  1. Створіть загальну папку в мережевому каталозі (або в папці SYSVOL на контролері домену), в яку потрібно скопіювати msi файли дистрибутива LAPS;
  2. Створіть нову GPO і в розділі Computer Configuration -> Policies -> Software Settings -> Software Installation створіть завдання на установку MSI пакету LAPS.
Зверніть увагу, що є x86 і x64 версія LAPS для Windows відповідних розрядностей. Для цього ви можете зробити 2 окремі політики LAPS з WMI фільтрами GPO для x86 і x64 редакцій Windows.

Залишилося призначити політику на потрібну 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.

Порада. Час закінчення терміну дії пароля зберігається в форматі "Win32 FILETIME", конвертувати його в нормальний вигляд можна, наприклад так.

Використання утиліти LAPS для перегляду пароля адміністратора

Графічну утиліту AdmPwd UI для перегляду паролів LAPS потрібно встановити на комп'ютерах адміністраторів.

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

Дату закінчення пароля терміну дії пароля можна задати вручну, або залишити поле з датою порожнім і натиснувши кнопку Set (це означає, термін дії пароля вже минув).

Пароль також можна отримати за допомогою PowerShell:

Import-Module AdmPwd.PS
Get-AdmPwdPassword -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 дозволяють надійно обмежити до них доступ.

Також рекомендуємо ознайомитися зі статтею Захист облікових записів адміністраторів в мережі Windows.