Active Directory на Ubuntu в облаке: пошаговая установка и настройка | AdminWiki

Установка Active Directory в облаке на Ubuntu: Полное руководство

19 декабря 2025 7 мин. чтения #Active Directory #Samba 4 #devops #ubuntu #инфраструктура #контроллер домена #облако

Введение: Зачем Active Directory в облаке на Linux?

Представь, что тебе нужно централизованное управление пользователями, компьютерами и политиками в гибридной среде. Классический Windows Server в облаке — дорого. Решение? Развернуть Active Directory на Ubuntu с помощью Samba 4. Это дает полную совместимость с Windows-клиентами при существенной экономии.

Важно: Samba 4 — это полноценная реализация контроллера домена Active Directory с поддержкой LDAP, Kerberos, DNS и Group Policy.

Подготовка облачного сервера Ubuntu

Давай разберем подготовительные шаги. Для облачной установки Active Directory тебе понадобится:

Требования к облачному инстансу

  • Ubuntu Server 20.04 LTS или 22.04 LTS (рекомендуется)
  • Минимум 2 vCPU и 4 ГБ RAM
  • 20 ГБ свободного места на диске
  • Статический публичный IP-адрес в облаке
  • Открытые порты: TCP 53, 88, 135, 139, 389, 445, 464, 636, 3268, 3269
  • Доменное имя (можно использовать subdomain.example.com)

Начальная настройка Ubuntu в облаке

Сначала обновим систему и настроим сеть:

bash
# Обновление пакетов
sudo apt update && sudo apt upgrade -y

# Установка необходимых утилит
sudo apt install -y net-tools dnsutils curl wget

# Проверка сетевых настроек
hostname -f
ip addr show

# Установка статического hostname (пример для AWS/Google Cloud)
sudo hostnamectl set-hostname dc01.ad.yourdomain.com
sudo sed -i 's/127.0.1.1.*/127.0.1.1\tdc01.ad.yourdomain.com dc01/' /etc/hosts
Внимание: В облачных провайдерах (AWS, GCP, Azure) убедись, что внутренний DNS разрешает имя сервера корректно. Часто нужно добавлять запись в /etc/hosts.

Установка и настройка Samba 4 как контроллера домена

Теперь перейдем к основной части — установке Active Directory на Ubuntu.

Шаг 1: Установка Samba и зависимостей

bash
# Установка Samba 4 и необходимых компонентов
sudo apt install -y samba krb5-config krb5-user winbind libpam-winbind libnss-winbind acl attr

# Установка пакетов для управления доменом
sudo apt install -y samba-dsdb-modules samba-vfs-modules

# Проверка версии Samba
samba --version

Шаг 2: Настройка Kerberos

Во время установки krb5-config тебя спросят о realm. Укажи свой домен в ВЕРХНЕМ РЕГИСТРЕ:

bash
# Если нужно изменить после установки, отредактируй файл:
sudo nano /etc/krb5.conf

# Добавь в [libdefaults]:
default_realm = AD.YOURDOMAIN.COM
dns_lookup_realm = true
dns_lookup_kdc = true

Шаг 3: Создание конфигурации Samba для Active Directory

Создаем основной конфигурационный файл. Замени AD.YOURDOMAIN.COM и dc01 на свои значения:

config
# Сначала делаем бэкап оригинального конфига
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.backup

# Создаем новый конфиг для контроллера домена
sudo nano /etc/samba/smb.conf

# Вставь следующую конфигурацию:
[global]
    workgroup = AD
    realm = AD.YOURDOMAIN.COM
    netbios name = DC01
    server role = active directory domain controller
    dns forwarder = 8.8.8.8
    idmap_ldb:use rfc2307 = yes

    # Настройки безопасности
    security = ads
    encrypt passwords = yes
    client ldap sasl wrapping = plain

    # Настройки DNS
    dns forwarder = 8.8.8.8
    dns forwarder = 1.1.1.1

    # Логи и производительность
    log file = /var/log/samba/log.%m
    log level = 1
    max log size = 1000

    # Отключаем ненужные сервисы
    load printers = no
    printing = bsd
    printcap name = /dev/null
    disable spoolss = yes

Шаг 4: Продвижение сервера в контроллер домена

Это ключевой этап установки Active Directory. Выполняем команду продвижения:

bash
# Запускаем продвижение (domain provision)
sudo samba-tool domain provision \
    --use-rfc2307 \
    --interactive \
    --dns-backend=SAMBA_INTERNAL

# Тебе будет предложено ввести:
# Realm: AD.YOURDOMAIN.COM (в верхнем регистре)
# Domain: AD
# Server Role: dc
# DNS backend: SAMBA_INTERNAL
# DNS forwarder IP: 8.8.8.8 (или твой DNS)
# Administrator password: задай сложный пароль!
Важно: Запомни пароль администратора! Он понадобится для управления доменом и присоединения клиентов.

Шаг 5: Запуск и настройка служб Samba

bash
# Останавливаем стандартные службы Samba
sudo systemctl stop smbd nmbd winbind
sudo systemctl disable smbd nmbd winbind

# Запускаем службы контроллера домена
sudo systemctl unmask samba-ad-dc
sudo systemctl start samba-ad-dc
sudo systemctl enable samba-ad-dc

# Проверяем статус
sudo systemctl status samba-ad-dc

# Тестируем Kerberos аутентификацию
kinit administrator@AD.YOURDOMAIN.COM
klist

Настройка DNS и сетевых параметров в облаке

Для корректной работы Active Directory в облаке критически важна правильная настройка DNS.

Настройка DNS-записей в облачном провайдере

Необходимые DNS записи:

Тип записи Имя Значение Назначение
A ad.yourdomain.com [публичный IP сервера] Основная запись домена
NS ad.yourdomain.com dc01.ad.yourdomain.com DNS-сервер домена
SRV _ldap._tcp dc01.ad.yourdomain.com:389 LDAP сервис
SRV _kerberos._tcp dc01.ad.yourdomain.com:88 Kerberos аутентификация

Проверка DNS-работоспособности

bash
# Проверяем DNS-записи с самого сервера
host -t A ad.yourdomain.com
host -t SRV _ldap._tcp.ad.yourdomain.com
host -t SRV _kerberos._tcp.ad.yourdomain.com

# Тестируем разрешение имен извне (с другого сервера)
nslookup dc01.ad.yourdomain.com
nslookup ad.yourdomain.com

Присоединение клиентов к домену

После установки Active Directory на Ubuntu можно присоединять клиентов.

Windows клиент

powershell
# В PowerShell на Windows клиенте:
Add-Computer -DomainName "ad.yourdomain.com" \
    -Credential (Get-Credential "AD\\administrator") \
    -Restart

Linux клиент (Ubuntu)

bash
# Установка необходимых пакетов
sudo apt install -y realmd sssd sssd-tools libnss-sss libpam-sss adcli

# Присоединение к домену
sudo realm discover ad.yourdomain.com
sudo realm join -U administrator ad.yourdomain.com

# Настройка автоматического создания home директорий
sudo pam-auth-update --enable mkhomedir

Безопасность и мониторинг в облаке

Рекомендации по безопасности

  • Брандмауэр: Настрой UFW или cloud firewall только на необходимые порты
  • SSL/TLS: Настрой LDAPS для шифрования LDAP трафика
  • Бэкапы: Регулярно бэкапи базу данных Samba (samba-tool backup)
  • Мониторинг: Настрой мониторинг через Prometheus + Grafana
  • Обновления: Регулярно обновляй систему и Samba

Полезные команды для управления доменом

bash
# Создание нового пользователя
sudo samba-tool user add username --given-name=Имя --surname=Фамилия

# Создание группы
sudo samba-tool group add "Developers"

# Добавление пользователя в группу
sudo samba-tool group addmembers "Developers" username

# Сброс пароля пользователя
sudo samba-tool user setpassword username

# Просмотр информации о пользователе
sudo samba-tool user show username

# Экспорт списка пользователей
sudo samba-tool user list > users.txt

Часто задаваемые вопросы (FAQ)

Можно ли использовать эту конфигурацию в продакшене?

Да, Samba 4 как контроллер домена стабилен для продакшена. Однако для критически важных сред рекомендуется использовать минимум 2 контроллера домена для отказоустойчивости.

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

Любой провайдер с поддержкой статических IP и возможностью настройки обратного DNS. AWS EC2, Google Cloud Compute Engine, Azure VMs, DigitalOcean Droplets — все отлично работают.

Как мигрировать существующий AD с Windows на Samba?

Используй samba-tool domain backup для бэкапа Windows AD и восстановления на Samba. Или настрой репликацию между Windows DC и Samba DC для постепенной миграции.

Поддерживаются ли Group Policy Objects (GPO)?

Да, Samba 4 поддерживает базовые GPO. Для сложных политик может потребоваться дополнительная настройка и использование rsat-инструментов с Windows.

Заключение

Установка Active Directory на Ubuntu в облаке — это мощное и экономичное решение для управления инфраструктурой. Ты получаешь все преимущества централизованного управления пользователями и компьютерами без лицензионных затрат на Windows Server.

Ключевые преимущества такого подхода:

  • Значительная экономия на лицензиях
  • Гибкость облачной инфраструктуры
  • Полная совместимость с Windows-клиентами
  • Возможность автоматизации через Ansible/Terraform
  • Легкое масштабирование в облачной среде
Поделиться:
Сохранить гайд? В закладки браузера