Гид по технологиям

Подключение Ubuntu 20.04 к OpenLDAP через libnss-ldapd и libpam-ldapd

• 5 min read • Linux • Обновлено 16 Nov 2025
Ubuntu 20.04: подключение к OpenLDAP
Ubuntu 20.04: подключение к OpenLDAP

Введение

В этой инструкции описано, как подключить Ubuntu 20.04 в качестве клиента к серверу OpenLDAP с использованием пакетов libnss-ldapd и libpam-ldapd. Это один из самых простых и распространённых способов быстро настроить централизованную аутентификацию на множестве машин.

Определение: OpenLDAP — это реализация протокола LDAP для хранения и поиска информации о пользователях и группах. NSS — подсистема совпадения имён и данных пользователей в системе. PAM — подсистема модулей аутентификации.

Кому подходит эта инструкция

  • Системным администраторам, которые настраивают централизованную аутентификацию.
  • Инженерам по внедрению, которым нужно быстро подключить клиентские хосты к уже существующему OpenLDAP.

Необходимые условия

  • Рабочий сервер с установленным и настроенным OpenLDAP (см. руководство по установке OpenLDAP).
  • Клиент с Ubuntu 20.04.
  • Неразрешённый пользователь с правами sudo.

Быстрая проверка доступных пользователей OpenLDAP

Перед началом проверьте, какие пользователи доступны на сервере OpenLDAP. В примерах используется домен ldap.mydomain.io и ветка ou=people.

sudo ldapsearch -x -b "ou=people,dc=mydomain,dc=io"

На сервере в примере есть пользователь alice.

Список пользователей OpenLDAP

Настройка hostname и FQDN на клиенте

Установите FQDN на клиенте и добавьте в /etc/hosts запись для сервера OpenLDAP и клиента.

Задайте имя хоста:

sudo hostnamectl set-hostname ubuntu2004.mydomain.io

Отредактируйте /etc/hosts:

sudo nano /etc/hosts

Пример содержимого файла (замените IP-адреса и FQDN на свои):

192.168.10.50 ldap.mydomain.io ldap
192.168.10.90 ubuntu2004.mydomain.io ubuntu2004

Сохраните файл и проверьте связь с сервером:

ping -c3 ldap.mydomain.io

Если получаете ответы — имена разрешаются корректно и сеть доступна.

Настройка FQDN и /etc/hosts

Установка libnss-ldapd и libpam-ldapd

После настройки сети установите клиентские пакеты, которые обеспечат поиск учётных записей через LDAP и аутентификацию через PAM.

Пример команды установки на Ubuntu 20.04:

sudo apt update
sudo apt install libnss-ldapd libpam-ldapd ldap-utils

Во время установки пакет предложит ввести адрес LDAP-сервера и базовый DN для поиска. Введите ваш OpenLDAP-сервер (например, ldap.mydomain.io) и оставьте поиск базы (search base) по умолчанию, если конфигурация сервера типична.

При появлении списка служб отметьте passwd, group и shadow — это включит LDAP-поиск для пользователей, групп и теневых паролей.

Установка libnss-ldapd и libpam-ldapd

Настройка TLS (если сервер использует SSL/TLS)

Если сервер OpenLDAP настроен на использование шифрования (LDAPS или StartTLS), на клиенте необходимо разрешить TLS в конфигурации nslcd.

Отредактируйте файл /etc/nslcd.conf:

sudo nano /etc/nslcd.conf

Добавьте или измените параметры:

ssl start_tls
tls_reqcert allow

Примечание: значение tls_reqcert может быть allow, demand или never. Для продуктивных сред рекомендуется demand и корректно установленный доверенный CA. Значение allow удобно для тестовой среды, но снижает проверку сертификата.

Сохраните изменения и перезапустите службу nslcd при необходимости:

sudo systemctl restart nslcd

Настройка PAM для создания домашней директории

Чтобы каждый пользователь LDAP получал домашнюю директорию при первом входе, активируйте соответствующий профиль PAM.

Запустите интерактивную утилиту:

sudo pam-auth-update

Выберите профиль Create a home directory on login и подтвердите. Это автоматически добавит pam_mkhomedir в цепочку PAM для сессий.

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

После этого перезагрузите машину, чтобы все изменения применились:

sudo reboot

Тестирование аутентификации

После перезагрузки войдите под LDAP-пользователем, например alice. Домашняя директория должна быть создана автоматически.

Вход на клиент под OpenLDAP-пользователем

Вы также можете проверить вход по SSH с другого хоста:

ssh [email protected]

Если аутентификация проходит — настройка выполнена успешно.

Вход по SSH под OpenLDAP-пользователем

Краткое руководство быстрого развёртывания

  • Установите FQDN на клиенте.
  • Добавьте записи в /etc/hosts.
  • Установите libnss-ldapd, libpam-ldapd, ldap-utils.
  • Введите адрес LDAP-сервера при установке.
  • Включите lookup для passwd, group, shadow.
  • Включите TLS в /etc/nslcd.conf при необходимости.
  • Активируйте Create a home directory on login.
  • Перезагрузите клиент.

Пошаговый чеклист для оператора

  • Проверить доступность LDAP-сервера (ping, nc/telnet на порт 389/636).
  • Установить пакеты: libnss-ldapd, libpam-ldapd, ldap-utils.
  • Убедиться, что в /etc/nsswitch.conf присутствуют записи ldap для passwd/group.
  • Проверить /etc/nslcd.conf — host, base, ssl/tls.
  • Активировать pam_mkhomedir через pam-auth-update.
  • Перезагрузить систему и выполнить вход под LDAP-пользователем.
  • Проверить логи: /var/log/auth.log и системный журнал для nslcd.

Критерии приёмки

  • Пользователь LDAP виден в системе: getent passwd alice возвращает запись пользователя.
  • Пользователь может выполнить вход локально и по SSH.
  • Домашняя директория создаётся при первом входе.
  • nslcd работает: sudo systemctl status nslcd — активен.

Примеры команд проверки:

getent passwd alice
id alice
sudo systemctl status nslcd
tail -n 200 /var/log/auth.log

Устранение неполадок

  1. Проблема: getent не возвращает LDAP-пользователя.
    Действия:

    • Проверить /etc/nsswitch.conf — должна быть запись passwd: compat systemd ldap (или аналог).
    • Проверить /etc/nslcd.conf — host и base.
    • Проверить сетевую доступность LDAP-порта: nc -vz ldap.mydomain.io 389.
  2. Проблема: ошибки сертификата при StartTLS.
    Действия:

    • Проверьте tls_reqcert в /etc/nslcd.conf.
    • Убедитесь, что корневой CA добавлен в системное хранилище (например, /usr/local/share/ca-certificates и sudo update-ca-certificates).
  3. Проблема: PAM не создаёт домашнюю директорию.
    Действия:

    • Убедитесь, что pam_mkhomedir подключён: grep pam_mkhomedir /etc/pam.d/* .
    • Запустите sudo pam-auth-update и повторно активируйте профиль.
  4. Проблема: nslcd не запускается.
    Действия:

    • Посмотреть логи systemd: sudo journalctl -u nslcd -b.
    • Проверить синтаксис /etc/nslcd.conf.

Советы по безопасности

  • В продуктивной среде используйте TLS с проверкой сертификата (tls_reqcert demand).
  • Разместите CA в системном хранилище сертификатов и указывайте путь в nslcd, если требуется.
  • Ограничьте доступ к LDAP-серверу по iptables/ufw для клиентских сетей.
  • Не используйте tls_reqcert allow в продуктиве — это снижает проверку цепочки доверия.

Роли и обязанности

  • Системный администратор: настраивает пакетную установку, налаживает TLS и проверяет журналы.
  • Администратор LDAP: проверяет базу DN, учётные записи пользователей и права.
  • Helpdesk/оператор: проверяет вход пользователей и сообщает о проблемах.

Примеры команд и сниппеты

Проверка записи пользователя в LDAP и локальном представлении:

ldapsearch -x -b "ou=people,dc=mydomain,dc=io" uid=alice
getent passwd alice

Перезапуск службы nslcd:

sudo systemctl restart nslcd
sudo systemctl status nslcd

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

tail -f /var/log/auth.log
sudo journalctl -u nslcd -f

Mermaid: Быстрое дерево решений при ошибках подключения

flowchart TD
  A[Проблема: нет авторизации] --> B{Можно ли пинговать сервер?}
  B -- Да --> C{Открыт ли порт LDAP '389/636'?}
  B -- Нет --> D[Проверьте DNS/hosts и сеть]
  C -- Да --> E[Проверить /etc/nslcd.conf и логи nslcd]
  C -- Нет --> F[Откройте порт в фаерволе и проверьте маршруты]
  E --> G[Проверить TLS/сертификаты]
  G --> H[Исправить CA и tls_reqcert]

Глоссарий

  • LDAP — Lightweight Directory Access Protocol, протокол каталогов.
  • NSS — Name Service Switch, система разрешения имён в Unix.
  • PAM — Pluggable Authentication Modules, модульная система аутентификации.
  • nslcd — демон, который обеспечивает LDAP-подключение для NSS/PAM.

Итоги

Вы подключили Ubuntu 20.04 к серверу OpenLDAP. После установки и настройки libnss-ldapd и libpam-ldapd клиенты могут разрешать учётные записи через LDAP и аутентифицировать пользователей. Для безопасной эксплуатации используйте TLS с проверкой сертификатов и контролируйте доступ на сетевом уровне.

Важное: в рабочих средах всегда проверяйте сертификаты и используйте строгие политики выдачи и обновления CA.

Ключевые команды для быстрого запуска:

sudo hostnamectl set-hostname ubuntu2004.mydomain.io
sudo nano /etc/hosts
sudo apt update
sudo apt install libnss-ldapd libpam-ldapd ldap-utils
sudo nano /etc/nslcd.conf
sudo pam-auth-update
sudo reboot
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро