Active Directory: основы для начинающих администраторов

Active Directory основы для начинающих администраторов

Active Directory это служба каталогов Microsoft, которая хранит информацию о пользователях, компьютерах и ресурсах сети, позволяя централизованно управлять доступом ко всей инфраструктуре организации. Без AD администрирование сети из более чем десяти компьютеров превращается в кошмар.

Зачем нужна Active Directory

Представьте. У вас в офисе 50 компьютеров. На каждом нужно создать учётные записи, настроить права доступа, установить политики паролей. Без AD вы идёте к каждому компу ногами. Создаёте локальную учётку. Настраиваете права. Уволился сотрудник? Идёте к его компу, удаляете учётку. А если он заходил ещё на три компьютера? Идёте ещё к трём.

Короче, это безумие. Active Directory решает эту проблему полностью.

С AD все учётные записи живут в одном месте, на контроллере домена. Пользователь входит в систему на любом компьютере сети, используя одну учётку. Уволился? Заблокировали учётку в AD, и он моментально теряет доступ ко всем ресурсам. Красота.

Мой бывший начальник Андрей Петрович (он сейчас руководит IT-отделом в компании на 200 человек) рассказывал, как они работали до внедрения AD. Все компьютеры были в рабочей группе. Пароли на общие папки передавались на стикерах. Когда увольняли сотрудника, никто толком не мог отключить ему все доступы. Однажды бывший менеджер два месяца после увольнения заходил на файловый сервер (старый Dell PowerEdge T340 на Xeon E-2224) и скачивал клиентскую базу. После этого случая AD внедрили за неделю.

Базовые понятия Active Directory

Тут такое дело. В AD много терминов, и поначалу голова идёт кругом. Разберём самые важные.

Домен (Domain). Это основная единица организации в AD. Грубо говоря, домен это ваша сеть, объединённая общими правилами и базой пользователей. У домена есть имя, например company.local или office.ru.

Контроллер домена (Domain Controller, DC). Сервер, на котором работает AD. Он хранит базу данных всех объектов (пользователей, компов, групп) и обрабатывает запросы на аутентификацию. Зашёл пользователь на свой компьютер и ввёл логин-пароль? Компьютер спросил у контроллера домена: «Этот пользователь настоящий?» Контроллер проверил и ответил.

Организационные подразделения (OU, Organizational Units). Это папки внутри домена. Используются для группировки объектов. Можно создать OU «Бухгалтерия», «Продажи», «Разработка» и разложить пользователей по ним. А потом к каждому OU применить свои групповые политики.

Объекты. Всё, что есть в AD, это объекты. Пользователи, компьютеры, группы, принтеры. У каждого объекта есть набор атрибутов (имя, фамилия, email, номер телефона и так далее).

Групповые политики (GPO). Набор правил, которые можно применить к пользователям и компьютерам. Запретить менять обои на рабочем столе? GPO. Настроить прокси-сервер в браузере? GPO. Заставить менять пароль каждые 90 дней? Тоже GPO. На самом деле GPO это отдельная огромная тема, о которой мы писали в другой статье.

Лес (Forest) и дерево (Tree). Лес это самый верхний уровень структуры AD. Один лес может содержать несколько доменов (деревьев). Для маленькой компании обычно достаточно одного домена в одном лесу. А вот в корпорациях с филиалами по всему миру может быть сложная структура с несколькими доменами.

Как развернуть Active Directory

Для начала вам нужен Windows Server. Любая редакция: Standard или Datacenter. Если честно, для AD разницы между ними нет (разница в других компонентах).

Процесс развёртывания:

  1. Установите Windows Server на выделенный сервер (или виртуальную машину)
  2. Задайте статический IP-адрес серверу
  3. Установите роль Active Directory Domain Services (AD DS) через Server Manager
  4. Повысьте сервер до контроллера домена

Вот как установить роль AD DS через PowerShell:

# Установка роли Active Directory Domain Services
Install-WindowsFeature AD-Domain-Services -IncludeManagementTools

# После установки роли повышаем сервер до контроллера домена
# Здесь создаём новый лес с доменом company.local
Install-ADDSForest `
    -DomainName "company.local" `
    -DomainNetBIOSName "COMPANY" `
    -InstallDns:$true `
    -SafeModeAdministratorPassword (ConvertTo-SecureString "P@ssw0rd123!" -AsPlainText -Force)
# ВАЖНО: используйте сложный пароль для режима восстановления
# Этот пароль понадобится, если DC не загрузится нормально

После выполнения команды сервер перезагрузится и станет контроллером домена. DNS-сервер установится автоматически (AD без DNS не работает, кстати, это частая ошибка новичков, пытаются использовать внешний DNS).

Первые шаги после развёртывания

Вот в чём прикол. AD развернуть несложно. Сложнее правильно его организовать.

Шаг 1: Создайте структуру OU. Не сваливайте всех пользователей в одну кучу. Создайте организационные подразделения, отражающие структуру компании.

# Создаём корневой OU для нашей организации
New-ADOrganizationalUnit -Name "Компания" -Path "DC=company,DC=local"

# Создаём подразделения для отделов
New-ADOrganizationalUnit -Name "IT-отдел" -Path "OU=Компания,DC=company,DC=local"
New-ADOrganizationalUnit -Name "Бухгалтерия" -Path "OU=Компания,DC=company,DC=local"
New-ADOrganizationalUnit -Name "Продажи" -Path "OU=Компания,DC=company,DC=local"

# Создаём OU для компьютеров (отдельно от пользователей!)
New-ADOrganizationalUnit -Name "Рабочие станции" -Path "OU=Компания,DC=company,DC=local"
New-ADOrganizationalUnit -Name "Серверы" -Path "OU=Компания,DC=company,DC=local"
# Разделять пользователей и компы по разным OU -- хорошая практика

Шаг 2: Создайте пользователей.

# Создаём пользователя Иванов Пётр
New-ADUser `
    -Name "Иванов Пётр" `
    -GivenName "Пётр" `
    -Surname "Иванов" `
    -SamAccountName "p.ivanov" `
    -UserPrincipalName "[email protected]" `
    -Path "OU=IT-отдел,OU=Компания,DC=company,DC=local" `
    -AccountPassword (ConvertTo-SecureString "TempPass123!" -AsPlainText -Force) `
    -ChangePasswordAtLogon $true `
    -Enabled $true
# Флаг ChangePasswordAtLogon заставит сменить пароль при первом входе

Шаг 3: Создайте группы безопасности. Группы нужны для управления доступом. Не назначайте права отдельным пользователям, назначайте группам. Потом просто добавляете пользователя в нужную группу.

# Создаём группу для доступа к файловому серверу
New-ADGroup `
    -Name "FileServer-Read" `
    -GroupScope Global `
    -GroupCategory Security `
    -Path "OU=IT-отдел,OU=Компания,DC=company,DC=local"

# Добавляем пользователя в группу
Add-ADGroupMember -Identity "FileServer-Read" -Members "p.ivanov"
# Теперь Иванов получит доступ к файловому серверу через группу

Управление через графический интерфейс

PowerShell это хорошо, но не все любят командную строку. Для управления AD есть графические инструменты.

Active Directory Users and Computers (ADUC). Основной инструмент. Открывается через Server Manager или dsa.msc. Здесь можно создавать, удалять и редактировать пользователей, группы, компьютеры, OU. Большинство администраторов проводят в этой консоли половину рабочего дня.

Active Directory Administrative Center (ADAC). Более современный интерфейс. По факту делает то же самое, что и ADUC, но выглядит посовременнее и имеет встроенный просмотрщик PowerShell-команд. То есть вы делаете что-то мышкой, а ADAC показывает, какая команда PowerShell была выполнена. Удобно для обучения.

Group Policy Management Console (GPMC). Для управления групповыми политиками. Отдельная консоль, отдельная вселенная.

DNS и Active Directory

Кстати, вот что важно понять сразу. AD и DNS неразрывно связаны. Active Directory использует DNS для поиска контроллеров домена, служб и ресурсов. Без правильно работающего DNS ваш AD будет глючить, тормозить и вообще работать странно.

Когда вы устанавливаете AD, DNS-сервер разворачивается автоматически. Все компьютеры в домене должны использовать этот DNS-сервер как основной. Типичная ошибка новичка: оставить на рабочих станциях DNS провайдера (8.8.8.8 или что-то такое). В результате компьютеры не могут найти контроллер домена и начинаются проблемы со входом.

Мой коллега Дмитрий (он администрирует сеть в торговой компании, основной сервер у них HPE ProLiant DL360 Gen10 с двумя Xeon Silver 4210) как-то потратил два дня на диагностику проблемы, когда пользователи не могли войти в домен по утрам. Оказалось, ночью DHCP-сервер раздавал адреса с DNS провайдера вместо внутреннего DNS. Поменял одну настройку в DHCP, и всё заработало.

Второй контроллер домена: зачем и когда

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

Знаете что? Второй контроллер домена нужно ставить сразу. Не через полгода, не когда первый сломается, а сразу. Это может быть даже виртуальная машина на другом физическом сервере.

# На втором сервере: установка роли AD DS
Install-WindowsFeature AD-Domain-Services -IncludeManagementTools

# Повышение до контроллера домена в существующем домене
Install-ADDSDomainController `
    -DomainName "company.local" `
    -InstallDns:$true `
    -Credential (Get-Credential) `
    -SafeModeAdministratorPassword (ConvertTo-SecureString "P@ssw0rd456!" -AsPlainText -Force)
# Система запросит учётные данные администратора домена
# После перезагрузки второй DC начнёт реплицировать базу AD

На самом деле, репликация между контроллерами домена происходит автоматически. Создали пользователя на одном DC, через несколько секунд (или минут, в зависимости от настроек) он появится на втором.

Ввод компьютера в домен

После настройки AD нужно ввести рабочие станции в домен. Это можно сделать через графический интерфейс (Свойства системы, Имя компьютера, Изменить) или через PowerShell:

# Вводим компьютер в домен
Add-Computer -DomainName "company.local" -Credential (Get-Credential) -Restart
# Потребуются учётные данные с правами на ввод в домен
# Компьютер перезагрузится и станет членом домена

После ввода в домен пользователи смогут входить на этот компьютер под своими доменными учётками. А вы сможете применять к нему групповые политики.

Типичные ошибки начинающих

А ещё расскажу про грабли, на которые наступают все новички.

Один контроллер домена. Уже говорил, но повторю. Всегда ставьте минимум два DC.

Слабые пароли. По умолчанию AD требует пароль минимум 7 символов с буквами и цифрами. Этого мало. Настройте политику паролей минимум на 12 символов.

Все пользователи в Domain Admins. Нет. Просто нет. В группе Domain Admins должны быть только администраторы. Обычные пользователи получают обычные права.

Нет резервного копирования. Если база AD потеряна и нет бэкапа, вы теряете всё: пользователей, группы, политики. Настройте бэкап состояния системы (System State) контроллера домена.

Имя домена .local. Тут мнения расходятся. Раньше все использовали .local (company.local). Сейчас Microsoft рекомендует использовать поддомен реального домена (ad.company.ru). Но на практике .local работает нормально, просто могут быть конфликты с mDNS на Mac и Linux.

Какая лицензия нужна для AD

Для развёртывания Active Directory нужен Windows Server с лицензиями. На keytrust24.store есть ключи Windows Server Standard и Datacenter. Для AD в небольшой компании (до 50 пользователей) хватит Standard. Ну и не забудьте про клиентские лицензии CAL (Client Access License), они нужны для каждого пользователя или устройства, подключающегося к серверу.

Бэкап Active Directory: как не потерять всё

Знаете что? Самое страшное, что может случиться с AD, это потеря базы данных без бэкапа. Все пользователи, все группы, все политики, все права доступа, всё пропадает. Восстановление с нуля занимает дни, если не недели.

# Бэкап System State контроллера домена
# Включает базу AD, SYSVOL, реестр, сертификаты
wbadmin start systemstatebackup -backupTarget:E: -quiet

# Проверяем дату последнего бэкапа
wbadmin get versions -backupTarget:E:

# Автоматизация через Task Scheduler:
# Создаём задачу на ежедневный бэкап в 2:00
schtasks /create /tn "AD-Backup" /tr "wbadmin start systemstatebackup -backupTarget:E: -quiet" /sc daily /st 02:00 /ru SYSTEM

Мой знакомый Роман из Перми (сисадмин в юридической фирме, контроллер домена на HPE ProLiant DL20 Gen10 Plus с Xeon E-2334) однажды потерял контроллер домена из-за сбоя RAID-контроллера. Оба диска в зеркале вышли из строя с разницей в три дня. Если бы не ежедневный бэкап System State, восстановление заняло бы неделю ручной работы. А так он поднял новый DC из бэкапа за 4 часа.

По факту, бэкап System State это минимум. Лучше иметь два контроллера домена (репликация) плюс ежедневный бэкап. Тогда даже при полной потере одного DC второй продолжит работать, а из бэкапа можно восстановить, если оба выйдут из строя.

Массовое создание пользователей из CSV

Короче, если в компанию пришло 30 новых сотрудников, создавать каждого через GUI это боль. Гораздо быстрее подготовить CSV-файл и загрузить через PowerShell.

# CSV-файл users.csv должен содержать колонки:
# FirstName,LastName,Username,Department,Password

Import-Csv "C:Scriptsusers.csv" | ForEach-Object {
    New-ADUser `
        -Name "$($_.FirstName) $($_.LastName)" `
        -GivenName $_.FirstName `
        -Surname $_.LastName `
        -SamAccountName $_.Username `
        -UserPrincipalName "$($_.Username)@company.local" `
        -Path "OU=$($_.Department),OU=Company,DC=company,DC=local" `
        -AccountPassword (ConvertTo-SecureString $_.Password -AsPlainText -Force) `
        -ChangePasswordAtLogon $true `
        -Enabled $true
    Write-Output "Создан: $($_.Username)"
}

Тут такое дело: этот скрипт за минуту создаст 30 пользователей, разложит их по OU и заставит сменить пароль при первом входе. Вручную это заняло бы полдня. Если честно, после того как начинаешь использовать PowerShell для AD, обратно к GUI уже не хочется.

Active Directory это фундамент корпоративной IT-инфраструктуры на Windows. Без неё можно обойтись, если у вас 5 компьютеров. Но начиная с 10-15 машин, жизнь без AD становится мучением. Потратьте время на правильную настройку в начале, и сэкономите сотни часов потом.