Задание
Настройте доменный контроллер Samba на машине BR-SRV.
- Создайте 5 пользователей для офиса HQ: имена пользователей формата user№.hq. Создайте группу hq, введите в эту группу созданных пользователей
- Введите в домен машину HQ-CLI
- Пользователи группы hq имеют право аутентифицироваться на клиентском ПК
- Пользователи группы hq должны иметь возможность повышать привилегии для выполнения ограниченного набора команд: cat, grep, id. Запускать другие команды с повышенными привилегиями пользователи группы не имеют права
- Выполните импорт пользователей из файла users.csv. Файл будет располагаться на виртуальной машине BR-SRV в папке /opt
Реализация
Будет рассмотрен пример на основе настроек МОДУЛЯ–1
Имеем установленный и настроенный DNS сервер на HQ-SRV. Настройки аналогичны Модуль–1, Задание–10.
Дополнительная настройка Bind
1. На HQ-SRV открываем конфигурационный файл DNS сервера /etc/named.conf
# nano /etc/named.conf
и дописываем строчку
allow-transfer { 192.168.200.2; };
где: 192.168.200.2 - IP адрес BR-SRV
Перезагружаем службу
# systemctl restart named
Установка сервера SAMBA DC на BR-SRV
База знаний РЕД ОС - Установка сревера SAMBA DC
Переводим SELinux в режим уведомлений
# setenforce 0
Проверяем что сервер имеет полное доменное имя
# hostnamectl
Установка необходимых пакетов
# dnf install samba* krb5* -y
Настройка сетевого интерфейса через утилиту nmtui
В настройках сетевого интерфейса BR-SRV в конфигурации IPv4 необходимо внести следующие значения:
IP-адрес первого DNS-сервера – IP-адрес HQ-SRV
IP-адрес второго DNS-сервера – IP-адрес создаваемого контроллера домена (BR-SRV)
Домены поиска – au-team.irpo
Отключаем DNS-службы systemd-resolved в файле /etc/systemd/resolved.conf
# nano /etc/systemd/resolved.conf
Установливаем параметр DNSStubListener в значение no, отключив прослушивание systemd-resolved на порту 53.
Перезапускаем systemd-resolved и NetworkManager
# systemctl restart systemd-resolved.service NetworkManager
Проверяем изменения в настройках
# cat /etc/resolv.conf
В выводе должен быть указан адрес отличающийся от 127.0.0.53 и Домен поиска (search)
Создание домена под управлением Samba DC
Переименовываем файл /etc/smb.conf, он будет создан в процессе выполнения команды samba-tool
Данный файла при запуске полуавтоматической конфигурации может вызвать ошибку.
# mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
Создаем резервную копию конфигурационного файла kerberos, используемого по умолчанию
# cp /etc/krb5.conf /etc/krb5.conf.bak
Настройка конфигурации Kerberos /etc/krb5.conf
Данный файл приводим к следующему виду
# nano /etc/krb5.conf
Полуавтоматическое конфигурирование сервера с помощью утилиты samba-tool
Конфигурирование в интерактивном режиме выполняется командой:
# samba-tool domain provision --use-rfc2307 --interactive
Запуск и проверка работоспособности
Запуск и добавление в автозагрузку службы samba:
# systemctl enable --now samba
Проверка статуса службы:
# systemctl status samba
Проверяем работу домена
# samba-tool domain info 127.0.0.1
# samba-tool domain info 192.168.200.2
Добавление пользователей
Создаем 5 пользователей
# samba-tool user add user1.hq P@ssw0rd
# samba-tool user add user2.hq P@ssw0rd
# samba-tool user add user3.hq P@ssw0rd
# samba-tool user add user4.hq P@ssw0rd
#samba-tool user add user5.hq P@ssw0rd
Создаем группу и добавляем туда созданных пользователей
# samba-tool group add hq
# samba-tool group addmembers hq user1.hq,user2.hq,user3.hq,user4.hq,user5.hq
Вывод списка пользователей Samba DC
# samba-tool user list
Ввод клиента HQ-CLI в домен
В настройке сетевого интерфейса HQ-CLI добавляем Дополнительные серверы DNS – прописав IP адрес BR-SRV
В терминале HQ-CLI запускаем скрипт join-to-domain.sh с привилегиями суперпользователя
Вводим пароль, который вводили при настройке домена через samba-tool
Перезагружаем HQ-CLI и входим под доменным пользователем
Проверка
На BR-SRV проверяем
Пример получения списка имен (SAM) компьютеров:
# samba-tool computer list
Пример получения списка уникальных составных имен компьютеров (DN):
# samba-tool computer list --full-dn
Пример получения полного списка учетных записей в домене
# samba-tool user list
Пример получения списка уникальных составных имен пользователей (DN):
# samba-tool user list --full-dn
Привилегии для выполнения набора команд
Создаем файл в /etc/sudoers.d/hq на HQ-CLI
# nano /etc/sudoers.d/hq
Прописываем следующую строку
Повышение привилегий с вводом пароля
%hq ALL=(ALL) /usr/bin/cat, /usr/bin/grep, /usr/usr/bin/id
Повышение привилегий без ввода пароля
%hq ALL=(ALL) NOPASSWD:/usr/bin/cat, /usr/bin/grep, /usr/bin/id
где /usr/bin/cat, /usr/bin/grep, /usr/bin/id - полный путь к запускаемым командам
Нахождение полного пути к команде
Which в Linux — это утилита для нахождения местоположения исполняемых файлов. Она анализирует пути, указанные в переменной окружения PATH, и возвращает путь к первому найденному файлу, соответствующему запрошенному имени.
Импорт пользователей
Пользователи импортированные из скачанного файла Users.csv с https://de.firpo.ru могут не авторизоваться (не верный пароль) из-за кодировки символов. Модернизированный файл Users.csv
Открываем файл /opt/Users.csv с помощью команды head, Для просмотра имен полей таблицы Users.csv
# head /opt/Users.csv
Имена полей необходимы для команды read в Bash скрипте
Создаем Bash скрипт добавления пользователей из .csv файла в Samba AD
# nano samba-user-add.sh
Указываем путь к .csv файлу с пользователями
#!/bin/bash
FILE="/opt/Users.csv"
Построчно в цикле читаем файл с разбивкой на строки с использованием разделителя ;
while IFS=';' read -r firstname lastname role phone ou street zip city country password; do
Добавляем пользователя Samba
samba-tool user add "$firstname.$lastname" "$password"
Завершаем цикл и исключаем строку заголовка из выходных данных tail -n +2
done < <(tail -n +2 "$FILE")
Скрипт
#!/bin/bash
FILE="/opt/Users.csv"
while IFS=';' read -r firstname lastname role phone ou street zip city country password; do
samba-tool user add "$firstname.$lastname" "$password"
done < <(tail -n +2 "$FILE")
Сохраняем файл скрипта, выдаём ему право на выполнение и запускаем его
# chmod +x /root/samba-user-add.sh
# cd /root
# ./samba-user-add.sh
Скрипт отрабатывает продолжительное время. Можно пока выполнять другой пункт задания