Задание №1: Контроллер домена Samba DC и ввод клиента HQ-CLI
В данном задании на сервере филиала (BR-SRV) развёртывается контроллер домена Active Directory на базе Samba DC для доменной зоны au-team.irpo.
Затем выполняется ввод клиентской графической станции HQ-CLI в созданный домен, создание учетных записей hquser1–hquser5, объединение их в доменную группу hq и настройка гранулярного делегирования прав через ролевую модель libnss-role и /etc/sudoers (разрешён запуск только команд cat, grep, id).
Узлы выполнения
- BR-SRV — первичный контроллер домена (Samba DC, встроенный DNS, Kerberos, пользователи и группы).
- HQ-RTR — перенаправление DNS-сервера в конфигурации DHCP (
dnsmasq) на контроллер домена. - HQ-CLI — клиентская рабочая станция (ввод в домен через Центр управления системой
acc, связка ролейlibnss-roleи ограничениеsudo).
1. Теоретическая справка
Что такое Samba DC?
Samba 4 Active Directory Domain Controller (AD DC) — полноценная реализация служб каталога Microsoft Active Directory в Linux. Она объединяет в себе:
- Сервер каталогов LDAP для хранения информации об объектах (пользователи, группы, компьютеры);
- Центр распределения ключей Kerberos KDC для безопасной сквозной аутентификации;
- Встроенный DNS-сервер Samba Internal DNS для разрешения служебных записей SRV, A и CNAME;
- Общую сетевую папку политик SYSVOL.
Механизм ролей libnss-role и roleadd в ALT Linux
В ALT Linux для сопоставления доменных групп Active Directory с локальными системными группами (например, привилегированной группой wheel) используется механизм libnss-role. Команда roleadd hq wheel сообщает системе, что члены доменной группы hq при аутентификации на машине автоматически наделяются правами локальной группы wheel.
2. Развёртывание Samba DC на сервере BR-SRV
Выполняем все действия под пользователем root.
Шаг 1.1. Установка пакетов Samba DC
Для загрузки необходимых компонентов на сервере должен функционировать выход в Интернет:
# Обновляем кэш репозиториев и устанавливаем метапакет контроллера домена:
apt-get update && apt-get install task-samba-dc -yВажно: строгий порядок действий
Сначала обязательно устанавливаем пакеты, а только потом меняем DNS! Если изменить DNS до установки пакетов (например, направив на ещё ненастроенный локальный резолвер), сервер потеряет связь с репозиториями ALT Linux в Интернете и вы не сможете скачать необходимые пакеты.
Что делает task-samba-dc?
Это метапакет ALT Linux, который автоматически устанавливает все необходимые компоненты: демон samba, библиотеки аутентификации Kerberos, утилиты администрирования samba-tool и модули безопасности.
Шаг 1.2. Настройка DNS-резолвера перед инициализацией домена
После успешной установки пакетов подготавливаем сетевой резолвер:
# Прописываем рабочий DNS-сервер
echo "nameserver 192.168.1.10" >> /etc/net/ifaces/enp7s1/resolv.conf
# Применяем сетевые настройки
systemctl restart network
# Проверяем фактический resolv.conf и пинг в Интернет
cat /etc/resolv.conf
ping ya.ru -c 2Шаг 1.3. Подготовка и инициализация (Provisioning) домена
Перед созданием нового домена необходимо полностью удалить конфигурации по умолчанию и старые базы данных:
# Удаляем базовый smb.conf
rm -f /etc/samba/smb.conf
# Очищаем каталоги баз данных Samba
rm -rf {/var/lib/samba, /var/cache/samba}
# Создаём каталог репликации групповых политик SYSVOL
mkdir -p /var/lib/samba/sysvolЗапускаем интерактивную инициализацию домена:
samba-tool domain provisionОтветы на запросы мастера:
- Realm:
AU-TEAM.IRPO(нажимаем Enter для согласия) - Domain:
AU-TEAM(нажимаем Enter) - Server Role:
dc(нажимаем Enter) - DNS backend:
SAMBA_INTERNAL(нажимаем Enter) - DNS forwarder IP address: нажимаем Enter (или вводим
77.88.8.8) - Administrator password: вводим
P@ssw0rd - Retype password: повторяем пароль
P@ssw0rd
Шаг 1.4. Настройка Kerberos и запуск службы
Samba создаёт рабочий файл конфигурации Kerberos в закрытой директории. Подменяем им системный файл:
# Создаём резервную копию системного файла krb5.conf
mv /etc/krb5.conf /etc/krb5.conf.back
# Копируем сгенерированный файл конфигурации домена
cp /var/lib/samba/private/krb5.conf /etc/krb5.conf
# Включаем автозапуск и активируем службу Samba DC
systemctl enable --now samba
# Проверяем статус работы демона
systemctl status samba
# Проверяем доступность домена локально
samba-tool domain info 127.0.0.13. Настройка DNS-записей и проверка билета Kerberos (BR-SRV)
Клиентам домена и сервисам необходимы A-записи для обращения к хостам по доменным именам.
Шаг 2.1. Добавление ресурсных записей A
# Добавляем A-записи ключевых серверов и маршрутизаторов
samba-tool dns add br-srv.au-team.irpo au-team.irpo hq-srv A 192.168.1.10 -U Administrator
samba-tool dns add br-srv.au-team.irpo au-team.irpo hq-rtr A 192.168.1.1 -U Administrator
samba-tool dns add br-srv.au-team.irpo au-team.irpo br-rtr A 192.168.3.1 -U Administrator
# Добавляем A-записи для будущих веб-приложений
samba-tool dns add br-srv.au-team.irpo au-team.irpo web.au-team.irpo A 172.16.1.1 -U Administrator
samba-tool dns add br-srv.au-team.irpo au-team.irpo docker.au-team.irpo A 172.16.2.1 -U Administrator
# Просматриваем все записи зоны au-team.irpo
samba-tool dns query br-srv.au-team.irpo au-team.irpo @ ALL -U administratorЗапрос пароля Administrator
При выполнении каждой команды утилита samba-tool запросит пароль администратора домена — вводим P@ssw0rd.
Шаг 2.2. Переключение резолвера BR-SRV на локальный DNS
Теперь, когда Samba DC работает и обслуживает DNS, переключаем локальный резолвер сервера на 127.0.0.1:
# Заменяем внешний DNS на локальный loopback
sed -i 's/nameserver 192.168.1.10/nameserver 127.0.0.1/' /etc/net/ifaces/enp7s1/resolv.conf
# Перезапускаем сеть
systemctl restart network
# Проверяем файл resolv.conf
cat /etc/resolv.conf
# Проверяем получение билета Kerberos TGT (Ticket Granting Ticket)
kinit administrator@AU-TEAM.IRPO(При запросе пароля вводим P@ssw0rd. Команда должна завершиться без ошибок).
4. Создание пользователей и доменной группы (BR-SRV)
Согласно заданию, создаём группу hq и 5 пользователей hquser1–hquser5 с добавлением их в группу:
# 1. Создаём доменную группу hq
samba-tool group add hq
# 2. Быстрое создание пользователей hquser1 - hquser5 в цикле
for i in {1..5}; do samba-tool user add hquser$i P@ssw0rd; done
# 3. Включение пользователей в группу hq
for i in {1..5}; do samba-tool group addmembers hq hquser$i; done
# 4. Проверка членов группы hq
samba-tool group listmembers hqВывод команды проверки должен содержать:
hquser1
hquser2
hquser3
hquser4
hquser55. Корректировка DNS-сервера на маршрутизаторе HQ-RTR
Чтобы клиент HQ-CLI при получении сетевых настроек по DHCP автоматически обращался к нашему новому контроллеру домена BR-SRV (192.168.3.10), обновляем опцию dhcp-option=6 в конфигурации dnsmasq:
# Подключаемся на HQ-RTR под root:
sed -i 's/192.168.1.10/192.168.3.10/' /etc/dnsmasq.conf
# Перезапускаем сервис dnsmasq
systemctl restart dnsmasq
# Убеждаемся в наличии строки dhcp-option=6,192.168.3.10
cat /etc/dnsmasq.conf6. Ввод в домен рабочей станции HQ-CLI (GUI)
Переходим за графическую консоль рабочей станции HQ-CLI под стандартным пользователем user:
Шаг 6.1. Обновление сети и ввод в домен через Центр управления (Alterator)
Открываем терминал и перезагружаем сетевой интерфейс для обновления настроек DNS от DHCP:
bashsu - systemctl restart network cat /etc/resolv.conf exit(Убеждаемся, что в
nameserverуказан IP контроллера доменаBR-SRV).Запускаем Центр управления системой ALT Linux:
bashacc(При запросе прав вводим пароль суперпользователя).
В левом меню выбираем: Пользователи → Аутентификация.
Устанавливаем флажок: Домен Active Directory.
Нажимаем кнопку Применить.
В появившемся диалоговом окне ввода учетных данных администратора домена вводим пароль:
P@ssw0rd.При успешном подключении появится окно: «Добро пожаловать в домен AU-TEAM.IRPO».
Перезагружаем рабочую станцию:
- Меню приложений → Выйти → Перезагрузить.
Шаг 6.2. Проверка первого входа под доменным пользователем
На экране входа в систему (Display Manager):
- Имя пользователя:
hquser1 - Пароль:
P@ssw0rd
Система успешно авторизует пользователя и создаст домашний каталог /home/AU-TEAM/hquser1.
7. Делегирование прав и ограничение sudo на HQ-CLI
По требованию задания пользователи группы hq должны иметь возможность выполнять с повышенными привилегиями только команды cat, grep, id.
Шаг 7.1. Настройка ролевой модели и sudoers
Открываем терминал и переходим в режим суперпользователя root (su -):
# 1. Проверяем статус подсистемы libnss-role
control libnss-role
# Ожидаемый вывод: enabled
# 2. Связываем доменную группу hq с привилегированной системной ролью wheel
roleadd hq wheel
# 3. Добавляем правило строго ограниченного sudo в конец файла /etc/sudoers
echo "WHEEL_USERS ALL=(ALL:ALL) /bin/cat, /bin/grep, /usr/bin/id" >> /etc/sudoers
# 4. Проверяем последние строки /etc/sudoers
tail -n 3 /etc/sudoersШаг 7.2. Проверка ограничений под доменным пользователем
Перезагружаем машину или выполняем повторный вход под пользователем hquser1:
- Меню → Выйти → Перезагрузить.
- Входим как:
hquser1/P@ssw0rd.
Открываем терминал и проверяем разрешённые команды:
# 1. Проверка UID/GID и ролей
sudo id
# Вводим пароль: P@ssw0rd
# Результат: uid=0(root) gid=0(root)...
# 2. Проверка чтения системных файлов
sudo cat /etc/resolv.conf
# Результат: содержимое файла успешно выводится
# 3. Проверка команды grep
sudo grep "nameserver" /etc/resolv.conf
# Результат: найденная строка выводитсяПроверка запрета на другие команды:
# Попытка выполнить запрещенную команду (например, bash или reboot)
sudo ls /root
sudo -iОжидаемый результат: Sorry, user hquser1 is not allowed to execute ... as root on hq-cli.au-team.irpo.
Итог выполнения Задания №1
Домен Active Directory успешно развёрнут на BR-SRV, рабочая станция HQ-CLI введена в домен, пользователи авторизуются через Kerberos/LDAP, а права административного доступа строго ограничены белым списком утилит.
