Найти в Дзене
evlchrrrx (linux guides)

Настройка доменного контроллера Samba на alt linux

Доменный контроллер 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
Если запись не соответствует рисунку выше, то нужно его настро

Доменный контроллер 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%

После настройки должно появится такое в терминале, это значит, что всё настроено верно:

-2

Перемещаем сгенерированный конфиг 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

-3

Домен работает, у вас должно всё соответствовать картинке выше.
Теперь создадим
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

Теперь введём клиентскую машину в домен:

-4
-5
-6

Вводим пароль (123qweR%, который вводили при настройке домена через samba-tool:
Заполняем так, как показано на скриншоте ниже:

-7

После ввода в домен должно появиться следующее сообщение на экране:

-8

перезагружаем машину 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:

-9

Затем у нас попросит пароль от доменного администратора:

-10

После этого должно появиться такое окно:

-11

Далее мы создаём новое правило следующей командой (которую он сам предлагает в этом окне):

create-sudo-rule

И вносим следующие изменения (имя правила можно любое):
Имя правила :
prava_hq
sudoCommand : /bin/cat
sudoUser : %hq

-12

При успешном добавлении выведет следующие строки:

-13

Заходим под локальным пользователем на клиентской машине HQ-CLI и получаем права root:
sudo su

Обновляем список пакетов:
apt-get update

И поставим пакет admc:
apt-get install admc

Затем создаём тикет доменного администратора, чтобы получить права на редактирование правил на сервере:
kinit administrator
123qweR%
И запускаем admc:
admc

-14

Включим дополнительные возможности через настройки:

-15

Поменяем опцию sudoOption в созданном нами ранее правиле prava_hq (правило всегда будет находиться в OU с названием sudoers):

-16

Новое значение будет:
!authenticate

-17

И добавим ещё две команды в опцию sudoCommand (grep и id):

-18

Обратите внимание, что путь до id отличается от других команд!

Теперь, чтобы работали все созданные нами правила, нужно зайти на MQ-CLI и установить дополнительные пакеты:

apt-get update
apt-get install sudo libsss_sudo

Разрешаем использование sudo:

control sudo public

-19

Настроим конфиг sssd.conf:
mcedit /etc/sssd/sssd.conf
services = nss, pam, sudo
sudo_provider = ad

-20

Теперь отредактируем nsswitch.conf:
mcedit /etc/nsswitch.conf
sudoers: files sss

-21

Теперь перезагрузим нашу клиентскую машину 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

-22

Теперь проверим, какие правила для sudoers получил наш доменный пользователь:
sudo -l -U user1.hq

-23

Вернёмся в первую сессию и залогинимся под нашем доменным пользователем user1.hq и проверить настроенные права наглядно:

Ctrl+Alt+F1
sudo cat /etc/passwd | sudo grep root && sudo id root

-24

Настройка прав для группы 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”

-25

охраняем этот файл и выдаём ему право на выполнение и запускаем его:

chmod +x /root/import

bash /root/import

-26

Добавляться они будут долго, но мы это сделали! Успех!

-27