OpenLDAP і Ubuntu на практиці> Налаштування аутентифікації користувачів через OpenLDAP на клієнті
Де працюємо: ldap-client
Перейдемо до налаштування клієнтської робочої станції. Для початку встановимо необхідні пакети:
При установці нам будуть запропоновані деякі настройки. Далі ми все одно внесемо в конфігурацію зміни, але це потрібно зробити, щоб все пакети нормально встановилися:
- URI сервера LDAP: ldap: //ldap-srv.example.com;
- База пошуку сервера LDAP: dc = example, dc = com;
- Імена настроюються служб: group. netgroup. passwd. shadow.
Перш ніж робити запити до LDAP-сервера, перевіримо параметри клієнта в /etc/ldap/ldap.conf:
Звичайно, для того, щоб все запрацювало, сертифікат нашого Certificate Authority (rootca.crt) і CRL-файл (rootca.crl) повинні бути на місці.
Перевіримо працездатність простим запитом. Результат опустимо (Ви повинні побачити все DIT):
Поправимо конфігурацію нашої локальної служби імен LDAP в файлі /etc/nslcd.conf. Змініть значення директиви bindpw на пароль записи cn = nssproxy, ou = users, dc = example, dc = com. який ми задавали раніше:
Короткий опис використаних директив:
- За допомогою директиви base ми повідомляємо демона nslcd. де в DIT шукати ту чи іншу інформацію;
- bind_timelimit обмежує час на встановлення з'єднання з сервером п'ятьма секундами;
- timelimit встановлює максимальний час очікування відповіді від сервера в 10 секунд;
- idle_timelimit змусить nslcd розірвати з'єднання з сервером, якщо протягом хвилини в з'єднанні не було ніякої активності;
- ssl змушує клієнта використовувати TLS при підключенні до сервера;
- tls_reqcert і tls_cacertfile подібні директивам TLS_REQCERT і TLS_CACERT в конфігурації /etc/ldap/ldap.conf (необхідність перевірки сертифіката сервера і шлях до кореневого сертифікату для виконання перевірки);
- nss_initgroups_ignoreusers описує користувачів системи, пошук яких не потрібно проводити в DIT (щоб ми могли працювати з машиною при проблемах з доступом до сервера каталогів). В значення цієї директиви слід внести імена всіх загальносистемних користувачів.
Поміняємо права доступу до nslcd.conf. тому що тепер у ньому зберігається інформація для аутентифікації:
Перевіримо вміст /etc/nsswitch.conf:
Переконаємося в тому, що демон nslcd запускається при старті системи і перезапустити його:
Переконаємося, що в системі ldap-clientНЕТ облікового запису з ім'ям nssproxy. Наступна команда повинна виконуватися без результату:
Переконаємося так само, що кешуючий демон служби імен завантажується при старті системи і перезапустити його:
Зробимо пару запитів до LDAP-сервера, використовуючи налаштовану нами систему:
Для того, щоб перевірити доступність інформації про пароль потрібно виконати getent від імені користувача root:
Не турбуйтеся, хеш пароля ми бачити не повинні.
Відмінно, все працює! Вищенаведені результати команд означають, що система ldap-client може здійснювати пошук за даними користувачів і груп в нашому каталозі OpenLDAP.
Створимо домашній каталог нашого тестового користувача і встановимо для нього права доступу:
Запустимо в окремому терміналі висновок журналу аутентифікації:
В іншому терміналі виконаємо:
Ми повинні отримати запрошення командного рядка користувача test.user.
Тепер спробуємо зайти на машину ldap-client по мережі з використанням ssh під обліковим записом test.user.
Демон ssh в конфігурації за замовчуванням повинен працювати з підтримкою PAM (і, відповідно, підтримувати аутентифікацію через LDAP). Але про всяк випадок наведемо робочу конфігурацію / etc / ssh / sshd_config:
Частина файлу до порожнього рядка - конфігурація за замовчуванням. далі - доданий нами. Зверніть увагу на рядок з директивою AllowGroups. За допомогою неї ми обмежуємо список груп користувачів, які можуть бути автентифіковано через ssh. За інформацією по іншим директивам зверніться до документації.
Перевіримо роботу з використанням будь-якої третьої машини. Наприклад, виконаємо на нашому DNS-сервері (dns-srv):
Висновок останньої команди скорочений. Якщо з'являється запрошення командного рядка, значить все в порядку!
Де працюємо: ldap-srv
Давайте заглянемо в /var/log/slapd.log на нашому сервері. Ми можемо виявити там такі рядки:
За допомогою наступної команди ми можемо переконатися, що в нашому каталозі поки немає ніяких індексів:
Це означає, що в нашій базі даних треба створити індекси для атрибутів з журналу /var/log/slapd.log. Тому створимо ще один LDIF-файл 5-posixAccount.indexes.ldif і запишемо в нього:
Навіщо розмінюватися на дрібниці? Зазначимо по-більше індексованих атрибутів. І завантажимо конфігурацію в наш каталог:
Перевіримо результат змін:
Відмінно! Тепер в журналі /var/log/slapd.log не повинно бути помилок.
OpenLDAP і Ubuntu на практиці> Налаштування аутентифікації користувачів через OpenLDAP на клієнті