Введение: Зачем Active Directory в облаке на Linux?
Представь, что тебе нужно централизованное управление пользователями, компьютерами и политиками в гибридной среде. Классический Windows Server в облаке — дорого. Решение? Развернуть Active Directory на Ubuntu с помощью Samba 4. Это дает полную совместимость с Windows-клиентами при существенной экономии.
Подготовка облачного сервера 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 в облаке
Сначала обновим систему и настроим сеть:
# Обновление пакетов
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
Установка и настройка Samba 4 как контроллера домена
Теперь перейдем к основной части — установке Active Directory на Ubuntu.
Шаг 1: Установка Samba и зависимостей
# Установка 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. Укажи свой домен в ВЕРХНЕМ РЕГИСТРЕ:
# Если нужно изменить после установки, отредактируй файл:
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 на свои значения:
# Сначала делаем бэкап оригинального конфига
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. Выполняем команду продвижения:
# Запускаем продвижение (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
# Останавливаем стандартные службы 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-работоспособности
# Проверяем 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 на Windows клиенте:
Add-Computer -DomainName "ad.yourdomain.com" \
-Credential (Get-Credential "AD\\administrator") \
-Restart
Linux клиент (Ubuntu)
# Установка необходимых пакетов
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
Полезные команды для управления доменом
# Создание нового пользователя
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
- Легкое масштабирование в облачной среде