Задание 1 — Контроллер домена Samba DC
- Имя домена:
au-team.irpo - Ввести в домен машину HQ-CLI
- Создать 5 пользователей:
hquser1—hquser5 - Создать группу
hq, добавить пользователей - Пользователи
hqаутентифицируются на HQ-CLI - sudo только для:
cat,grep,id
Установка task-samba-dc
BR-SRVУстанавливаем пакет, содержащий всё необходимое для контроллера домена Samba:
apt-get update && apt-get install -y task-samba-dc
Настройка контроллера домена (Provisioning)
BR-SRVУдаляем старые конфигурации и создаём директорию sysvol:
rm -f /etc/samba/smb.conf && rm -rf /var/lib/samba/ /var/cache/samba/ && mkdir -p /var/lib/samba/sysvol
Запускаем provisioning:
samba-tool domain provision
На вопросы отвечаем (значения по умолчанию — Enter):
Domain [AU-TEAM]: Enter
Server Role (dc, member, standalone) [dc]: Enter
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: Enter
DNS forwarder IP address (write 'none' to disable forwarding) [77.88.8.8]: Enter
Administrator password: <вводим пароль>
Retype password: <повторяем пароль>
Server Role: active directory domain controller
Hostname: br-srv
NetBIOS Domain: AU-TEAM
DNS Domain: au-team.irpo
DOMAIN SID: S-1-5-21-787256343-696816705-1451210
Настройка Kerberos и запуск Samba
BR-SRVКопируем конфиг Kerberos и запускаем службу:
cp /var/lib/samba/private/krb5.conf /etc/krb5.conf
# На вопрос "cp: overwrite '/etc/krb5.conf'?" отвечаем: y
systemctl enable --now samba.service
Synchronizing state of samba.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable samba
Created symlink /etc/systemd/system/multi-user.target.wants/samba.service → /usr/lib/systemd/system/samba.service.
Настраиваем DNS-резолвер, чтобы BR-SRV использовал себя как DNS (одной командой):
sed -i -e "s/^search.*/search au-team.irpo/" -e "s/^nameserver.*/nameserver 127.0.0.1/" /etc/resolv.conf
Проверка работы домена и Kerberos
BR-SRVsamba-tool domain info 127.0.0.1
Forest : au-team.irpo
Domain : au-team.irpo
Netbios domain : AU-TEAM
DC name : br-srv.au-team.irpo
DC netbios name : BR-SRV
Server site : Default-First-Site-Name
Client site : Default-First-Site-Name
Получаем Kerberos-тикет:
kinit Administrator
# Вводим пароль [email protected]
Password for [email protected]:
Warning: Your password will expire in 41 days on Mon Apr 13 09:19:34 2026
klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: [email protected]
Valid starting Expires Service principal
03/02/26 09:24:12 03/02/26 19:24:12 krbtgt/[email protected]
renew until 03/03/26 09:24:10
Создание группы и пользователей
BR-SRVsamba-tool group add hq
for i in {1..5}; do
samba-tool user add hquser$i P@ssw0rd;
samba-tool user setexpiry hquser$i --noexpiry;
samba-tool group addmembers "hq" hquser$i;
done
Added group hq
User 'hquser1' added successfully
Expiry for user 'hquser1' disabled.
Added members to group hq
User 'hquser2' added successfully
Expiry for user 'hquser2' disabled.
Added members to group hq
User 'hquser3' added successfully
Expiry for user 'hquser3' disabled.
Added members to group hq
User 'hquser4' added successfully
Expiry for user 'hquser4' disabled.
Added members to group hq
User 'hquser5' added successfully
Expiry for user 'hquser5' disabled.
Added members to group hq
samba-tool group listmembers hq
hquser2
hquser1
hquser5
hquser3
hquser4
Изменение DNS-сервера в DHCP
HQ-RTRНа HQ-RTR работает DHCP-сервер. Меняем выдаваемый клиентам адрес DNS-сервера на 192.168.0.2 (BR-SRV — контроллер домена):
sed -i "s/option domain-name-servers .*/option domain-name-servers 192.168.0.2;/" /etc/dhcp/dhcpd.conf systemctl restart dhcpd.service
Проверка DNS на HQ-CLI
HQ-CLIsed -i "s/nameserver.*/nameserver 192.168.0.2/" /etc/resolv.conf cat /etc/resolv.conf
# Generated by resolvconf
# Do not edit manually, use
# /etc/net/ifaces/<interface>/resolv.conf instead.
domain au-team.irpo
nameserver 192.168.0.2
192.168.0.2 (BR-SRV), домен au-team.irpo корректен.Установка task-auth-ad-sssd
HQ-CLIapt-get update && apt-get install -y task-auth-ad-sssd
Ввод HQ-CLI в домен
HQ-CLIВводим в домен через Центр Управления Системой (ЦУС):
- Открываем ЦУС → Пользователи → Аутентификация
- Выбираем Домен Active Directory
- Домен:
au-team.irpo| Имя компьютера:hq-cli - Выбираем SSSD (в единственном домене)
- Нажимаем Применить, вводим пароль Administrator
- «Добро пожаловать в домен AU-TEAM.IRPO.» → ОК
После перезагрузки — финальная настройка:
# Автосоздание домашних папок echo "session required pam_mkhomedir.so skel=/etc/skel umask=0022" >> /etc/pam.d/system-auth # Проверка getent passwd hquser1 getent group hq
Настройка sudo
HQ-CLIОграничиваем привилегии группы hq — только cat, grep, id:
roleadd hq wheel echo "Cmnd_Alias SHELLCMD = /bin/cat, /bin/grep, /usr/bin/id" > /etc/sudoers.d/hq echo "WHEEL_USERS ALL=(ALL:ALL) SHELLCMD" >> /etc/sudoers.d/hq
roleadd hq wheel добавляет доменную группу hq в роль wheel. Файл /etc/sudoers.d/hq ограничивает набор разрешённых команд.Проверка — вход и sudo
HQ-CLIОдной командой: входим под hquser1 и проверяем все ограничения sudo:
echo "P@ssw0rd" | su - hquser1 -c "echo 'P@ssw0rd' | sudo -S id; sudo cat /etc/hosts; sudo grep '127.0.0.1' /etc/hosts; sudo ip a 2>&1"
su - hquser1
# Вводим пароль: P@ssw0rd
[hquser1@hq-cli ~]$ sudo id uid=0(root) gid=0(root) группы=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),19(proc) [hquser1@hq-cli ~]$ sudo cat /etc/hosts 127.0.0.1 localhost.localdomain localhost ::1 localhost6.localdomain localhost6 [hquser1@hq-cli ~]$ sudo grep "127.0.0.1" /etc/hosts 127.0.0.1 localhost.localdomain localhost [hquser1@hq-cli ~]$ sudo ip a Извините, пользователю hquser1 не разрешено выполнять «/sbin/ip a» как root на hq-cli.au-team.irpo.
cat, grep, id работают через sudo, остальные команды — запрещены. Задание выполнено.