Вики 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:

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

[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 согласно ранее упомянутой статьи.

На этапе проверки доменной авторизации в 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

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


Автор первичной редакции:
Алексей Максимов
Время публикации: 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.1489244122.txt.gz · Последнее изменение: 11.03.2017 17:55 — Алексей Максимов

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki