Доменный контроллер Samba позволяет организовать управление пользователями и ресурсами в сети, эмулируя функции контроллера домена Microsoft Active Directory (AD). Samba — это набор программного обеспечения, который предоставляет возможности совместного использования файлов и печати с клиентами, работающими под управлением Windows, Linux а также предоставляет услуги доменной аутентификации.
Перед настройкой самого контроллера домена удалим все доменные службы в нашем случае это bind
apt-get remove bind
Переходим к настройке GR-SRV:
Проверьте, что /etc/resolv.conf хранит запись:
nameserver 8.8.8.8
Теперь службу samba на GR-SRV:
apt-get update
apt-get install task-samba-dc
Далее ставим адрес нашего dns сервера в /etc/resolv.conf . В нашем случае это 192.168.1.2
Теперь удалим конфиг smb.conf, чтобы он не мешал при настройке службы:
rm -rf /etc/samba/smb.conf
Проверяем, что установлено полное доменное имя у GR-SRV:
hostname -f
Если запись не соответствует рисунку выше, то нужно его настроить: hostnamectl set-hostname gr-srv.mega-team.pro; exec bash
Настроим hosts, добавив новую запись в конец файла:mcedit /etc/hosts
192.168.4.2(тут таб)gr-srv.mega-team.pro
Теперь в конфигурацию нашего DNS-сервера на HQ-SRV добавим следующую строку: server=/mega-team.pro/192.168.4.2
Перезапускаем dnsmasq как службу:
systemctl restart dnsmasq
А теперь запускаем автонастройку доменного контроллера на GR-SRV. Если предложенные значения верны, те, что находятся в [], то нажимаем Enter, если нет, то нужно проверять предыдущие настройки.
samba-tool domain provision
MEGA-TEAM.PRO
MEGA-TEAM
dc
SAMBA_INTERNAL
192.168.1.2 (Здесь вводим значение вручную)
123qweR%
После настройки должно появится такое в терминале, это значит, что всё настроено верно:
Перемещаем сгенерированный конфиг krb5.conf и включаем службу samba:
mv -f /var/lib/samba/private/krb5.conf /etc/krb5.conf
systemctl enable samba
Из-за того, что на Alt Linux могут пропадать IP-адреса после перезагрузки системы, добавим запись о перезапуске службы network и samba в crontab (именно в таком порядке), пишем в консоль:
export EDITOR=mcedit
сrontab -e
И вносим в конец файла следующие строки:
@reboot /bin/systemctl restart network
@reboot /bin/systemctl restart samba
!ВАЖНО! Оставляем ещё одну пустую строку снизу, иначе файл не станет сохраняться!
Теперь ПЕРЕЗАПУСКАЕМ машину GR-SRV:
reboot
Проверяем работу домена:
samba-tool domain info 127.0.0.1
Домен работает, у вас должно всё соответствовать картинке выше.
Теперь создадим 5 пользователей:
samba-tool user add user1.hq 123qweR%
samba-tool user add user2.hq 123qweR%
samba-tool user add user3.hq 123qweR%
samba-tool user add user4.hq 123qweR%
samba-tool user add user5.hq 123qweR%
Теперь создадим группу и поместим туда созданных пользователей:
samba-tool group add hq
samba-tool group addmembers hq user1.hq,user2.hq,user3.hq,user4.hq,user5.hq
Теперь введём клиентскую машину в домен:
Вводим пароль (123qweR%, который вводили при настройке домена через samba-tool:
Заполняем так, как показано на скриншоте ниже:
После ввода в домен должно появиться следующее сообщение на экране:
перезагружаем машину MQ-CLI:
Чтобы настроить права созданных нами пользователей, нужно установить ещё один пакет на GR-SRV, но перед этим нужно подключить нужный репозиторий следующей командой:
apt-repo add rpm http://altrepo.ru/local-p10 noarch local-p10
Теперь обновляем список пакетов:
apt-get update
И можем устанавливать нужный нам пакет:
apt-get install sudo-samba-schema
Далее добавляем новую схему следующей командой:
sudo-schema-apply
Откроется следующее диалоговое окно, нажимаем yes:
Затем у нас попросит пароль от доменного администратора:
После этого должно появиться такое окно:
Далее мы создаём новое правило следующей командой (которую он сам предлагает в этом окне):
create-sudo-rule
И вносим следующие изменения (имя правила можно любое):
Имя правила : prava_hq
sudoCommand : /bin/cat
sudoUser : %hq
При успешном добавлении выведет следующие строки:
Заходим под локальным пользователем на клиентской машине HQ-CLI и получаем права root:
sudo su
Обновляем список пакетов:
apt-get update
И поставим пакет admc:
apt-get install admc
Затем создаём тикет доменного администратора, чтобы получить права на редактирование правил на сервере:
kinit administrator
123qweR%
И запускаем admc:
admc
Включим дополнительные возможности через настройки:
Поменяем опцию sudoOption в созданном нами ранее правиле prava_hq (правило всегда будет находиться в OU с названием sudoers):
Новое значение будет:
!authenticate
И добавим ещё две команды в опцию sudoCommand (grep и id):
Обратите внимание, что путь до id отличается от других команд!
Теперь, чтобы работали все созданные нами правила, нужно зайти на MQ-CLI и установить дополнительные пакеты:
apt-get update
apt-get install sudo libsss_sudo
Разрешаем использование sudo:
control sudo public
Настроим конфиг sssd.conf:
mcedit /etc/sssd/sssd.conf
services = nss, pam, sudo
sudo_provider = ad
Теперь отредактируем nsswitch.conf:
mcedit /etc/nsswitch.conf
sudoers: files sss
Теперь перезагрузим нашу клиентскую машину MQ-CLI.
reboot
На данном этапе мы можем проверить настроенные нами права и правильность настроек конфигурационных файлов. Сделать мы это можем под локальной учётной записью, у которого есть права администратора, в нашем случае это просто root. А ещё мы можем открыть вторую сессию нажав сочетание клавиш:
Ctrl+Alt+F2
В дальнейшем мы можем переключаться между ними, т.к. нажатием тех же клавиш, но теперь уже с F1 мы вернемся на первую нашу сессию с графической оболочкой:
Ctrl+Alt+F1
После того как зашли на вторую сессию, логинимся под root.
На всякий случай, нужно очистить кэш и удалить остаточные файлы, чтобы всё перезаписалось и применилось, для этого пишем следующие команды:
rm -rf /var/lib/sss/db/*
sss_cache -E
И перезагружаем службу sssd:
systemctl restart sssd
Теперь проверим, какие правила для sudoers получил наш доменный пользователь:
sudo -l -U user1.hq
Вернёмся в первую сессию и залогинимся под нашем доменным пользователем user1.hq и проверить настроенные права наглядно:
Ctrl+Alt+F1
sudo cat /etc/passwd | sudo grep root && sudo id root
Настройка прав для группы hq завершена!
Приступаем к следующему этапу – импортируем пользователей из таблицы Users.csv.
curl -L https://bit.ly/3C1nEYz > /root/users.zip
unzip /root/users.zip
mv /root/Users.csv /opt/Users.csv
Создаём файл import и пишем туда следующий код:
mcedit import
#!/bin/bash
csv_file=”/opt/Users.csv”
while IFS=”;” read -r firstName lastName role phone ou street zip city country password; do
if [ “$firstName” == “First Name” ]; then
continue
fi
username=”${firstName,,}.${lastName,,}”
sudo samba-tool user add “$username” 123qweR%
done < “$csv_file”
охраняем этот файл и выдаём ему право на выполнение и запускаем его:
chmod +x /root/import
bash /root/import
Добавляться они будут долго, но мы это сделали! Успех!