ALTDC

Материал из wiki.nntc.nnov.ru
Версия от 19:43, 24 ноября 2023; Vovan (обсуждение | вклад) (На клиентском компьютере, введённом в домен)
Перейти к навигации Перейти к поиску

Порядок развёртывания на Альт Стартеркит 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

Запуск 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
[homes]
       	comment = Home Directories
        browseable = No
        read only = No
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

Источники

[1]

[2]

[3]

[4]

Черновик

Устанавливаем нужные пакеты 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», заполнить поля и нажать кнопку «Применить»

В открывшемся окне необходимо ввести имя пользователя, имеющего право вводить машины в домен, и его пароль и нажать кнопку «ОК»