В современных IT-инфраструктурах централизованное управление пользователями и ресурсами является критически важным. Контроллер домена (Domain Controller) решает эту задачу, предоставляя единую точку аутентификации, авторизации и управления политиками безопасности. В этом руководстве мы развернем полнофункциональный контроллер домена на базе Samba AD DC — открытого решения, совместимого с Microsoft Active Directory.
Преимущества внедрения контроллера домена
- Централизованное управление: Единая база пользователей, групп и компьютеров
- Безопасность: Единые политики паролей, доступов и аудита
- Упрощение администрирования: Массовые операции через групповые политики
- Масштабируемость: Поддержка от малых офисов до крупных предприятий
- Кроссплатформенность: Интеграция Windows, Linux и macOS клиентов
Технические характеристики нашего развертывания
- Домен: ITSCH.LAN
- Имя сервера: dc1.itsch.lan
- IP-адрес: 192.168.0.11/24
- Шлюз по умолчанию: 192.168.0.1
- Минимальные требования: 2 vCPU, 4 ГБ ОЗУ, 20 ГБ HDD
- Рекомендуемые требования: 4 vCPU, 8 ГБ ОЗУ, 200 ГБ SSD
Предварительные требования
- Чистая установка Debian 13 (Bookworm)
- Права суперпользователя (root или sudo)
- Статический IP-адрес в сети
- Доступ в Интернет для загрузки пакетов
- Соответствие системным требованиям
1. ПОДГОТОВКА СИСТЕМЫ
Производим обновление системы:
apt update && apt upgrade -y
Устанавливаем необходимые пакеты:
apt install mc curl wget net-tools dnsutils -y
Присваиваем имя нашему серверу в сети:
hostnamectl set-hostname dc1.itsch.lan
echo "192.168.0.11 dc1.itsch.lan dc" >> /etc/hosts
2. НАСТРОЙКА СЕТИ
Определение имени сетевого интерфейса:
INTERFACE=$(ip link show | grep -E '^[0-9]:' | grep -v lo | awk -F': ' '{print $2}' | head -1)
Настраиваем сетевой интерфейс:
cat > /etc/network/interfaces << EOF
# Loopback interface
auto lo
iface lo inet loopback
# Primary network interface
auto ${INTERFACE}
iface ${INTERFACE} inet static
address 192.168.0.11
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 127.0.0.1 192.168.0.1
dns-search itsch.lan
EOF
Применяем настройки:
systemctl restart networking
Проверяем изменения:
ip addr show ${INTERFACE}
3. НАСТРОЙКА ВРЕМЕНИ
Устанавливаем службу синхронизации времени:
apt install chrony -y
Активируем флаг автоматической синхронизации времени через NTP:
timedatectl set-ntp true
Добавляем chrony в автозапуск при загрузке системы и запускаем службу без перезагрузки:
systemctl enable --now chrony
Выводим подробный список NTP‑серверов, с которыми синхронизируется система:
chronyc sources -v
Получаем сводную информацию о времени в системе:
timedatectl status
4. УСТАНОВКА SAMBA AD DC
Устанавливаем необходимые пакеты:
apt install samba winbind krb5-user krb5-config -y
Kerberos — это сетевой протокол аутентификации, позволяющий узлам в незащищённой сети безопасно подтверждать личность друг друга с помощью билетов (tickets), выданных доверенным центром (KDC — Key Distribution Center).
Kerberos нужен для ключевых функций контроллера домена.
Указываем область для Kerberos:
Указываем сервер Kerberos для нашей области:
Указываем управляющий сервер для нашей области в Kerberos:
Останавливаем старые службы:
systemctl stop smbd nmbd winbind
systemctl disable smbd nmbd winbind
Удаляем старый конфиг:
mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
Создаём домен (без пробелов!)
samba-tool domain provision --use-rfc2307 --interactive
Параметры:
- Realm: ITSCH.LAN
- Domain: ITSCH
- Server Role: dc
- DNS backend: SAMBA_INTERNAL
- DNS forwarder: 192.168.0.1
- Administrator password: [задайте надежный пароль]
5. НАСТРОЙКА DNS И KERBEROS
Копируем Kerberos конфиг:
cp /var/lib/samba/private/krb5.conf /etc/krb5.conf
Настраиваем DNS
echo "nameserver 127.0.0.1" > /etc/resolv.conf
echo "nameserver 192.168.0.1" >> /etc/resolv.conf
echo "search itsch.lan" >> /etc/resolv.conf
6. ЗАПУСК СЛУЖБЫ
Запускаем службы Samba AD:
systemctl unmask samba-ad-dc
systemctl enable samba-ad-dc
systemctl start samba-ad-dc
systemctl status samba-ad-dc
7. ПРОВЕРКА РАБОТЫ
Проверяем уровень домена:
samba-tool domain level show
Проверяем Kerberos:
kinit administrator@ITSCH.LAN
klist
Проверяем DNS:
host -t A dc.itsch.lan
host -t SRV _ldap._tcp.itsch.lan
Проверяем SMB (установим smbclient если нет):
apt install smbclient -y
smbclient -L localhost -U administrator
8. ОСНОВНЫЕ КОМАНДЫ УПРАВЛЕНИЯ
Управление пользователями:
Добавить пользователя:
samba-tool user add ivan --given-name="Иван" --surname="Иванов" --random-password
Список пользователей:
samba-tool user list
Сброс пароля:
samba-tool user setpassword ivan --newpassword="НовыйПароль123"
Удалить пользователя:
samba-tool user delete ivan
Управление группами:
Создать группу:
samba-tool group add "IT Department"
Добавить пользователя в группу:
samba-tool group addmembers "IT Department" ivan
Список групп:
samba-tool group list
Показать членов группы:
samba-tool group listmembers "IT Department"
Информация о домене:
Общая информация:
samba-tool domain info 127.0.0.1
Проверка репликации:
samba-tool drs showrepl
Проверка доверия (если есть другие домены):
samba-tool domain trust list
9. УПРАВЛЕНИЕ DNS
Добавить DNS запись:
samba-tool dns add localhost itsch.lan server A 192.168.0.11
Список записей:
samba-tool dns query localhost itsch.lan @ ALL
Удалить запись:
samba-tool dns delete localhost itsch.lan server A
10. РУКОВОДСТВО ДЛЯ НАЧИНАЮЩИХ
Показать все команды samba-tool:
samba-tool --help
Поиск по командам:
samba-tool --help | grep -i user
samba-tool --help | grep -i group
samba-tool --help | grep -i domain
Контроллер домена Samba AD работает. Управление осуществляется через команды samba-tool.
Для присоединения клиентов используйте домен ITSCH.LAN и DNS сервер 192.168.0.11:
———
Информатизация в школе: Telegram | Сайт | ВК