Windows Server 2012: Новые возможности служб доменов Active Directory

Учитывая, что Active Directory глубоко интегрирован в ОС, усовершенствования в Win2012 влияют на практически все ключевые области применения: файловый сервер, виртуализация, кластеры и прочее, включая развертывание, управление доступом и аутентификацию. Большая часть нововведений является принципиально новой, а не улучшающей, многие функции известные ранее дополнены и существенно переработаны, но главное что управление стало наоборот проще. Давай разбираться, с чем придется работать.

Новые функции и упрощенное управление

Служба AD развивается уже более 12 лет, и в новом релизе разработчики использовали весь свой опыт, чтобы пересмотреть многие ключевые моменты, касающиеся установки и управления, сделать все операции более гибкими, а главное, интуитивно понятными. Теперь основой конфигурирования AD DS, включая процессы развертывания, настройки и репликации, является PowerShell. В том числе, и при использовании графического инструмента Центр администрирования Active Directory (ADAC), являющегося, по сути, фронтэндом PS. При любых настройках в ADAC соответствующие команды будут занесены в историю (выводится внизу окна) и можно просмотреть, как в следующий раз автоматизировать ту или иную операцию при помощи скриптов. Все мастера по окончании работы позволяют сохранить результирующий PS скрипт, что очень кстати, ведь их не нужно будет писать с нуля самостоятельно, только адаптировать под свои нужды, подправив пару параметров. Модуль Active Directory для Windows PowerShell включает в себя новые командлеты для управления топологией репликации, динамического контроля доступом, тестирования и другими операциями. Акцент на развитие PS очевиден, по мере роста потребности в распределенных вычислениях требуется гибкий, удобный и единый инструмент, позволяющий автоматизировать все процессы при помощи сценариев и обладающий теми же возможностями, что и GUI. А вот консоли MMC и cmd.exe на эту роль не подходят, хотя еще входят в состав Windows (правда, сильно запрятаны).
Роль развертывания AD DS теперь является частью новой архитектуры Manager Server, позволяющей выполнять удаленную установку на несколько машин (их нужно просто указать в мастере или в команде PS).
Новый мастер сочетает командлеты, заменяющие привычные администраторам утилиты dcpromo и adprep, которые пока доступны, но прибегать к ним рекомендуется только в редких случаях. Так место dcpromo занял модуль PS — ADDSDeployment, который запускается в мастере после установки роли, автоматически или вручную (Promote this server to a domain controller). Повысить сервер до КД можно в любой удобный момент. Расширение схемы, подготовка леса и домена теперь происходят автоматически во время выполнения процесса повышения контроллера домена и не требуют больше выполнения отдельных задач на Schema Master.
Единственный вариант использования adprep — подготовка домена и леса при обновлении Windows Server 2008R2 (ключи /domainprep и /forestprep). Хотя, опять же, весьма желательна чистая установка. Мастера стали проще. Так при создании нового контроллера домена необходимо пройти 8 диалоговых окон (ранее 12), продвинутые настройки не скрываются (поэтому пропустить их нельзя), все текущие операции выполняются в одном окне. Например, DNS и сервер глобального каталога по умолчанию устанавливаются для каждого контроллера домена. При создании нового леса необходимо выполнить единственный командлет, которому в качестве параметра передать имя домена (об этом дальше). При создании и повышении КД первоначально производятся проверки, снижающие вероятность неудачного завершения операции, в случае обнаружения ошибок их можно устранить до начала операции.
Контейнер для гранулированной настройки парольных политик[/caption]
В Win2k8 появилась возможность назначать несколько политик паролей для конкретных пользователей или групп пользователей с помощью механизма Fine-Grained Password Policy, но удобного инструмента не предлагалось. Спустя некоторое время стали доступны утилиты, упрощающие задачу, к ним можно отнести Fine Grained Password Policy Tool, Specops Password Policy Basic, Password Policy Manager и другие. Теперь нужные настройки доступны в ADAC, и работать с ними просто: переходим в контейнер System — Password Settings Container, выбираем пункт меню Создать — Параметры паролей, заполняем в предложенных полях требования к паролю и указываем, к каким объектам их применять.

Контейнер для гранулированной настройки парольных политик


В дополнение к возможности Managed Service Accounts (MSA), появившейся в Win2k8R2, но не поддерживаемой в некоторых сценариях (вроде кластеров), введен новый класс безопасности Group Managed Service Accounts (gMSA), позволяющий выполнять задачу под одной учетной записью на нескольких серверах. Для проверки пароля используется специальная служба Group Key Distribution Service (GKDS), работающая также на серверах Win2012. По умолчанию пароль gMSA меняется каждые 30 дней.
Еще одна функция — активация с помощью Active Directory (Active Directory Based Activation, ADBA) — позволяет активировать компьютеры, не работающие в основной сети (например, находятся в удаленном филиале), при присоединении к домену (при наличии универсального ключа многократной установки, GVLK). Ранее для этого требовалось физически подключать такие компьютеры к сети и разворачивать Key Management Service (KMS) или, как вариант, покупать розничный ключ. Для управления ADBA предлагается специальный инструмент Volume Activation Management Toolkit (VAMT, goo.gl/3EmVB), который можно скачать отдельно или как часть Windows Assessment and Deployment Kit (ADK).
Кроме этого, в ADAM изменен интерфейс мониторинга, улучшено отслеживание состояния Group Policy, расширены выдаваемые рекомендации по обслуживанию и обновлен журнал событий.
Функция динамического управления доступом (Dynamic Access Control) позволяет установить политики, основываясь на роли пользователя, используемом устройстве, атрибутах каталогов и данных, к которым планируется получить доступ. Параллельно DAC позволяет снизить количество групп безопасности, что должно упростить администрирование, особенно в сложных сетях. Для определения назначения файлов используется средство классификации. Доступ, кроме групп, может предоставляться по заявкам (claims), которые интегрированы в Kerberos. Упрощен порядок восстановления отказа в доступе (Access Denied Remediation).
[caption id="attachment_1117" align="aligncenter" width="520"]Политику паролей можно указать вплоть до отдельной учетной записи Политику паролей можно указать вплоть до отдельной учетной записи

Начиная с Windows Server 2008R2 клиентские ПК можно было присоединить к домену при помощи специально подготовленного файла, без наличия подключения к доменной сети, — так называемое автономное присоединение к домену (Offline Domain Join). Это сокращало время на развертывание (особенно в случае массового создания VM), компьютер становился практически полноценным членом домена. Но тем не менее, такой подход имел ряд ограничений, например нельзя было сразу настроить и подключить DirectAccess. Теперь это возможно, так как в процессе Offline Domain Join передаются сертификат и политики.
Создание индекса, которое ранее нагружало КД, теперь можно отложить до времени меньшей загрузки. Такие задачи, как выдача, контроль и мониторинг относительных идентификаторов RID (Relative Identifier), используемых для генерирования идентификаторов безопасности (SID) для пользователей, групп и компьютеров, стали более управляемыми. Когда запас RID подходит к концу (10%), система начинает генерировать предупреждения. Количество RID, которое может генерировать домен, удвоено (с 1 до 2 миллионов, точнее с 2^30, до 2^31).

Доступ может предоставляться по заявкам (claims)

Доступ может предоставляться по заявкам (claims)

Виртуализация контроллера домена

В Windows до 2012 существовало несколько проблем, мешающих запускать контроллер домена в VM – откат из снапшота, нельзя было клонировать и выполнять V2V миграцию. Причина одна, и заключается в возникновении так называемого USN rollback (Update Sequence Number, номер последнего обновления), когда соседние КД запоминают последний USN партнера, и если он оказывается меньше ожидаемого, попросту блокируют обновления с этого КД, считая, что их база актуальна. Конечно, давно доступны рецепты, позволяющие решить эту проблему вручную, но уж слишком много волокиты. В Win2012 используется функция VM-Generation ID, которая обеспечивает возможность нормально реплицировать данные КД, запущенному в VM. Представляет она собой уникальный 128-битный идентификатор, который хранится в нереплицируемом атрибуте AD. Перед применением изменений в базу AD, контроллер домена сравнивает значение VM-Generation ID в своей базе AD со значением, полученным от гипервизора через драйвер Windows Server 2012. Если обнаруживается отличие, то делается вывод о применении отката. Теперь администраторы получают возможность восстанавливать работу КД из снапшотов и клонировать КД. Соответственно, эти возможности уже реализованы в интерфейсе и в командлетах PS, и все операции максимально упрощены.

Корзина Active Directory

Простота управления AD и сложность сетей приводит к росту процента ошибок, а удалить любой объект очень просто. И не обязательно это должно быть умышленное действие, достаточно небольшой ошибки в скрипте. Если вовремя не обнаружить ошибку, и она реплицируется на остальные КД, то вернуть объект обратно не всегда просто, даже если имеется резервная копия. Проблема не нова, и в MS это отлично понимали. В результате утилита NTDSUTIL из Windows Server 2008, использующая службу VSS, позволяла восстановить организационное подразделение и отдельный объект, правда с одной оговоркой — в настройках по умолчанию при удалении объект теряет большую часть своих свойств (пароль, managedBy, memberOf и прочие), поэтому после восстановления он будет не совсем тем, что требуется.

На самом деле объект AD удаляется не сразу, вначале он помечается маркером «tombstone» и перемещаются в контейнер контейнер Deleted Objects, после чего запускается счетчик жизни Tombstone Lifetime, по истечении которого объект окончательно убирает специальный процесс Garbage Collector. В новых версиях значение Windows Tombstone Lifetime равно 180 дней.

В Windows Server 2008R2 появилась корзина AD (Active Directory Recycle Bin, AD RB), которая автоматически активируется, когда домен находится на уровне Win2k8R2. По своей сути она схожа с корзиной, используемой в Windows, в которую помещаются удаленные файлы, и случайно удаленный объект может быть быстро и без проблем восстановлен. Причем восстановленный из AD RB объект сразу же получает и все свои атрибуты. По умолчанию время «жизни» удаленного объекта в AD RB составляет 180 дней, после этого он переходит в состояние «Recycle Bin Lifetime», теряет атрибуты и через некоторое время полностью удаляется. Для восстановления предлагалось использовать командлеты Get-ADObject и Restore-ADObject:

PS> Get-ADObject -Filter {displayName -eq "user"} \
    -IncludeDeletedObjects | Restore-ADObject

Количество параметров командлета позволяет строить сценарии любой сложности. Например, найти организационное подразделение OU, к которой принадлежала удаленная учетная запись, и затем восстановить весь OU. В Windows Server 2012 в дополнение к этому появился графический интерфейс для AD RB, при помощи которого можно включить корзину, найти и восстановить удаленные объекты. Учитывая, что ADAC и AD RB базируются на PowerShell, все предыдущие сценарии будут работать и списывать их еще рано.
Для работы корзины необходимо, чтобы лес работал на функциональном уровне Win2k8R2 (узнать можно, запустив Get-ADForest и просмотрев строку ForestMode). При создании леса и домена в Win2012 функция AD RB по умолчанию отключена, активировать ее можно из ADAC, выбрав Задачи — Включить корзину, или при помощи командлета Enable-ADOptionalFeature:

PS> Enable-ADOptionalFeature –Identity \
    ‘CN=Recycle Bin Feature,CN=Optional 
    Features,CN=Directory Service,CN=Windows NT,\
    CN=Services,CN=Configuration,DC=ad,DC=example,\
    DC=org’ –Scope ForestOrConfigurationSet \
    –Target ‘example.org’

После чего некоторое время понадобится на репликацию настроек. Теперь все удаленные объекты будут находиться в контейнере Deleted Objects, просто выбираем нужный, ориентируясь по имени или прочим атрибутам. Если родительский объект не существует (его можно найти при помощи пункта меню Найти родительский элемент), предусмотрено восстановление в другую ветку при помощи «Восстановить в» (Restore To).
Но нужно помнить, что включение AD RB процесс необратимый, т.е. выключить корзину нельзя (об этом выводится предупреждение при активации), и хотя это полезная возможность, но в больших меняющихся средах она будет приводить к увеличению базы. Эту проблему можно частично решить, например, уменьшив время хранения объекта в корзине.

Active Directory Recycle Bin не отменяет, а дополняет операции по резервному копированию.

Администрирование AD с PowerShell

Сегодня PowerShell становится главным инструментом при администрировании Windows, поэтому стоит рассмотреть основные командлеты, касающиеся AD. Так чтобы добавить роль AD DS, достаточно выполнить команду:

PS> Add-WindowsFeature AD-Domain-Services \
    -IncludeManagementTools

Если установка выполняется на удаленную машину, просто добавляем «-ComputerName -Restart«. В примере вместе с AD установили и инструменты управления, включая модуль PS, который затем следует подключить, чтобы он был виден:

PS> Import-Module ActiveDirectory

Далее создаем КД, домен или лес. Для этого предлагается три командлета: Install-ADDSDomainController, Install-ADDSDomain и Install-ADDSForest. Их работа в общем схожа, если не указать некоторые параметры в командной строке, они будут запрошены по ходу выполнения скрипта:

PS> Install-ADDSDomainController "example.org"

Иногда лучше произвести предварительные проверки при помощи командлета Test-ADDSDomainControllerInstallation, в отличие от параметра «-WhatIf«, он проверит, возможны ли соответствующие изменения в текущих условиях.
При создании леса можно сразу указать его уровень:

PS> Install-ADDSForest –DomainName example.org \
    -CreateDNSDelegation -DomainMode Win8 \
    -ForestMode Win8

Получим список всех КД:

PS> Get-ADDomainController -Filter * \
    | ft Hostname,Site

При этом возвращаются подробные сведения. Параметр Filter, используемый в командлетах AD PowerShell, ограничивает список возвращаемых объектов.
Просмотрим данные об объектах репликации:

PS> Get-ADReplicationSite -Filter *

Домен создан, пора его наполнить учетными записями. Для этих целей предлагается командлет New-ADUser. В самом простом случае достаточно указать его имя, и пользователь будет автоматически помещен в группу Пользователи домена (Users), поэтому лучше сразу задать группу:

PS> New-ADUser -name User1 -path \
    "SN=Sales,DC=example,DC=org" -passThru

Используя остальные параметры (подробнее goo.gl/qbtzb или «Get-Help New-AdUser -full»), можно заполнить любые атрибуты учетной записи. Если количество пользователей велико, то проще выполнить импорт из заранее подготовленного CSV-файла (при помощи Import-CSV).
Проверить установки любой учетной записи или отобрать их по фильтру можно при помощи командлета Get-ADUser. После создания учетная запись выключена, не забываем ее включить:

PS> Enable-ADAccount User1

Практически для всех остальных операций по созданию объектов AD также предложены свои командлеты — компьютеры (New-ADComputer), организационное подразделение OU (New-ADOrganizationalUnit), группы (New-ADGroup) и так далее. Форматы вызова во многом напоминают New-ADUser. Соответственно, все командлеты для получения специфических данных начинаются с Get-AD*, для изменения предназначены Set-AD*. Автодополнение доступно по клавише табуляции, поэтому найти нужные легко.

Теги: ,

Понравилась статья? Оставьте комментарий или подпишитесь на RSS рассылку.

Комментарии

Комментариев пока что нет

Оставить комментарий

(required)

(required)