Linux active directory sssd

Содержание
  1. Linux машина в домене Windows AD с помощью sssd и krb5
  2. Вики IT-KB
  3. Инструменты пользователя
  4. Инструменты сайта
  5. Боковая панель
  6. Содержание
  7. Установка SSSD/realmd и подключение к домену Active Directory в Ubuntu Linux 16.04 LTS
  8. Предварительные требования
  9. Установка SSSD/realmd и проблема присоединения к домену Active Directory
  10. Проблема авторизации из-за ошибки механизма кеширования GPO
  11. Обсуждение
  12. Вики IT-KB
  13. Инструменты пользователя
  14. Инструменты сайта
  15. Боковая панель
  16. Содержание
  17. Подключение Debian GNU/Linux 10 (Buster) к домену Active Directory с помощью SSSD/realmd и настройка PAM для аутентификации и авторизации sshd/Apache
  18. Подготовка
  19. Установка realmd/SSSD и ввод в домен
  20. Поддержка Kerberos
  21. Конфигурация SSSD
  22. PAM и домашний каталог
  23. PAM и доступ на консоль
  24. PAM и доступ к SSH
  25. PAM и доступ к Apache
  26. SSHD и PuTTy
  27. Расширение keytab
  28. Apache и PAM с Kerberos
  29. Финиш
  30. Присоединение SQL Server на узле Linux к домену Active Directory
  31. Предварительные требования
  32. Обратная DNS (RDNS)
  33. Проверка подключения к контроллеру домена
  34. Ubuntu 16.04
  35. Ubuntu 18.04
  36. RHEL 7.x
  37. SLES 12
  38. Присоединение к домену AD
  39. Вариант 1. Использование пакета SSSD для присоединения к домену AD
  40. Вариант 2. Использование служебных программ сторонних поставщиков openldap
  41. Проверка правильности настройки обратной DNS
  42. Дальнейшие действия

Linux машина в домене Windows AD с помощью sssd и krb5

Была необходимость ввести в домен Windows машину с Ubuntu. Для этих целей обычно используют Samba и Winbind. Но возможен альтернативный вариант с sssd, краткое руководство по нему ниже.

Для примера будем использовать:

Домен = contoso.com
Контроллер домена = dc.contoso.com

Запускаем терминал Ubuntu:

1. Переключаемся под рута

2. Устанавливаем необходимые пакеты

3. Редактируем /etc/krb5.conf, в качестве отступов используется табуляция

4. Редактируем файл /etc/hosts, указываем FQDN для данного хоста:

5. Пробуем получить Kerberos ticket от имени администратора домена:

Если тикет получен успешно, то теперь можно сгенерировать Kerberos principals для данного хоста, регистр важен:

Сейчас наш хост должен отобразиться в списке компьютеров в каталоге. Если все так — удаляем полученный Kerberos ticket:

6. Создаем файл /etc/sssd/sssd.conf со следующим содержимым:

Описание параметров конфигфайла sssd можно посмотреть тут

Устанавливаем права доступа для файла sssd.conf:

Перезапускаем SSSD service

7. Редактируем настройки PAM

редактируем файл /etc/pam.d/common-session, после строки

переопределить параметры через системные настройки PAM, вызываем

и отмечаем пункты sss auth и makehomdir. Это автоматически добавит
строчку выше в common-session и она не будет перезатерта при обновлении системы.

Теперь мы можем логиниться на машине доменными пользователями, которым разрешен вход.

P.S.: Можно дать права на использование sudo доменным группам. Используя visudo, редактируем файл /etc/sudoers, или лучше, как рекомендует maxzhurkin и iluvar, создаем новый файл в /etc/sudoers.d/ и редактируем его

добавляем требуемую группу — например, Domain Admins (если в названии группы есть пробелы — их необходимо экранировать):

P.S.S.: Спасибо gotch за информацию о realmd. Очень удобно — если не нужны специфические настройки, то ввод машины в домен занимает, по сути, три (как заметил osipov_dv четыре) команды:

1. Устанавливаем нужные пакеты:

2. Редактируем файл /etc/hosts, указываем FQDN для данного хоста:

3. Проверяем, что наш домен виден в сети:

4. Вводим машину в домен:

5. Редактируем настройки PAM

Дополнительный плюс данного варианта — сквозная авторизация на файловых ресурсах домена.

Источник

Вики IT-KB

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

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

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

Боковая панель

Содержание

Установка 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, но с некоторыми исключениями и оговорками.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Jdk 8u241 windows x64

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

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

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

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

Обсуждение

Спасибо работает ,только дописал
ad_gpo_access_control = disabled
enumerate = True
dyndns_update = true
dynd ns_refresh_interval = 43200
dyndns_ttl = 1200

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 как надо.

Источник

Вики IT-KB

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

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

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

Боковая панель

Содержание

Подключение Debian GNU/Linux 10 (Buster) к домену Active Directory с помощью SSSD/realmd и настройка PAM для аутентификации и авторизации sshd/Apache

Подробное описание процедуры присоединения компьютера с Debian GNU/Linux к домену Active Directory с помощью SSSD и realmd можно найти здесь. Рекомендуется предварительно ознакомится с этим материалом, а также с замечаниями по настройке SSSD в Debian GNU/Linux.

Здесь приведён сокращённый план действий по присоединению Debian GNU/Linux 10 (Buster) к домену Active Directory с помощью SSSD и realmd.

Подготовка

Выполним команду присвоения полного доменного имени в качестве имени хоста, так как по умолчанию в Debian 10 в качестве hostname используется имя узла без доменной части. Это позволит избежать некоторых проблем при вводе компьютера в домен с помощью realmd:

Дополнительно необходимо отредактировать файл /etc/hosts и указать там в качестве IP адреса хоста адрес одного из сетевых интерфейсов. То есть, строку вида:

заменяем на строку вида:

Если требуется, предварительно создаём в домене учётную запись компьютера

Установка realmd/SSSD и ввод в домен

Устанавливаем пакеты необходимые для ввода в домен:

Выполняем обнаружение информации о домене, которое должно отработать без ошибок:

Настраиваем информацию о компьютере, которая будет передана в каталог Active Directory при присоединении к домену.

Выполняем присоединение компьютера к домену Active Directory:

Поддержка Kerberos

Устанавливаем клиентское ПО поддержки Kerberos:

Проверяем наличие и содержимое keytab-файла. В нём, как минимум, должны быть записи типа host/*

Настраиваем конфигурацию клиента Kerberos:

Пример настроенного файла:

Конфигурация SSSD

Настраиваем конфигурацию SSSD:

Пример настроенной конфигурации:

Перезапускаем службу с очисткой кеша sssd:

Выполняем проверку возможности извлечения информации из каталога Active Directory.

Получаем информацию о любой доменной группе безопасности:

Получаем информацию о любом доменной пользователе:

PAM и домашний каталог

Предварительно рекомендуется ознакомится со статьёй Разграничение прав доступа к Linux-системе и её сервисам через доменные группы безопасности с помощью SSSD и PAM, где более подробно описан смысл всех производимых далее настроек системы.

Настраиваем базовую конфигурацию PAM

Правим файл common-session :

В конец файла добавим строку, позволяющую создать домашний каталог в случае его отсутствия:

PAM и доступ на консоль

Создадим свой файл для перечисления учётных записей (доменных и локальных), которым будет разрешёно подключение к консоли компьютера:

Ограничим доступ к файлу:

Отредактируем модуль PAM, определяющий права доступа к консоли компьютера:

Вставляем перед блоком со строкой @include common-account ссылку на вызов авторизации через созданный нами файл ( access-groups-to-login )

Выполняем проверку входа в систему, используя разрешённую и неразрешённую доменную учётную запись. При этом отслеживаем происходящее в механизмах аутентификации/авторизации через системный лог auth.log

PAM и доступ к SSH

Отредактируем PAM-модуль, отвечающий за настроку авторизации при подключении через службу сервера SSH

Вставляем перед блоком со строкой @include common-account ссылку на вызов авторизации через созданный нами файл ( access-groups-to-login )

Выполняем проверку входа в систему через SSH, используя разрешённую и неразрешённую доменную учётную запись. При этом отслеживаем происходящее в механизмах аутентификации/авторизации через системный лог auth.log

PAM и доступ к Apache

Пример создания собственного PAM-модуля для других служб, например, для организации доменной аутентфикации/авторизации в веб-сервере Apache:

Создадим свой файл для перечисления учётных записей (доменных и локальных), которым будет разрешёно подключение к веб-серверу:

Создадим конфигурационный файл — PAM-модуль

Ограничим доступ к файлам:

SSHD и PuTTy

Подробно про пример настройки сквозной проверки подлинности при использовании PuTTY читаем в статье SSO-подключение к серверу Ubuntu Server 14.04 LTS по протоколу SSH с помощью PuTTY с компьютера на базе Windows в домене Active Directory

Включаем сквозную проверку подлинности для прозрачного подключения с PuTTY

Перезапустим службу сервера

Разрешаем sudo для доменных учётных записей.

Создадим отдельный файл для выдачи прав выполнять sudo доменным учётным записям:

Пример содержимого файла с одной доменной группой доступа, которой разрешено выполнять sudo без ограничений:

Ограничим доступ к файлу

Расширение keytab

В случае необходимости настроки Kerberos аутентификациии в домене Active Directory, возможно потребуется дополнительная настройка keytab-файла на Linux системе.

Пример команд добавления SPN-записи типа HTTP/* (для поддержки доменной аутентификации Kerberos на веб-сервере) Подключаемся к keytab-файлу и получаем информацию о SPN-запиях в нём и текущем номере kvno (нужен для ключа -k )

Читайте также:  C windows syswow64 kernel32 dll невозможно найти или открыть файл pdb

Добавляем записи поддержки Kerberos для веб-сервера (при запросе хешей указываем те же, что указаны для уже существующих SPN-записей)

Перечиваем результат и записываем изменения в keytab-файл:

Проверяем есть ли нужная SPN-запись в домене (на Windows-машине, присоединённой к домену)

Если записи нет, можем добавить (требуются права уровня доменный администратор)

Apache и PAM с Kerberos

Настраиваем конфигурацию Apache для поддержки аутентификации Kerberos

Установка пакетов поддержки PAM/Kerberos в Apache:

Включение модулей Apache:

Пример файла конфигурации Apache:

В данном примере в Apache для доступа к веб-серверу Apache вызывается настроенный нами ранее PAM-модуль apache2 (через файл /etc/pam.d/apache2 ) PAM-модуль в свою очередь вызывает для процедуры аутентификации SSSD и выполняет авторизацию через файл /etc/security/access-groups-to-web

Не забываем на строне Linux-сервера настроить доступ к keytab-файлу

Перезепускаем службу веб-сервера и проверяем результат:

Финиш

По завершении всех процедур настройки можно вернуть имя хоста в исходное состояние, «привычное» для Debain.

После завершения настройки перезагружаем Linux-сервере, чтобы убедиться в успешном автоматическом запуске SSSD и последующей корректной работы аутентификации/авторизации на базе доменных учётных записей.

Дополнительные источники информации:

Проверено на следующих конфигурациях:

Версия ОС
Debian GNU/Linux 10.1 (Buster)

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

Источник

Присоединение SQL Server на узле Linux к домену Active Directory

Применимо к: SQL Server (все поддерживаемые версии) — Linux

В этой статье приводятся общие рекомендации по присоединению хост-компьютера SQL Server на базе Linux к домену Active Directory (AD). Доступно два метода: использование встроенного пакета SSSD или сторонних поставщиков Active Directory. Примерами сторонних продуктов для присоединения к домену являются PowerBroker Identity Services (PBIS), One Identity и Centrify. Это руководство содержит инструкции по проверке конфигурации Active Directory. Однако оно не описывает, как присоединить компьютер к домену при использовании сторонних служебных программ.

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

Перед настройкой проверки подлинности Active Directory необходимо настроить контроллер домена Active Directory в сети Windows. Затем присоедините SQL Server на узле Linux к домену Active Directory.

Примеры шагов, описанные в этой статье, являются лишь рекомендациями и относятся к операционным системам Ubuntu 16.04, Red Hat Enterprise Linux (RHEL) 7.x и SUSE Enterprise Linux (SLES) 12. Фактические шаги могут немного отличаться в вашей среде в зависимости от ее общей настройки и версии ОС. Например, Ubuntu 18.04 использует netplan, а Red Hat Enterprise Linux (RHEL) 8. x использует nmcli наряду с другими инструментами для управления сетью и ее настройки. Привлекайте своего системного администратора и администратора домена в своей среде к подбору инструментария, настройке и устранению неполадок.

Сведения о настройке Active Directory с более новыми версиями Ubuntu, RHEL или SLES см. в статье Настройка проверки подлинности Active Directory с SQL Server на Linux помощью adutil.

Обратная DNS (RDNS)

При настройке компьютера под управлением Windows Server в качестве контроллера домена зона RDNS может по умолчанию отсутствовать. Убедитесь в наличии соответствующей зоны RDNS как для контроллера домена, так и для IP-адреса компьютера Linux, на котором будет запущен SQL Server.

Также проверьте существование записи типа PTR, указывающей на контроллеры домена.

Проверка подключения к контроллеру домена

Убедитесь, что вы можете связаться с контроллером домена как по короткому, так и по полному доменному имени, а также с помощью имени узла контроллера домена. IP-адрес контроллера домена также должен разрешаться в полное доменное имя контроллера домена:

В этом руководстве в качестве примеров имен домена и области используются contoso.com и CONTOSO.COM соответственно. Также используется DC1.CONTOSO.COM в качестве примера полного доменного имени для контроллера домена. Эти имена нужно заменить собственными значениями.

Если любая из этих проверок имен завершается ошибкой, обновите список поиска доменов. В следующих разделах приведены инструкции для Ubuntu, Red Hat Enterprise Linux (RHEL) и SUSE Linux Enterprise Server (SLES) соответственно.

Ubuntu 16.04

Измените файл /etc/network/interfaces, чтобы ваш домен Active Directory находился в списке поиска доменов.

Сетевой интерфейс ( eth0 ) может отличаться для разных компьютеров. Чтобы узнать, какой из них вы используете, выполните команду ifconfig. Затем скопируйте интерфейс, имеющий IP-адрес и переданные и полученные байты.

После изменения этого файла перезапустите сетевую службу.

Далее убедитесь, что файл /etc/resolv.conf содержит строку, аналогичную следующей.

Ubuntu 18.04

Измените файл [sudo vi /etc/netplan/******.yaml], чтобы ваш домен Active Directory находился в списке поиска доменов.

Сетевой интерфейс ( eth0 ) может отличаться для разных компьютеров. Чтобы узнать, какой из них вы используете, выполните команду ifconfig. Затем скопируйте интерфейс, имеющий IP-адрес и переданные и полученные байты.

После изменения этого файла перезапустите сетевую службу.

Далее убедитесь, что файл /etc/resolv.conf содержит строку, аналогичную следующей.

RHEL 7.x

Измените файл /etc/sysconfig/network-scripts/ifcfg-eth0, чтобы ваш домен Active Directory находился в списке поиска доменов. Или измените другой файл конфигурации интерфейса соответствующим образом.

После изменения этого файла перезапустите сетевую службу.

Теперь убедитесь, что файл /etc/resolv.conf содержит строку, аналогичную следующей.

Если проверить связь с контроллером домена по-прежнему не удается, найдите полное доменное имя и IP-адрес контроллера домена. Пример доменного имени: DC1.CONTOSO.COM. Добавьте следующую запись в /etc/hosts:

SLES 12

Измените файл /etc/sysconfig/network/config, чтобы IP-адрес контроллера домена Active Directory использовался для запросов DNS, а домен Active Directory находился в списке поиска доменов.

После изменения этого файла перезапустите сетевую службу.

Далее убедитесь, что файл /etc/resolv.conf содержит строку, аналогичную следующей.

Присоединение к домену AD

После проверки базовой конфигурации и связи с контроллером домена хост-компьютер SQL Server на базе Linux можно присоединить к контроллеру домена Active Directory двумя способами.

Вариант 1. Использование пакета SSSD для присоединения к домену AD

Этот метод присоединяет узел SQL Server к домену AD с помощью пакетов realmd и sssd.

Это предпочтительный способ присоединения узла Linux к контроллеру домена AD.

Для присоединение узла SQL Server к домену Active Directory сделайте следующее.

Используйте realmd, чтобы присоединить хост-компьютер к домену AD. Сначала нужно установить пакеты realmd и клиента Kerberos на хост-компьютере SQL Server с помощью диспетчера пакетов дистрибутива Linux.

RHEL:

SLES 12:

Обратите внимание, что эти шаги относятся к SLES 12, который является единственной официально поддерживаемой версией SUSE для Linux.

Ubuntu 16.04:

Ubuntu 18.04:

Если при установке пакета клиента Kerberos запрашивается имя области, введите имя домена прописными буквами.

Убедившись, что DNS настроена правильно, присоединитесь к домену с помощью указанной ниже команды. Нужно выполнить проверку подлинности с помощью учетной записи AD, имеющей достаточные права в AD для присоединения нового компьютера к домену. Эта команда создает учетную запись компьютера в AD, создает KEYTAB-файл узла /etc/krb5.keytab, настраивает домен в /etc/sssd/sssd.conf и обновляет /etc/krb5.conf.

Из-за проблемы с realmd сначала укажите для узла компьютера полное доменное имя, а не имя компьютера. В противном случае realmd может не создать все необходимые имена субъекта-службы для компьютера, а записи DNS не будут обновляться автоматически, даже если контроллер домена поддерживает динамические обновления DNS.

После выполнения приведенной выше команды файл /etc/hostname должен содержать

    .contoso.com.

Должно появиться сообщение Successfully enrolled machine in realm .

В следующей таблице перечислены некоторые сообщения об ошибках, которые вы можете получить, и рекомендации по их устранению.

Сообщение об ошибке Рекомендация
Necessary packages are not installed Установите эти пакеты с помощью диспетчера пакетов дистрибутива Linux, прежде чем снова выполнять команду realm join.
Insufficient permissions to join the domain Выясните у администратора домена, достаточно ли у вас разрешений для присоединения компьютеров Linux к домену.
KDC reply did not match expectations Возможно, вы не указали правильное имя области для пользователя. В именах областей учитывается регистр, обычно используются прописные буквы, и их можно определить с помощью команды realm discover contoso.com.

SQL Server использует SSSD и NSS для сопоставления учетных записей пользователей и групп с идентификаторами безопасности (SID). Для успешного создания имен входа в Active Directory нужно настроить и запустить SSSD для SQL Server. realmd обычно выполняет это автоматически при присоединении к домену, но в некоторых случаях это нужно делать отдельно.

Убедитесь, что теперь вы можете собирать сведения о пользователе из домена и получить билет Kerberos от имени этого пользователя. В следующем примере для этого используются команды id, kinit и klist.

Если id user@contoso.com возвращает No such user , убедитесь, что служба SSSD успешно запущена, выполнив команду sudo systemctl status sssd . Если служба запущена и вы по-прежнему видите ошибку, попробуйте включить подробное ведение журнала для SSSD. Дополнительные сведения см. в разделе об устранении неполадок SSSD в документации по Red Hat.

Если kinit user@CONTOSO.COM возвращает KDC reply did not match expectations while getting initial credentials , убедитесь, что вы указали область прописными буквами.

Дополнительные сведения см. в разделе об обнаружении доменов удостоверений и присоединении к ним в документации по Red Hat.

Вариант 2. Использование служебных программ сторонних поставщиков openldap

Вы можете использовать сторонние служебные программы, такие как PBIS, VAS или Centrify. В этой статье не рассматриваются действия для каждой отдельной служебной программы. Прежде чем продолжить, нужно воспользоваться одной из этих служебных программ, чтобы присоединить узел Linux для SQL Server к домену.

SQL Server не использует код или библиотеку стороннего интегратора для запросов, связанных с AD. SQL Server всегда запрашивает AD с помощью вызовов библиотеки openldap напрямую в этой установке. Сторонние интеграторы используются только для присоединения узла Linux к домену AD, при этом SQL Server не взаимодействует с такими служебными программами напрямую.

См. рекомендации по использованию параметра конфигурации mssql-conf network.disablesssd в разделе Дополнительные параметры конфигурации статьи Использование проверки подлинности Active Directory с помощью SQL Server на базе Linux.

Убедитесь, что /etc/krb5.conf настроен правильно. Для большинства сторонних поставщиков Active Directory эта конфигурация выполняется автоматически. Однако проверьте /etc/krb5.conf на наличие следующих значений, чтобы избежать появления проблем в будущем.

Проверка правильности настройки обратной DNS

Следующая команда должна возвращать полное доменное имя узла, на котором выполняется SQL Server. Пример: SqlHost.contoso.com.

Выходные данные этой команды должны быть похожи на ** **.in-addr.arpa domain name pointer SqlHost.contoso.com . Если эта команда не возвращает полное доменное имя узла или это имя неправильное, добавьте запись обратной записи DNS для узла SQL Server на базе Linux на DNS-сервер.

Дальнейшие действия

Эта статья описывает необходимые условия для настройки SQL Server на хост-компьютере Linux с проверкой подлинности Active Directory. Чтобы завершить настройку SQL Server на Linux для поддержки учетных записей Active Directory, следуйте инструкциям в статье Использование проверки подлинности Active Directory с SQL Server на Linux.

Источник

Читайте также:  Windows http server api
Оцените статью