Как управлять учетными записями пользователей в active directory. часть 3: включение, выключение и установка срока действия для пользователей

Работа с пользователями active directory в powershell

Дополнительные сведения

Пользователи, компьютеры и группы, созданные API более ранней версии, создают объекты в пути DN, указанном в атрибуте WellKnownObjects. Атрибут WellKnownObjects расположен в главе NC домена. В следующем примере кода показаны соответствующие пути в атрибуте WellKnownObjects из CONTOSO.COM области NC.

Dn: DC=CONTOSO,DC=COM

Например, в следующих операциях используются API более ранней версии, которые отвечают на пути, определенные в атрибуте WellKnownObjects:

Операция Версии операционной системы
Пользовательский интерфейс «Регистрация домена» Windows NT версии4.0Windows 2000Windows XP ProfessionalWindows XP UltimateWindows Server 2003Windows Server 2003 R2Windows VistaWindows Server 2008Windows 7Windows Server 2008 R2
NET COMPUTER Все версии
NET GROUP Все версии
NET USER Все версии
ДОБАВЛЕНИЕ NETDOM, где команда /ou не указана или поддерживается Все версии

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

  • Групповые политики можно применять в контейнерах OU, но не в контейнерах класса CN, где по умолчанию ставятся основные принципы безопасности.

  • Передовая практика — упорядочность принципов безопасности в иерархию OU, которая отражает организационную структуру, географическое расположение или модель администрирования.

При перенаправлении папок CN=Users и CN=Computers следует помнить о следующих проблемах:

  • Целевой домен должен быть настроен для запуска на уровне Windows Server 2003 или выше. Для функционального уровня Windows Server 2003 это означает:

    • Windows Сервер 2003 или более новый
    • Windows Сервер 2003 или более новый
    • Все контроллеры домена в целевом домене должны работать Windows Server 2003 или более новые.
    • Windows Необходимо включить функциональный уровень домена Server 2003 или более высокий.
  • В отличие от CN=USERS и CN=COMPUTERS, контейнеры OU подвергаются случайным удалениям привилегированных учетных записей пользователей, в том числе администраторов.

    Контейнеры CN=USERS и CN=COMPUTERS — это объекты, защищенные системой, которые не могут и не должны удаляться для обратной совместимости. Но их можно переименовать. Организационные подразделения могут быть удалены администраторами случайно.

    Windows Версии сервера 2003 для пользователей Active Directory & компьютеров могут выполнять действия в Области Защиты организационного подразделения от случайного удаления.

    Windows Сервер 2008 и более новые версии оснастки пользователей и компьютеров Active Directory имеют объект Protect от случайного удаления, который можно выбрать при создании нового контейнера OU. Вы также можете выбрать его на вкладке Объект в диалоговом окне Свойства для существующего контейнера OU.

    Сценарий задокументирован в script to Protect Organizational Units (OUs) от случайного удаления.

  • Exchange Server 2000 и 2003 годах с ошибками.

Проблематика

Аккаунт Active Directory обладает двумя идентификаторами – открытый и закрытый. Открытым принято считать логин, закрытым – пароль. Оба этих идентификатора участвуют в процессе аутентификации. Во время него пользователь вводит парольную фразу, с которой берется хеш-функция. Далее, происходит процесс сравнивания этого значения с значением, хранимым в базе NTDS.DIT. При совпадении этих значений и соответствию логину – процесс аутентификации считается успешным.

Проблематика состоит в том, что даже при использовании политик паролей, технически возможно задать слабый пароль, например, значения Pa$$w0rd или Pa$$w0rd01. Это частное явление ввиду того, что пользователи очень редко думают о безопасности своих учетных записей. Для администраторов и инженеров информационной безопасности использование слабых паролей является проблемой и в качестве решения возможно использование PowerShell модуля DSInternals.

Данный модуль позволяет проверить используется ли значение слабой парольной фразы в качестве пароля для доменных служб Active Directory. Технически будет происходить взятие хеш-функции с заранее подготовленного словаря и сравнение со значениями в базе NTDS.DIT. В случае совпадения, информация о проблемном аккаунте будет выведена в виде отчета.

Установка на ОС Windows

На версиях ОС Windows 8, Windows 8.1, Windows 10 пароль ставится автоматически при первой загрузке системы. В дальнейшем он будет регулярно спрашиваться при загрузке: входе, изменении пользователя, перезагрузке и выходе из режима сна.

На остальных версиях операционной системы Виндовс имеется возможность установить его самостоятельно как для всех аккаунтов, так и для одного выбранного.

«Восьмерка» и «десятка»

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

  1. Войти в папку «Параметры». Сделать это можно двумя способами. Для первого необходимо войти в главное меню (Пуск) и выбрать среди инструментов шестеренку, то есть настройки. Можно не искать значок среди всех программ, а начать вводить слово «Параметры» и открыть нужную строку. Во втором способе следует вызвать в правом экране специальное меню. Сделать это можно, проведя от правого верхнего угла вниз или от правого нижнего угла вверх. Здесь необходимо выбрать «Параметры», а далее «Изменение параметров компьютера».
  2. В настройках выбрать «Учётные записи» — «Параметры входа». Откроется окно с возможностью изменения нескольких настроек. Можно установить пароль, графический ключ, пин-код или сменить политику запрашиваемого пароля (нужна ли эта функция или нет).

Здесь же можно сделать и сброс пароля для Windows 10, 8.1, 8.

«Семерка» и более ранние версии

На седьмой версии системы тоже есть пароль для входа и его тоже можно заменить. Здесь алгоритм будет немногим отличаться:

  1. Активировать меню «Пуск».
  2. В правой части меню найти «Панель управления» и выбрать её.
  3. Под оглавлением «Учётные записи пользователей и…» выбрать «Добавление или удаление учётных записей».
  4. На новой странице нажать на нужного пользователя и найти «Создать».
  5. Ввести данные и сохранить изменения.

Когда откроется ещё одно окно, следует поставить галочку около фразы «Требовать ввод пароля…». В соседней вкладке можно найти ссылки на сохранённые коды, параметры входа, дать пользователю права администратора, а также добавить функцию нажатия ctrl + alt + del (вызов системного окна). Это поможет уберечься от фишинговых программ, которые могут взломать аккаунт, украв его.

Как сбросить пароль пользователю в AD?

Для сброса пароля пользователя в AD используется командлет Set-ADAccountPassword, входящий в модуль Active Directory для Windows PowerShell (в десктопых версиях Windows он входит в состав RSAT, а в серверных редакциях устанавливается в виде отдельного компонента AD DS Snap-Ins and Command-Line Tools). Перед использованием модуля его необходимо импортировать в сессию PowerShell:

Для сброса пароля ваша учетной запись должна обладать соответствующими правами. Естественно, обычные пользователи AD по-умолчанию не могут сбросить пароль других аккаунтов, чтобы эта возможность появилась, пользователю (группе пользователей) нужно делегировать право на сброс пароля на контейнер AD, либо добавить его в доменную группу Account Operators.

Чтобы проверить, что у вашей учетной записи есть право на сброс пароля определенного пользователя, откройте его свойства, перейдите на вкладку Security -> Advanced -> Effective Access -> укажите имя своей учетной записи -> убедитесь, что у вас есть разрешение Reset Password.

Чтобы сбросить пароль для пользователя с учетной записью dakimov и установить новый пароль SuperStr0n@p1, выполните команду:

Set-ADAccountPassword dakimov -Reset -NewPassword (ConvertTo-SecureString -AsPlainText “SuperStr0n@p1” -Force -Verbose) –PassThru

По умолчанию командлет возвращает объект и ничего не отображает в консоли. Чтобы вывести информацию об объекте пользователя в AD мы используем параметр –PassThru.

В качестве имени пользователя можно указать sAMAccountName (как в нашем случае), objectGU >

Если при смене пароля пользователя не указывать параметр –Reset, необходимо указать старый и новый пароль учетной записи.

Set-ADAccountPassword : The password does not meet the length, complexity, or history requirement of the domain.

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

Если у вас включено ведение истории PowerShell команд, и вы не хотите, чтобы пароли в открытом виде отображались в консоли PoSh, пароль как и при создании пользователя нужно преобразовать в безопасную строку (подробнее о защите паролей в скриптах PowerShell здесь):

$NewPasswd=Read-Host «Введите новый пароль пользователя» –AsSecureString

Теперь сбросим пароль:

Set-ADAccountPassword dakimov -Reset –NewPassword $NewPasswd –PassThru

При сбросе пароля можно принудительно снять блокировку ученой записи, даже если она заблокирована (как найти с какого компьютера блокируется учетная запись, смотрите в статье Поиск источника блокировки пользователя в Active Directory):

Unlock-ADAccount –Identity dakimov

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

Set-ADUser -Identity dakimov -ChangePasswordAtLogon $true

Вы можете совместить в одной строке команду смены пароля и включение требования сменить пароль (атрибут userAccountControl):

Set-ADAccountPassword dakimov -NewPassword $NewPasswd -Reset -PassThru | Set-ADuser -ChangePasswordAtLogon $True

С помощью командлета Get-ADUser вы можете убедиться, что пароль сброшен успешно, выведя время последней смены пароля аккаунта:

Get-ADUser dakimov -Properties * | select name, pass*

При сбросе пароля на контроллере домена (DC) регистрируется событие EventID 4724. Это событие помогает определить учетную запись, которая выполнила сброс пароля пользователя.

Пароль учетной записи компьютера в домене Active Directory

Когда компьютер вводится в домен Active Directory, для него создается отдельная учетная запись типа computer. У каждого компьютера в домене, как и у пользователей есть свой пароль, который необходим для аутентификации компьютера в домене и установления доверенного подключения к контроллеру домена. Однако, в отличии от паролей пользователя, пароли компьютеров задаются и меняются автоматически.

Несколько важных моментов, касающихся паролей компьютеров в AD:

  • Компьютеры должны регулярно (по умолчанию раз в 30 дней) менять свои пароли в AD.Совет. Максимальный срок жизни пароля может быть настроен с помощью политики Domain member: Maximum machine account password age, которая находится в разделе: Computer Configuration-> Windows Settings-> Security Settings-> Local Policies-> Security Options.  Срок действия пароля компьютера может быть от 0 до 999 (по умолчанию 30 дней).
  • Срок действия пароля компьютера не истекает в отличии от паролей пользователей. Смену пароля инициирует компьютер, а не контроллер домена. На пароль компьютера не распространяется доменная политика паролей для пользователей. Даже если компьютер был выключен более 30 дней, его можно включить, он нормально аутентифицируется на DC со старым паролем, и только после этого локальная служба 

    Netlogon

    1

    Netlogon

     изменит пароль компьютера в своей локальной базе (пароль хранится в ветке реестра HKLM\SECURITY\Policy\Secrets\$machine.ACC) и затем в аккаунте компьютера в Active Directory.

  • Пароль компьютера меняется на ближайшем DC, эти изменения не отправляются на контроллера домена с FSMO ролью эмулятора PDC (т.е. если компьютер сменил пароль на одном DC, то он не сможет авторизоваться на другом DC, до момента выполнения репликации изменений в AD).

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

Почему это может произойти:

  1. Самая частая проблема. Компьютер был восстановлен из старой точки восстановления или снапшота (если это виртуальная машина), созданной раньше, чем был изменен пароль компьютера в AD. Т.е. пароль в снапшоте отличается от пароля компьютера в AD. Если вы откатите такой компьютер на предыдущее состояние, это компьютер попытается аутентифицироваться на DC со старым паролем.
  2. В AD создан новый компьютер с тем же именем, или кто-то сбросил аккаунт компьютера в домене через консоль ADUC;
  3. Учетная запись компьютера в домене заблокирована администраторам (например, во время регулярной процедуры отключения неактивных объектов AD);
  4. Довольно редкий случай, когда сбилось системное время на компьютере.

Классический способ восстановить доверительных отношений компьютера с доменом в этом случае:

  1. Сбросить аккаунт компьютера в AD;
  2. Под локальным админом перевести компьютер из домена в рабочую группу;
  3. Перезагрузить компьютер;
  4. Перезагнать компьютер в домен;
  5. Еще раз перезагрузить компьютер.

Этот метод кажется простым, но слишком топорный и требует, как минимум двух перезагрузок компьютера, и 10-30 минут времени. Кроме того, могут возникнуть проблемы с использованием старых локальных профилей пользователей.

Есть более элегантный способ восстановить доверительные отношения с помощью PowerShell без перевключения в домен и без перезагрузок компьютера.

Вопросы безопасности Security considerations

В этом разделе описывается, как злоумышленник может использовать функцию или ее конфигурацию, как реализовать меры противодействия, а также возможные отрицательные последствия реализации. This section describes how an attacker might exploit a feature or its configuration, how to implement the countermeasure, and the possible negative consequences of implementation.

Уязвимость Vulnerability

Чем дольше пароль существует, тем выше вероятность того, что он будет скомпрометирован атакой с использованием атак злоумышленника, которые получают общие сведения о пользователе или когда пользователь делится паролем. The longer a password exists, the higher the likelihood that it will be compromised by a brute force attack, by an attacker gaining general knowledge about the user, or by the user sharing the password. Если установить **** для параметра политики «Максимальный срок действия пароля» значение 0, чтобы пользователям никогда не требовалось изменять свои пароли, злоумышленник может использовать скомпрометированную пароль, если допустимый пользователь имеет авторизованный доступ. Configuring the Maximum password age policy setting to 0 so that users are never required to change their passwords allows a compromised password to be used by the malicious user for as long as the valid user is authorized access.

Вопросы Considerations

Обязательное изменение паролей является долгосрочной практикой обеспечения безопасности, но текущие исследования настоятельно указывают на отрицательное влияние истечения срока действия пароля. Mandated password changes are a long-standing security practice, but current research strongly indicates that password expiration has a negative effect. Дополнительные сведения см. в руководстве по паролям Майкрософт. See Microsoft Password Guidance for further information.

Настройте для параметра политики «Максимальный срок использования пароля» значение, подходящее для бизнес-требований организации. Configure the Maximum password age policy setting to a value that is suitable for your organization’s business requirements. Например, многие организации имеют нормативные или страховые требования, требующие короткого срока действия паролей. For example, many organisations have compliance or insurance mandates requiring a short lifespan on passwords. Если такое требование существует, параметр политики максимального возраста паролей можно использовать для удовлетворения бизнес-требований. Where such a requirement exists, the Maximum password age policy setting can be used to meet business requirements.

Возможное влияние Potential impact

Если параметр политики максимального возраста паролей слишком низкий, пользователям приходится очень часто менять свои пароли. If the Maximum password age policy setting is too low, users are required to change their passwords very often. Такая конфигурация может снизить безопасность в организации, так как пользователи могут хранить свои пароли в незащиченном расположении или потерять их. Such a configuration can reduce security in the organization because users might keep their passwords in an unsecured location or lose them. Если значение этого параметра политики слишком высокое, уровень безопасности в организации снижается, так как он позволяет потенциальным злоумышленникам больше времени для обнаружения паролей пользователей или использования скомпрометных учетных записей. If the value for this policy setting is too high, the level of security within an organization is reduced because it allows potential attackers more time in which to discover user passwords or to use compromised accounts.

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

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

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

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

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

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

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

Какие события отслеживать в журнале безопасность

При некорректном вводе данных генерируется событие 4740, на всех контроллерах домена если он не один. С кодами отказов Kerberos:

  • 6 – имя пользователя не существует
  • 12 – Ограничение времени входа в систему
  • 18 – Учетная запись деактивирована, заблокирована или истек срок ее действия
  • 23 – Истек срок действия пароля пользователя
  • 24 – Предварительная аутентификация не удалась(неверный пароль)
  • 32 – Истек срок действия тикета
  • 37 – Время компьютера давно не синхронизировалось с доменным

и кодами ошибок NTLM

Код ошибки (десятичная система) — Код ошибки (16-ричная система) — Описание

  • 3221225572 — С0000064 — Такого имени пользователя не существует
  • 3221225578 — С000006А — Верное имя пользователя, но неверный пароль
  • 3221226036 — С0000234 — Учетная запись пользователя заблокирована
  • 3221225586 — С0000072 — Учетная запись деактивирована
  • 3221225583 — С000006Е — Пользователь пытается войти в систему вне обозначенного периода времени
  • 3221225584 — С0000070 — Ограничение рабочей станции
  • 3221225875 — С0000193 — Истек срок действия учетной записи
  • 3221225585 — 0000071 — Истек срок действия пароля
  • 3221226020 — С0000224 — Пользователь должен поменять пароль при следующем входе в систему
Понравилась статья? Поделиться с друзьями:
Быть в курсе нового
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: