Тут описано как ввести linux-машину в домен, позволить пользователям логиниться под доменной УЗ и спокойно работать работу. Основная статья написана для Ubuntu, в конце статьи будут указаны отличия для RHEL (Centos).
Есть несколько требований, которым должна удовлетворять наша система:
1) правильно настроенный DNS
эээ, всё
Собственно, в Ubuntu 20.04 за работу сети отвечает Netplan. Довольно удобная штука, кстати. Проверяем конфиг и правим, если необходимо:
vim /etc/netplan/00-installer-config.yaml
Проверяем чтобы адрес nameserver’а был указан верно (в моей конфигурации это адрес контроллера домена) и чтобы верно был указан search domain
network:
ethernets:
eth0:
addresses:
- 192.168.88.22/24
gateway4: 192.168.88.1
nameservers:
addresses:
- 192.168.88.10
search:
- ITsberg.local
version: 2
Если файл был отредактирован, необходимо проверить конфигурацию:
sudo netplan generate
Если ошибок нет, программа ничего не выведет на экран и запишет конфигурацию на диск. Если ошибки есть — исправляем их. Применяем конфигурацию:
sudo netplan apply
Далее необходимо отредактировать файл /etc/hosts чтобы наш сервер мог найти себя в сети без проблем. Указываем FQDN для данного хоста. Здесь и далее внимательно следим за регистром. Где у меня написано прописными буквами — пишем прописными буквами. Иначе чудесным образом ничего не будет работать. Так написано даже в документации Ubuntu.
127.0.0.1 localhost
127.0.1.1 ubuntu.ITSBERG.LOCAL ubuntu
Устанавливаем нужные пакеты:
sudo apt install realmd samba-common-bin samba-libs sssd-tools krb5-user adcli cifs-utils
Проверяем, что наш домен виден в сети:
realm discover ITSBERG.LOCAL
Вводим машину в домен:
sudo realm join ITSBERG.RU -U YourDomainAdmin@ITSBERG.LOCAL --install=/
Если хотите подробный вывод информации — добавьте ключ —join.
Редактируем настройки PAM
sudo pam-auth-update
Всё, наша машина в домене. Теперь нужно выдать права на логин. Права выдаются группе безопасности, не пользователю. Так же имя группы безопасности должно начинаться с маленькой буквы (да, это тоже важно. Проверял). Для этого редактируем файл /etc/sssd/sssd.conf
vim /etc/sssd/sssd.conf
В конец файла добавляем строку:
simple_allow_groups = <groupname>
где <groupname> — sAMAccountName группы безопасности в AD. В моём случае эта строка будет выглядеть так:
simple_allow_groups = linux_ubuntu_admins
Так же можно разрешить логин на данную машину по сокращённому имени пользователя и не писать каждый раз имя пользователя с доменом. Правим строки в этом же файле /etc/sssd/sssd.conf
Должно быть так:
use_fully_qualified_names = False
fallback_homedir = /home/%u
Сохраняем файл sssd.conf и перезапускаем sssd
systemctl restart sssd
Подробнее про SSSD читаем тут.
Далее, наверное нам захочется использовать утилиту sudo. Опять придётся редактировать конфиг, на этот раз /etc/sudoers (только через visudo!)
visudo -f /etc/sudoers
Тут в конце файла добавляем строку
%linux_ubuntu_admins ALL=(ALL:ALL) ALL
Подробнее про visudo можно почитать тут.
Ну и несколько отличий если у вас не Ubuntu, а RHEL:
Ставим пакеты:
dnf -y install realmd sssd oddjob oddjob-mkhomedir adcli samba-common-tools krb5-workstation
Настройки те же самые, что и для Ubuntu.
Утилиты visudo нет, поэтому правим файл /etc/sudoers любым удобным редактором:
vim /etc/sudoers