Настройка модуля osmax-core для интеграции с Microsoft Active Directory
Интеграция модуля osmax-provisioner с Microsoft Active Directory выполняется в два этапа:
Настройка Kerberos-аутентификации
В инструкции ниже в качестве примера используются следующие данные:
| Имя домена (domain-name) | ОС | Роль | IP-адрес |
|---|---|---|---|
osmax.inno.tech |
Windows Server 2022 |
Domain Controler Active Directory |
10.31.1.64/16 |
-
Установите пакет с Kerberos-клиентом. Для Debian-like ОС используйте команды:
sudo apt update sudo apt install krb5-user
-
Создайте или отредактируйте файл
/etc/krb5.confи укажите в нем следующие параметры:[libdefaults] dns_lookup_realm = false dns_lookup_kdc = false ticket_lifetime = 24h renew_lifetime = 7d forwardable = true rdns = false default_realm = OSMAX.INNO.TECH udp_preference_limit = 1 [realms] osmax.inno.tech = { kdc = 10.31.1.64 admin_server = 10.31.1.64 }Пример:
[libdefaults] dns_lookup_realm = false dns_lookup_kdc = false ticket_lifetime = 24h renew_lifetime = 7d forwardable = true rdns = false default_realm = OSMAX.INNO.TECH udp_preference_limit = 1 [realms] OSMAX.INNO.TECH = { kdc = 10.31.1.64 admin_server = 10.31.1.64 } -
При конфигурировании
-
В файле конфигурации модуля
osmax-provisionerapplication.propertiesукажите параметры сервисной учетной записи:
quarkus.kerberos.service-principal-name=<service-account-name>
quarkus.kerberos.service-principal-realm=<domain-name>
quarkus.kerberos.service-principal-password=<service-account-password>
Пример:
quarkus.kerberos.service-principal-name=osmax_provisioner_svc
quarkus.kerberos.service-principal-realm=OSMAX.INNO.TECH
quarkus.kerberos.service-principal-password=Qwerty123
Настройка сервера по включению в домен Microsoft Active Directory для модуля osmax-provisioner
В инструкции ниже в качестве примера используются следующие данные:
-
имя домена —
osmax.inno.tech; -
пользователь Microsoft Active Directory c правами администратора —
adminuser.
| Имя хоста | ОС | Роль | IP-адрес |
|---|---|---|---|
osmax-winsrv.osmax.inno.tech |
Windows Server 2022 |
Domain Controler Active Directory |
10.31.1.64/16 |
osmax-astra |
Astra Linux SE Orel |
Workstation |
10.31.1.74/16 |
Настройка хоста Astra Linux
-
В файле
/etc/hostnameукажите FQDN (Fully Qualified Domain Name) — имя системы:osmax-astra.osmax.inno.tech
-
В файле
/etc/hostsсоздайте запись с полным и коротким доменным именем, ссылающуюся на один из внутренних IP-хостов:127.0.0.1 localhost 10.31.1.74 osmax-astra.osmax.inno.tech osmax-astra
-
В файл
/etc/resolv.confвнесите изменения, указав имя существующего домена AD, скоуп для поиска и серверы DNS (контроллеры домена Active Directory):domain osmax.inno.tech search osmax.inno.tech. nameserver 10.31.1.64
Для корректной работы разница во времени между хостом и контроллером домена не должна превышать 5 минут, иначе получение тикета Kerberos будет невозможно. Настройте синхронизацию времени с контроллером домена.
-
Установите необходимые пакеты:
sudo apt install ntp ntpdate
-
В файле
/etc/ntp.confукажите контроллер домена в качестве точки синхронизации, остальные параметры закомментируйте:# You do need to talk to an NTP server or two (or three). #server ntp2.ntp-servers.net iburst #server ntp.msk-ix.ru iburst server osmax-winsrv.osmax.inno.tech # pool.ntp.org maps to about 1000 low-stratum NTP servers. Your server will # pick a different set every time it starts up. Please consider joining the # pool: <http://www.pool.ntp.org/join.html> #pool 0.ru.pool.ntp.org iburst #pool 1.ru.pool.ntp.org iburst #pool 2.ru.pool.ntp.org iburst #pool 3.ru.pool.ntp.org iburst
-
Выполните единовременную синхронизацию времени с контроллером домена и запустите службу:
sudo systemctl stop ntp sudo ntpdate -bs osmax.inno.tech sudo systemctl start ntp
Ввод в домен
-
Используйте команду
realmиз пакетаrealmd, чтобы присоединиться к домену и создать конфигурацию sssd. Для этого установите необходимые пакеты:sudo apt install realmd sssd sssd-tools libnss-sss libpam-sss adcli samba-common-bin oddjob oddjob-mkhomedir packagekit -y
-
Проверьте доступность домена для обнаружения через DNS. Команда
realm discoverвозвращает полную конфигурацию домена и список пакетов, которые необходимо установить, чтобы система была зарегистрирована в домене:user@osmax-astra:/home/user# realm discover osmax.inno.tech -v * Resolving: _ldap._tcp.osmax.inno.tech * Performing LDAP DSE lookup on: 10.31.1.64 * Successfully discovered: osmax.inno.tech osmax.inno.tech type: kerberos realm-name: OSMAX.INNO.TECH domain-name: osmax.inno.tech configured: no server-software: active-directory client-software: sssd required-package: sssd-tools required-package: sssd required-package: libnss-sss required-package: libpam-sss required-package: adcli required-package: samba-common-bin
-
Введите хост в домен Active Directory. Для выполнения операции требуется учетная запись AD с правами администратора домена (или пользователь, которому делегированы права на добавление хостов в домен):
realm join -U adminuser osmax.inno.tech Пароль для adminuser:
-
Проверьте, что хост находится в домене Active Directory:
user@osmax-astra:/home/user# realm list osmax.inno.tech type: kerberos realm-name: OSMAX.INNO.TECH domain-name: osmax.inno.tech configured: kerberos-member server-software: active-directory client-software: sssd required-package: sssd-tools required-package: sssd required-package: libnss-sss required-package: libpam-sss required-package: adcli required-package: samba-common-bin login-formats: %U@osmax.inno.tech login-policy: allow-realm-logins
-
Инструмент
realmdпосле ввода хоста в домен создает файл конфигурации sssd/etc/sssd/sssd.conf.Файл /etc/sssd/sssd.confдолжен иметь разрешения 600 иroot:root, иначе демон sssd не будет запускаться:user@osmax-astra:/home/user# cat /etc/sssd/sssd.conf [sssd] domains = shadowutils, osmax.inno.tech config_file_version = 2 services = nss, pam [nss] [pam] [domain/shadowutils] id_provider = files auth_provider = proxy proxy_pam_target = sssd-shadowutils proxy_fast_alias = True [domain/osmax.inno.tech] ad_domain = osmax.inno.tech krb5_realm = OSMAX.INNO.TECH realmd_tags = manages-system joined-with-adcli cache_credentials = True id_provider = ad krb5_store_password_if_offline = True default_shell = /bin/bash ldap_id_mapping = True use_fully_qualified_names = True fallback_homedir = /home/%u@%d access_provider = ad
-
Выполните следующую команду, чтобы для пользователей Active Directory при входе в систему создавался домашний каталог:
pam-auth-update --enable mkhomedir
Проверка работы
-
Запросите информацию о пользователе Active Directory (adminuser@osmax.inno.tech):
user@osmax-astra:/home/user# getent passwd adminuser@osmax.inno.tech adminuser@osmax.inno.tech:*:1762401001:1762400513:adminuser:/home/adminuser@osmax.inno.tech:/bin/bash
-
Войдите в систему:
user@osmax-astra:/home/user# login osmax-astra.osmax.inno.tech имя пользователя: adminuser Пароль: Создание каталога /home/adminuser@osmax.inno.tech. adminuser@osmax.inno.tech@osmax-astra:~$
Настройка с использованием прямого указания сервисной учетной записи
В файле конфигурации модуля osmax-provisioner application.properties
задайте следующие параметры конфигурации:
quarkus.kerberos.service-principal-name=<service-account-name>
quarkus.kerberos.service-principal-realm=<domain-name>
quarkus.kerberos.service-principal-password=<service-account-password>
Пример:
quarkus.kerberos.service-principal-name=osmax_provisioner_svc
quarkus.kerberos.service-principal-realm=OSMAX.INNO.TECH
quarkus.kerberos.service-principal-password=Qwerty123