ALTDC: различия между версиями
Vovan (обсуждение | вклад) (→Источники) |
Vovan (обсуждение | вклад) (→Добавляем параметры в конфиг самбы и перезапускаем сервис) |
||
Строка 256: | Строка 256: | ||
<pre> | <pre> | ||
cat << 'EOF' >> /etc/samba/smb.conf | cat << 'EOF' >> /etc/samba/smb.conf | ||
− | [ | + | [share] |
− | + | path = /home/DOMAIN.ALT/%U/share | |
− | + | read only = No | |
− | + | browseable = yes | |
+ | writable = yes | ||
+ | valid users = "@DOMAIN\Domain Users" "@DOMAIN\Domain Admins" | ||
EOF | EOF | ||
</pre> | </pre> |
Версия 11:30, 3 декабря 2023
Содержание
- 1 Порядок развёртывания на Альт Стартеркит MATE
- 2 Порядок ввода в домен компьютера под управлением ОС Альт Стартеркит MATE
- 3 Монтирование каталогов по SAMBA
- 4 Источники
- 5 Черновик
Порядок развёртывания на Альт Стартеркит MATE
Подготовка и установка необходимых пакетов
После обновления системы и ядра...
Выставляем часовой пояс и синхронизируем время
timedatectl set-timezone Europe/Moscow ntpdate pool.ntp.org
Отключаем сервисы и устанавливаем необходимые пакеты
for service in smb nmb; do systemctl disable $service; systemctl stop $service; done apt-get install -y task-samba-dc admc
Подготовка конфигурационных файлов ситемы
Задаём имя хоста
hostnamectl set-hostname dc.domain.alt
Также проверить и при необходимости поправить имя хоста в файле
/etc/sysconfig/network
Перезагрузиться для проверки
reboot
Далее настраиваем 127.0.0.1 в качестве DNS сервера системы (далее в команде создания домена мы добавим возможность для этого DNS сервера делать запросы к внешним DNS серверам)
cat << EOF > /etc/resolv.conf # Generated by resolvconf # Do not edit manually, use # /etc/net/ifaces/<interface>/resolv.conf instead. search alt nameserver 127.0.0.1 EOF
Здесь приведена команда конфигурирования файла /etc/hosts, исходя из того, что у настраиваемого сервера локальный IP-адрес: 192.168.0.249
cat << EOF > /etc/hosts 192.168.0.249 domain.alt 127.0.0.1 localhost EOF
Создание домена одной командой
Перед выполнением команды создания домена нужно удалить конфигурационный файл:
/bin/rm -f /etc/samba/smb.conf
Для домена
domain.alt
с паролем
Pa$$word
и адресом внешнего DNS сервера
8.8.8.8
команда создания домена будет такой:
samba-tool domain provision --realm=domain.alt --domain domain --adminpass='Pa$$word' --dns-backend=SAMBA_INTERNAL --server-role=dc --option="dns forwarder=8.8.8.8"
Включение сервиса и проверка работы домена
Включение
systemctl enable --now samba
Проверка
samba-tool domain info 127.0.0.1
В ответ должно прилететь что-то типа этого:
Forest : domain.alt Domain : domain.alt Netbios domain : DOMAIN DC name : dc.domain.alt DC netbios name : DC Server site : Default-First-Site-Name Client site : Default-First-Site-Name
Настройка Kerberos
/bin/cp /var/lib/samba/private/krb5.conf /etc/krb5.conf
Управление пользователями из командной строки
Создать пользователя с паролем
Например, создаём пользователя ivanov_ivan
samba-tool user create ivanov_ivan
Устанавливаем срок действия пароля
samba-tool user setexpiry ivanov_ivan
Создаём пользователя с указанием полного имени, адреса электронной почты и пароль будет действовать всегда
samba-tool user create ivanov_ivan --given-name='Иванов Иван' --mail-address='ivanovi@mail.ru' samba-tool user setexpiry ivanov_ivan --noexpiry
Удалить пользователя
samba-tool user delete ivanov_ivan
Отключить пользователя
samba-tool user disable ivanov_ivan
Включить пользователя
samba-tool user enable ivanov_ivan
Изменить пароль пользователя
samba-tool user setpassword ivanov_ivan
Просмотреть доступных пользователей
samba-tool user list
Просмотр информации о пользователе
samba-tool user show ivanov_ivan
или, чтобы узнать UID и GID (например, для установки владельца на каталог samba)
wbinfo -i ivanov_ivan
в ответ должно прийти что-то типа
DOMAIN\ivanov_ivan:*:3000023:100::/home/DOMAIN.ALT/ivanov_ivan:/bin/bash
где UID это 3000023 а GID это 100
Создание домашнего каталога для пользователя
Пока вручную. Ведётся работа над интеграцией соответствующего скрипта в процесс добавления пользователя в SAMBA
Перед выполнением команд добавления домашнего каталога на основе /etc/skel конкретно в контексте этой статьи нужно добавить в /etc/skel каталог, который позже буде монтироваться каждому пользователю посредством pam_mount. Для этого нужно выполнить команду
mkdir /etc/skel/share
далее на базе скелетона создаём каталог
cp -rp /etc/skel /home/DOMAIN.ALT/ivanov_ivan
потом меняем пользователя владельца и группу владельца на этот каталог на базе информации из wbinfo (пример команды -- выше)
chown 3000023:100 /home/DOMAIN.ALT/ivanov_ivan -R
Запуск ADMC
Для корректной работы приложения ADMC необходимо получить билет Kerberos командой
kinit Administrator
В ответ необходимо ввести пароль от доменного администратора
Чтобы это автоматизировать, можно, например, сделать скрипт автоматического запуска admc
cat << 'EOF' > /opt/admc.sh #!/bin/bash echo 'Pa$$word' | kinit Administrator admc EOF chmod +x /opt/admc.sh
Если необходимо, то:
ln -s /opt/admc.sh /home/administrator/Рабочий\ стол/
Порядок ввода в домен компьютера под управлением ОС Альт Стартеркит MATE
Подготовка
Устанавливаем пакеты
apt-get install alterator-auth sssd-ad samba-common-tools realmd
Выставляем часовой пояс и синхронизируем время
timedatectl set-timezone Europe/Moscow ntpdate pool.ntp.org
Задаём имя хоста
hostnamectl set-hostname host-arm01
Также проверить и при необходимости поправить имя хоста в файле
/etc/sysconfig/network
Перезагрузиться для проверки
reboot
Ввод компьютера в домен одной командой
Команда ввода компьютера с именем хоста
host-arm01
в домен
domain.alt
с паролем
Pa$$word
будет такой:
system-auth write ad domain.alt host-arm01 domain 'administrator' 'Pa$$word'
Вывод компьютера из домена
В контексте этой статьи компьютер из домена выводится командой, вводимой на самом компьютере (не на сервере):
realm leave domain.alt Administrator
Проверка текущего типа аутентификации
control system-auth
Монтирование каталогов по SAMBA
На сервере
Добавляем параметры в конфиг самбы и перезапускаем сервис
cat << 'EOF' >> /etc/samba/smb.conf [share] path = /home/DOMAIN.ALT/%U/share read only = No browseable = yes writable = yes valid users = "@DOMAIN\Domain Users" "@DOMAIN\Domain Admins" EOF
systemctl restart samba
На клиентском компьютере, введённом в домен
Устанавливаем необходимые пакеты
apt-get install -y pam_mount cifs-utils systemd-settings-enable-kill-user-processes
Конфигурируем PAM
К текущему конфигу 6-й строкой нужно добавить строку:
auth optional pam_mount.so
и в конец файла нужно добавить
session [success=1 default=ignore] pam_succeed_if.so service = systemd-user quiet session optional pam_mount.so disable_interactive
Готовая команда для создания файла с указанными выше строками
cat << 'EOF' > /etc/pam.d/system-auth-sss #%PAM-1.0 auth [success=4 perm_denied=ignore default=die] pam_localuser.so auth [success=1 default=bad] pam_succeed_if.so uid >= 500 quiet auth [default=1] pam_permit.so auth optional pam_mount.so auth substack system-auth-sss-only auth [default=1] pam_permit.so auth substack system-auth-local-only auth substack system-auth-common account [success=4 perm_denied=ignore default=die] pam_localuser.so account [success=1 default=bad] pam_succeed_if.so uid >= 500 quiet account [default=1] pam_permit.so account substack system-auth-sss-only account [default=1] pam_permit.so account substack system-auth-local-only account substack system-auth-common password [success=4 perm_denied=ignore default=die] pam_localuser.so password [success=1 default=bad] pam_succeed_if.so uid >= 500 quiet password [default=1] pam_permit.so password substack system-auth-sss-only password [default=1] pam_permit.so password substack system-auth-local-only password substack system-auth-common session [success=4 perm_denied=ignore default=die] pam_localuser.so session [success=1 default=bad] pam_succeed_if.so uid >= 500 quiet session [default=1] pam_permit.so session substack system-auth-sss-only session [default=1] pam_permit.so session substack system-auth-local-only session substack system-auth-common session [success=1 default=ignore] pam_succeed_if.so service = systemd-user quiet session optional pam_mount.so disable_interactive EOF
Проверка доступности ресурсов для пользователя
В приведённой ниже команде проверяются ресурсы пользователя vasya:
smbclient -L dc.domain.alt -U vasya -m SMB2
Монтирование ресурса вручную
В приведённой ниже команде проверяются ресурсы пользователя vasya:
mount.cifs //dc.domain.alt/homes ~/share -o vers=2.0,user=vasya
Если проверка и монтирование вручную работает корректно, то можно настраивать pam_mount
Конфигурируем pam_mount
Делаем бэкап
cp /etc/security/pam_mount.conf.xml /etc/security/pam_mount.conf.xml.orig
Создаём файл конфигурации, учитывая, что в примере на 8-й строке необходимо указать свой домен. Для примера это домен:
dc.domain.alt
Тогда команда для формирования файла будет такой:
cat << 'EOF' > /etc/security/pam_mount.conf.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd"> <pam_mount> <debug enable="0"/> <cifsmount>systemd-mount -A -G -q -t cifs %(COMBOPATH) %(MNTPT) -o uid=%(USERUID),gid=%(USERGID),username=%(USER),%(OPTIONS)</cifsmount> <umount>systemd-mount -u %(MNTPT)</umount> <volume fstype="cifs" server="dc.domain.alt" path="share" mountpoint="~/share" options="vers=2.0,sec=krb5,cruid=%(USERUID),rw"/> <mntoptions allow="nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other,sec"/> <mntoptions require="nosuid,nodev"/> <logout wait="0" hup="no" term="no" kill="no"/> <mkmountpoint enable="1" remove="true"/> </pam_mount> EOF
Источники
Черновик
Устанавливаем нужные пакеты task-samba-dc admc
Для создания домена Active Directory (далее - AD), настраиваем на сервере статический ip-address и выставляем ДНС сервером себя 127.0.0.1. Далее в центре управления системой (https://localhost:8080) в разделе домен указываем "Имя домена" и выбираем "Тип домена" заполняем поля в дополнительных параметрах, нажимаем "применить".
При правильном заполнении полей, а также при наличии всех нужных пакетов, "Текущее состояние" - будет заполнено. После этого можно перезагрузить сервер.
Для того что бы пользоваться ADMC нужно произвести авторизацию в Kerberos командой kinit <имя пользователя> по умолчанию пользователь "Administrator"
Если возникает ошибка - Откройте от имени суперпользователя файл /etc/krb5.conf.
Проверяем что установлено значение false в строке "dns_lookup_realm = false".
Раскомментируйте строку в [libdefaults] "default realm" и введите название области заглавными буквами.
Ниже, под строкой [realms] вместо EXAMPLE.COM введите название области, а вместо example.com в "default domain" введите IP-адрес сервера.
Под строкой [domain_realm] example.com и EXAMPLE.COM замените на ваш домен сохраняя регистр.
На клиенте устанавливаем пакет для наследования групповых политик alterator-gpudate
Ставим статику и прописываем DNS - адрес сервера AD
Ввод в домен можно осуществить в разделе Аутентификация
Выбрать пункт «Домен Active Directory», заполнить поля и нажать кнопку «Применить»
В открывшемся окне необходимо ввести имя пользователя, имеющего право вводить машины в домен, и его пароль и нажать кнопку «ОК»