Rocky Linux: подключение к OpenLDAP через SSSD
g)
Кратко: настроим клиент Rocky Linux для аутентификации через OpenLDAP с помощью SSSD. Опишем проверку пользователей на сервере LDAP, настройку FQDN и /etc/hosts, установку пакетов, выбор профиля аутентификации, конфигурацию /etc\/openldap\/ldap.conf и /etc\/sssd\/sssd.conf, тестирование и отладку. В конце — чеклисты, критерии приёмки и рекомендации по безопасности.
Важно: команды выполняйте от имени пользователя с root-привилегиями.
Основная цель
Добавить клиент Rocky Linux в домен OpenLDAP и настроить централизованную аутентификацию через SSSD. Подходит для RHEL-подобных дистрибутивов: CentOS, AlmaLinux, Rocky Linux.
Быстрый план
- Проверить список пользователей на OpenLDAP.
- Настроить FQDN и /etc/hosts на клиенте.
- Установить openldap-clients, sssd, sssd-ldap, oddjob-mkhomedir.
- Выбрать профиль аутентификации sssd с помощью authselect.
- Настроить /etc\/openldap\/ldap.conf и /etc\/sssd\/sssd.conf.
- Запустить и проверить службы, протестировать вход.
Предварительные требования
- Рабочий сервер OpenLDAP, настроенный и доступный по сети.
- Клиентская машина Rocky Linux (пример: Rocky Linux 8.5).
- Пользователь с правами sudo на клиенте.
Проверка пользователей на OpenLDAP
Сначала убедитесь, что на OpenLDAP-сервере есть записи пользователей. На сервере выполните поиск по OU people (замените dc-параметры на свои).
sudo ldapsearch -x -b "ou=people,dc=mydomain,dc=io"Ожидаемый результат: список объектов LDAP. В примере ниже присутствует пользователь с uid john, который будет использоваться для тестирования.

Настройка FQDN и файла hosts
Перед установкой пакетов задайте FQDN клиентской машины и добавьте в /etc/hosts запись сервера LDAP.
В примере используются адреса:
- ldap.mydomain.io — 192.168.10.50
- RockyLinux.mydomain.io — 192.168.10.80
Установите FQDN:
sudo hostnamectl set-hostname RockyLinux.mydomain.ioОтредактируйте /etc/hosts:
sudo nano /etc/hostsДобавьте строки:
192.168.10.50 ldap.mydomain.io ldap
192.168.10.80 RockyLinux.mydomain.io RockyLinuxПроверьте FQDN и доступность сервера:
sudo hostname -f
sudo ping -c3 ldap.mydomain.ioРезультат должен подтвердить FQDN и успешный ping к ldap.mydomain.io.

Установка клиента OpenLDAP и SSSD
Установите пакеты клиента и вспомогательные утилиты. SSSD будет обрабатывать аутентификацию и получение идентификационных данных.
sudo dnf -y install openldap-clients sssd sssd-ldap oddjob-mkhomedirПакет oddjob-mkhomedir создаёт домашние каталоги при первом входе пользователя.

Смена профиля аутентификации на SSSD
Используйте authselect для выбора профиля sssd и автоматического создания домашних каталогов.
authselect listВы увидите доступные профили. Выберите профиль sssd с опцией with-mkhomedir:
authselect select sssd with-mkhomedir --forceЗапустите службу oddjobd, которая создаёт домашние каталоги:
sudo systemctl enable --now oddjobd.service
sudo systemctl status oddjobd.service

Конфигурация OpenLDAP клиента и SSSD
- Отредактируйте /etc/openldap/ldap.conf и укажите URI сервера и базу поиска:
sudo nano /etc/openldap/ldap.confДобавьте:
URI ldap://ldap.mydomain.io/
BASE dc=mydomain,dc=io- Создайте файл /etc/sssd/sssd.conf с конфигурацией для провайдера ldap:
sudo nano /etc/sssd/sssd.confПример конфигурации. Замените ldap_uri и ldap_search_base на свои значения:
[domain/default]
id_provider = ldap
autofs_provider = ldap
auth_provider = ldap
chpass_provider = ldap
ldap_uri = ldap://ldap.mydomain.io/
ldap_search_base = dc=mydomain,dc=io
ldap_id_use_start_tls = True
ldap_tls_cacertdir = /etc/openldap/certs
cache_credentials = True
ldap_tls_reqcert = allow
[sssd]
services = nss, pam, autofs
domains = default
[nss]
homedir_substring = /homeСохраните файл и ограничьте права доступа:
sudo chmod 0600 /etc/sssd/sssd.confПерезапустите и проверьте sssd:
sudo systemctl restart sssd
sudo systemctl status sssdОжидается статус active (running).


Тестирование
Выполните несколько проверок на клиенте:
- Получение информации о пользователе через getent:
getent passwd john
getent group somegroup- Попытка входа локально и по SSH от имени LDAP-пользователя john.
ssh john@RockyLinux.mydomain.ioЕсли всё настроено верно, при первом входе будет создан домашний каталог, uid/gid совпадут с данными из LDAP.


Отладка и распространённые ошибки
Если вход не работает, используйте набор команд для диагностики:
- Проверка SSSD логов:
sudo tail -n 200 /var/log/sssd/sssd.log
sudo tail -n 200 /var/log/sssd/sssd_nss.log- Принудительная очистка кеша SSSD и повторный запрос:
sudo sss_cache -E
getent passwd john- Проверка доступности LDAP через ldapsearch с клиента:
ldapsearch -x -H ldap://ldap.mydomain.io/ -b "dc=mydomain,dc=io" -LLL uid=johnУбедитесь, что TLS/STARTTLS настроены правильно. Если вы используете самоподписанный сертификат, добавьте его в /etc/openldap/certs и проверьте ldap_tls_cacertdir.
Если authselect перезаписывает PAM-конфигурацию, проверьте содержимое директорий /etc\/authselect\/ and /etc\/pam.d\/.
Критерии приёмки
- Клиент Rocky Linux отвечает на hostnamectl -f с ожидаемым FQDN.
- getent passwd для LDAP-пользователя возвращает корректные uid и gid.
- Пользователь может войти локально и по SSH, и его домашний каталог создаётся автоматически.
- Службы sssd и oddjobd запущены и находятся в состоянии active.
Чеклист для администратора (шаг за шагом)
- Проверен список пользователей на LDAP-сервере.
- Настроен FQDN клиента.
- Добавлена запись сервера LDAP в /etc/hosts.
- Установлены openldap-clients, sssd, sssd-ldap, oddjob-mkhomedir.
- Выбран профиль authselect sssd with-mkhomedir.
- Отредактированы /etc/openldap/ldap.conf и /etc/sssd/sssd.conf.
- Ограничены права на /etc/sssd/sssd.conf до 0600.
- Перезапущены службы sssd и oddjobd.
- Протестирован вход LDAP-пользователя локально и по SSH.
Чеклист по ролям
Администратор LDAP:
- Подтвердить структуру DN и OU на сервере.
- Проверить, что у пользователей заполнены uidNumber и gidNumber.
Инженер по безопасности:
- Проверить TLS-сертификаты LDAP и цепочку доверия.
- Ограничить доступ к /etc/sssd/sssd.conf.
Оператор системы (на клиенте):
- Выполнить установку и базовую проверку сервисов.
- Проводить проверку логов при ошибках.
Инцидентный план и откат
Если новая конфигурация ломает вход на систему:
- Подключитесь через IP-консоль или переключитесь в одиночный режим.
- Восстановите /etc\/sssd\/sssd.conf из резервной копии или удалите изменения.
- Выполните authselect select sssd with-mkhomedir –force (или верните предыдущий профиль).
- Перезапустите sssd: sudo systemctl restart sssd.
- Проверьте логи и повторно примените изменения поэтапно.
Альтернативные подходы
- Использование nslcd/sssd-ldap вместо sssd-ldap: nslcd может быть проще в простых конфигурациях, но уступает SSSD в кешировании и интеграции PAM.
- Прямое использование PAM+NSS с pam_ldap и nss_ldap без SSSD: подходит для очень простых окружений, но сложнее в управлении и менее производительно.
- Интеграция в Active Directory или FreeIPA — если уже используется другая система управления идентификацией.
Когда SSSD не подходит:
- Очень старые дистрибутивы без поддержки sssd-ldap.
- Специфические требования к синхронизации атрибутов, которые SSSD не поддерживает напрямую.
Безопасность и рекомендации
- По возможности используйте TLS (STARTTLS или LDAPS) для защиты LDAP-трафика.
- Разместите сертификаты CA в /etc/openldap/certs и настройте ldap_tls_cacertdir.
- Ограничьте права доступа к /etc/sssd/sssd.conf (0600). Не храните пароли в открытом виде.
- Логи SSSD могут содержать чувствительные данные. Ограничьте доступ к логам и используйте ротацию логов.
Миграция и совместимость
- Конфигурация подходит для RHEL 8-подобных систем. Для других версий могут понадобиться корректировки путей и пакетов.
- При переходе с pam_ldap/nss_ldap на SSSD проверьте и откорректируйте конфигурацию PAM.
Мини-методология внедрения (3 этапа)
- Пилот: настройте один клиент и проверьте все сценарии входа.
- Широкое развертывание: поэтапно добавляйте клиентов, мониторьте логи и метрики.
- Поддержка: документируйте конфигурации, создайте шаблоны и playbook для автоматизации.
Примеры команд для отладки сети и LDAP
# Проверка разрешения имени
getent hosts ldap.mydomain.io
# Проверка NSS через SSSD
id john
getent passwd john
# LDAP поиск с клиента
ldapsearch -x -H ldap://ldap.mydomain.io/ -b "dc=mydomain,dc=io" uid=johnТестовые кейсы и критерии приёмки
- TC1: getent passwd john возвращает запись с uid и gid. Ожидание: запись найдена.
- TC2: SSH вход john успешен и создаётся /home/john. Ожидание: домашний каталог создан.
- TC3: После перезапуска sssd getent возвращает те же данные. Ожидание: кеш работает корректно.
Краткий глоссарий
- SSSD: System Security Services Daemon — служба, обеспечивающая аутентификацию и получение идентификационных данных.
- LDAP: Lightweight Directory Access Protocol — протокол доступа к каталогу.
- FQDN: Fully Qualified Domain Name — полное доменное имя хоста.
Частые ошибки и их исправление
- “Не найден пользовател” — проверьте ldap_search_base и ldap_uri в /etc\/sssd\/sssd.conf.
- “Проблемы с TLS” — убедитесь, что CA-сертификат доступен и путь ldap_tls_cacertdir указан верно.
- “PAM не позволяет вход” — проверьте файлы в /etc\/pam.d\/ и результат authselect list.
Заключение
Поздравляем. Вы настроили клиент Rocky Linux для аутентификации через OpenLDAP с использованием SSSD. Решение масштабируемое и подходит для RHEL-подобных систем. Документируйте свои изменения и автоматизируйте развёртывание при массовом добавлении клиентов.
Краткое резюме приведено ниже.
Сводка
- Проверьте LDAP-пользователей и убедитесь в доступности сервера.
- Настройте FQDN и /etc/hosts на клиенте.
- Установите необходимые пакеты и выберите профиль sssd.
- Сконфигурируйте /etc\/openldap\/ldap.conf и /etc\/sssd\/sssd.conf и ограничьте права доступа.
- Тестируйте входы, проверяйте логи и применяйте рекомендации по безопасности.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента