Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки...

Инструменты пользователя

Инструменты сайта


unix-linux:ubuntu:ubuntu-16-04-xenial-xerus-lts:how-to-install-sssd-and-join-ubuntu-16-04-to-active-directory-domain

Установка SSSD/realmd и подключение к домену Active Directory в Ubuntu Linux 16.04 LTS

В целом процедура подключения компьютера под управлением ОС Ubuntu GNU/Linux 16.04.2 LTS (Xenial Xerus) к домену Active Directory с помощью SSSD и realmd схожа с ранее описанной в статье Подключение Debian GNU/Linux 8.6 к домену Active Directory с помощью SSSD и realmd, но с некоторыми исключениями и оговорками.


Предварительные требования

Настраиваем DNS-клиента, чтобы правильно разрешались доменные имена.

# cat /etc/resolv.conf
search ad.holding.com nameserver 10.1.0.9 nameserver 10.6.1.8

Настраиваем и проверяем синхронизацию времени с контроллерами домена.

# apt-get install ntp
# nano /etc/ntp.conf

В файле меняем строчки указывающие на NTP-сервер. В качестве источника времени указываем контроллеры домена AD:

ntp.conf
...
server 10.1.0.9 iburst
server 10.6.1.8 iburst
...

Перезапускаем службу ntp и проверяем статус синхронизации времени:

# service ntp restart
# ntpq -4 -p
# date -R


Установка SSSD/realmd и проблема присоединения к домену Active Directory

Устанавливаем необходимые пакеты из официальных репозиториев Ubuntu Xenial:

# apt-get install realmd sssd-tools sssd libnss-sss libpam-sss adcli krb5-user

При необходимости опционально правим realmd.conf. Подробности в онлайн-справке

# nano /etc/realmd.conf
realmd.conf
[active-directory]
os-name = Ubuntu Server GNU/Linux
os-version = 16.04 LTS (Xenial Xerus)

Пробуем подключить компьютер к домену Active Directory:

# realm join --verbose --user=adm-vasya \ 
--user-principal="host/kom-ad01-vm40.ad.holding.com@AD.HOLDING.COM" \ 
--computer-ou="OU=Linux Servers,OU=KOM,DC=ad,DC=holding,DC=com" \ 
kom-ad01-dc01.ad.holding.com

Однако, несмотря на то, что предварительно мы установили все нужные пакеты, в Ubuntu 16.04 можем получить ошибку, говорящую о том, что необходимые пакеты не установлены:

* Resolving: _ldap._tcp.kom-ad01-dc01.ad.holding.com * Resolving: kom-ad01-dc01.ad.holding.com * Performing LDAP DSE lookup on: 10.1.0.9 * Successfully discovered: ad.holding.com Password for adm-vasya: * Unconditionally checking packages * Resolving required packages ! Necessary packages are not installed: sssd-tools sssd libnss-sss libpam-sss adcli realm: Couldn't join realm: Necessary packages are not installed: sssd-tools sssd libnss-sss libpam-sss adcli

Решить эту проблему можно, воспользовавшись обходным решением предложенным здесь, а именно добавить к команде realm join дополнительный параметр –install=/

# realm join --verbose --user=adm-vasya \ 
--user-principal="host/kom-ad01-vm40.ad.holding.com@AD.HOLDING.COM" \ 
--computer-ou="OU=Linux Servers,OU=KOM,DC=ad,DC=holding,DC=com" \ 
kom-ad01-dc01.ad.holding.com \
--install=/

Проверяем результат работы realm join, а также проверяем доступ к пользователям и группам Active Directory согласно ранее упомянутой статьи.


Проблема авторизации из-за ошибки механизма кеширования GPO

На этапе проверки доменной авторизации в Ubuntu 16.04 можем обнаружить ещё одну проблему.При попытке войти в систему, аутентификация пользователя проходит успешно, а попытка последующей авторизации завершается ошибкой типа:

auth.log
login[29223]: pam_sss(login:auth): authentication success; 
logname=LOGIN uid=0 euid=0 tty=/dev/tty1 ruser= rhost= user=vasya
login[29223]: pam_sss(login:account): Access denied for user vasya: 4 (System error)
login[29223]: System error

Чтобы понять корень проблемы, останавливаем службу sssd, затем запускаем sssd в интерактивном режиме с включённой опцией отладки следующей командой:

# ( service sssd stop ) && ( sssd -i --debug-level=3 )

Пробуем воспроизвести проблему - выполнить процедуру авторизации, и если на консоли видим ошибки типа:

... [sssd[be[ad.holding.com]]] [ad_gpo_store_policy_settings] (0x0020): [/var/lib/sss/gpo_cache/ad.holding.com/Policies/ {хххх-ххх-ххх-ххх-ххх}/Machine/Microsoft/Windows NT/SecEdit/GptTmpl.inf]: ini_config_parse failed [5][Ошибка ввода/вывода]...

Значит мы столкнулись с багом, имеющимся в версии sssd, которая на данный момент доступна в официальных репозиториях Ubuntu Xenial (версия 1.13.4). Подробнее об этой проблеме здесь. В качестве решения этой проблемы предлагается создать каталог кеша доменных групповых политик, если его ещё нет. Если этот каталог существует, то установить на него права:

# rm -R /var/lib/sss/gpo_cache/ad.holding.com
# mkdir -p /var/lib/sss/gpo_cache/ad.holding.com
# chown -R sssd:sssd /var/lib/sss/gpo_cache

Если это не помогло, можно вообще выключить попытки обработки доменных политик в конфигурации /etc/sssd/sssd.conf в секции, описывающей домен:

sssd.conf
[domain/ad.holding.com]
...
ad_gpo_access_control = disabled

В остальном настройка системы аналогична ранее упомянутой статьи.


Приведённые здесь решения также проверены и на Ubuntu GNU/Linux 14.04 LTS (Trusty Tahr).


Автор первичной редакции:
Алексей Максимов
Время публикации: 11.03.2017 16:56

Обсуждение

ДмитрийДмитрий, 11.12.2017 06:57
Спасибо работает ,только дописал
ad_gpo_access_control = disabled
enumerate = True
dyndns_update = true
dynd ns_refresh_interval = 43200
dyndns_ttl = 1200

krb5_lifetime = 10h

krb5_renewable_lifetime = 7d
krb5_renew_interval = 1h
иначе на следующий день билет TGT не продлялся.
вот только диалог смены просроченного пароля пользователя хотелось бы на русском.Войдя в систему и сделав su - username, сообщение что пароль просрочен по русски. А вот в DM или по shh или если через консоль входить в систему все по английски. системы ubuntu 16.04, debian 9.2 stretch. В /etc/environment и /etc/default/local как надо.
ДмитрийДмитрий, 12.12.2017 06:44
Все разобрался - нужно пересобрать sssd с сообщениями на русском
Ваш комментарий:
 

unix-linux/ubuntu/ubuntu-16-04-xenial-xerus-lts/how-to-install-sssd-and-join-ubuntu-16-04-to-active-directory-domain.txt · Последние изменения: 19.03.2017 12:07 — Алексей Максимов