Служба каталогів з LDAP [5]: OpenLDAP (II)

Продовжимо, не без попередньої консультації:

У цій публікації ми побачимо:

Локальна автентифікація користувача

Після запуску сервера OpenLDAP, якщо ми хочемо протестувати або мати локальну автентифікацію зареєстрованих користувачів - або що ми будемо реєструвати - в Каталозі, ми повинні встановити та налаштувати необхідні пакети.

У програмі Squeeze використовуються такі пакети:

libnss-ldap: Надає послугу обміну іменами (Перемикач служби імен NSS), що дозволяє серверу LDAP виступати в ролі сервера імен.

Це означає надання інформації про Облікові записи користувачів, ідентифікатори груп, інформацію про хост, псевдоніми, NetGroups та, в основному, будь-які інші дані, які зазвичай отримуються із звичайних текстових файлів, таких як / etc / passwd/ etc / groupтощо, або послугу NIS.

libpam-ldap: «Підключається модуль автентифікації для LDAP", Або Модуль PAM для LDAP. Забезпечує інтерфейс між сервером LDAP та системою автентифікації через PAM.

nscd: «Демон кешу служби імен“, Або Daemon для кешу служби імен. Він обробляє пошук паролів, груп та хостів і зберігає результати пошуку в кеші для подальшого використання.

: ~ # aptitude встановити libnss-ldap палець

Встановлення пакета libnss-ldap, який також встановлюється як залежності libpam-ldap вже диявол nscd, проведе нас через майстер налаштування, на запитання якого ми повинні відповісти належним чином:

libnss-01

libnss-02

libnss-03

libnss-04

libnss-05

libnss-06

лібпам-01

лібпам-02

лібпам-03

лібпам-04

Якщо ми хочемо переналаштувати пакети libnss-ldap г / о libpam-ldap, ми повинні виконати:

: ~ # dpkg-переналаштувати libnss-ldap
: ~ # dpkg-переналаштуйте libpam-ldap

Пізніше ми модифікуємо файл /etc/nsswitch.conf і ми залишаємо його з таким змістом:

: ~ # nano /etc/nsswitch.conf
# /etc/nsswitch.conf # # Приклад конфігурації функціональності комутатора послуг імен GNU. # Якщо у вас встановлені пакети `glibc-doc-reference 'та` info', спробуйте: # `info libc" Перемикач послуг імен "для отримання інформації про цей файл. passwd: compat ldap група: compat ldap тінь: compat ldap хости: файли dns мережі: файлові протоколи: db файлові служби: db файлові ефіри: db файли rpc: db файли netgroup: nis

Для змін, внесених до файлу /etc/nsswitch.conf набуває чинності, ми перезапускаємо послугу nscd:

: ~ # перезапуск служби nscd

Важливою деталлю є модифікація файлу /etc/pam.d/common-session для папки користувача, яка буде створена на локальному сервері під час входу на неї, користувач, зареєстрований у Каталозі:

: ~ # nano /etc/pam.d/common-session
[----]
необхідна сесія pam_mkhomedir.so skel = / etc / skel / umask = 0022
### Наведений вище рядок повинен бути включений ДО # тут є модулі для кожного пакета (блок "Основний") [----]

Заповнити базу даних

Щоб заповнити базу даних Каталогу або запустити її, ми повинні додати основні організаційні підрозділи, зареєструвати принаймні одну групу користувачів та додати користувача. Для цього ми створюємо файл у форматі LDIF, який згодом додамо до каталогу з таким вмістом:

: ~ # nano content.ldif
dn: ou = Люди, dc = друзі, dc = cu objectClass: organizationUnit ou: People dn: ou = Групи, dc = друзі, dc = cu об'єктClass: organizationalUnit ou: Групи dn: cn = кільця, ou = Групи, dc = friends, dc = cu objectClass: posixGroup cn: rings gidNumber: 10000 dn: uid = frodo, ou = People, dc = friends, dc = cu objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: frodo sn: Bagins givenName: : Frodo Bagins displayName: Frodo Bagins uidNumber: 10000 gidNumber: 10000 userPassword: frodo mail: frodo@amigos.cu gecos: Frodo Bagins loginShell: / bin / bash homeDirectory: / home / frodo

Додаємо вміст файлу до каталогу:

: ~ # ldapadd -x -D cn = адміністратор, dc = друзі, dc = cu -W -f content.ldif
Введіть пароль LDAP: додавання нового запису "ou = Люди, dc = друзі, dc = cu" додавання нового запису "ou = Групи, dc = друзі, dc = cu" додавання нового запису "cn = кільця, ou = Групи, dc = друзі, dc = cu "додавання нового запису" uid = frodo, ou = люди, dc = друзі, dc = cu "

Ми проводимо відповідні перевірки:

: ~ # id frodo
uid = 10000 (фродо) gid = 10000 (кільця) групи = 10000 (кільця)

: ~ # getent passwd | grep frodo
frodo: x: 10000: 10000: Frodo Bagins: / home / frodo: / bin / bas

: ~ # пальцем фродо
Логін: frodo Ім'я: Frodo Bagins Каталог: / home / frodo Shell: / bin / bash Ніколи не входив. Пошти немає. Немає плану.

: ~ # ldapsearch -Y EXTERNAL -H ldapi: /// -b uid = frodo, ou = Люди, dc = друзі, dc = cu

Тепер у нас є Служба каталогів, якою ми повинні керувати !!! Ми розробимо два шляхи: перший через пакет ldapscripts, а другий, який ми розглянемо в наступній статті, буде черезМенеджер облікових записів Ldap.

Слід також сказати, що пакет ldap-utils, надає ряд корисних команд для управління Каталогом. Щоб знати, що це за команди, ми виконуємо:

: ~ # dpkg -L ldap-utils | grep / bin
/ usr / bin / usr / bin / ldapmodrdn / usr / bin / ldapurl / usr / bin / ldapdelete / usr / bin / ldapwhoami / usr / bin / ldapexop / usr / bin / ldappasswd / usr / bin / ldapinpare / usr / ldapsearch / usr / bin / ldapmodify / usr / bin / ldapadd

Щоб дізнатись більше про кожну команду, ми рекомендуємо запустити людина. Пояснення кожного з них зробило б статтю дуже довгою.

Керуйте базою даних за допомогою консольних утиліт

Вибираємо пакет ldapscripts для такого завдання. Процедура встановлення та конфігурації така:

: ~ # aptitude встановити ldapscripts

: ~ # cp /etc/ldapscripts/ldapscripts.conf \ /etc/ldapscripts/ldapscripts.conf.original

: ~ # cp / dev / null /etc/ldapscripts/ldapscripts.conf

: ~ # nano /etc/ldapscripts/ldapscripts.conf
SERVER = localhost BINDDN = 'cn = admin, dc = friends, dc = cu' BINDPWDFILE = "/ etc / ldapscripts / ldapscripts.passwd" SUFFIX = 'dc = friends, dc = cu' GSUFFIX = 'ou = Групи' USUFFIX = 'ou = People' # MSUFFIX = 'ou = Комп'ютери' GIDSTART = 10001 UIDSTART = 10001 # MIDSTART = 10000 # Команди клієнта OpenLDAP LDAPSEARCHBIN = "/ usr / bin / ldapsearch" LDAPADDBIN = "/ usr / bin / ldapadd" LDAPDELETEBIN / usr / bin / ldapdelete "LDAPMODIFYBIN =" / usr / bin / ldapmodify "LDAPMODRDNBIN =" / usr / bin / ldapmodrdn "LDAPPASSWDBIN =" / usr / bin / ldappasswd "GCLASS =" posixTEMPL = . /ldapadduser.template "PASSWORDGEN =" echo% u "

### Зверніть увагу, що сценарії використовують команди
### пакет ldap-utils

: ~ # sh -c "echo -n 'tupassowrd'> \ /etc/ldapscripts/ldapscripts.passwd"

: ~ # chmod 400 /etc/ldapscripts/ldapscripts.passwd

: ~ # cp /usr/share/doc/ldapscripts/examples/ldapadduser.template.sample \ /etc/ldapscripts/ldapadduser.template

: ~ # nano /etc/ldapscripts/ldapadduser.template
dn: uid = , , objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount cn: sn: givenName: displayName: uid: uidNumber: gidNumber: homeДовідник: оболонка входу: пошта: гекони: опис: Обліковий запис користувача

: ~ # nano /etc/ldapscripts/ldapscripts.conf
## ми видаляємо коментар UTEMPLATE = "/ etc / ldapscripts / ldapadduser.template"

Спробуємо додати користувача Страйдер Король до групи користувачів анілос і давайте перевіримо введені дані:

: ~ # ldapadduser крокує по кільцях
[dn: uid = кроки, ou = Люди, dc = друзі, dc = cu] Введіть значення для "sn": Король [dn: uid = кроки, ou = Люди, dc = друзі, dc = cu] Введіть значення для "givenName": кроки [dn: uid = strides, ou = People, dc = friends, dc = cu] Введіть значення для "displayName": Strides El Rey [dn: uid = strides, ou = People, dc = friends, dc = cu] Введіть значення для "mail": trancos@amigos.cu Успішно додано користувацькі транзити до LDAP Успішно встановлено пароль для користувальницьких транзитів

root @ mildap: ~ # ldapfinger крокує
dn: uid = strides, ou = People, dc = friends, dc = cu objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount cn: strides sn: El Rey givenName: Strides displayName: Strides El Rey uid: strides uidNumber: 10002 homeDirectory: / home / trancos loginShell: / bin / bash mail: trancos@amigos.cu gecos: trancos опис: Обліковий запис користувача userPassword :: e10000NTSEF1UnlmcWxCem9iUzBuSzQzTkM5ZFRFcTUwV3VsVnBqRm2 =

Давайте оголосимо пароль користувачеві Фродо, давайте перелічимо "DN”Зареєстрованих користувачів і видаліть щойно створеного користувача Кроки:

: ~ # ldapsetpasswd frodo
Зміна пароля для користувача uid = frodo, ou = Люди, dc = друзі, dc = cu Новий пароль: Введіть новий пароль: Успішно встановлений пароль для користувача uid = frodo, ou = Люди, dc = друзі, dc = cu

: ~ # lsldap -u | grep dn
dn: uid = frodo, ou = Люди, dc = друзі, dc = cu dn: uid = кроки, ou = Люди, dc = друзі, dc = cu

: ~ # ldapfinger frodo
dn: uid = frodo, ou = People, dc = friends, dc = cu objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: frodo sn: Bagins givenName: Frodo cn: Frodo Bagins displayName: Frodo Bagins uidNumber: 10000 gidNumber: 10000 gidNumber: 1 gidNumber: 9 gidNumber: 4 gidNumber: 3 : 1 пошта: frodo@amigos.cu gecos: Frodo Bagins loginShell: / bin / bash homeDirectory: / home / frodo userPassword :: e1NTSEF1TnI5ZXNXNUMXYXAXNUMXVnplKXNUMXZIZXZzbFZKaWFXNUMXSVdWeUXNUMXoVjA =

: ~ # ldapdeleteuser крокує
Успішно видалено користувача uid = кроки, ou = Люди, dc = друзі, dc = cu з LDAP

: ~ # lsldap -u | grep dn
dn: uid = frodo, ou = Люди, dc = друзі, dc = cu

Перевіримо, чи локальна автентифікація працює правильно:

: ~ # ssh frodo @ mildap
Пароль frodo @ mildap: Linux mildap 2.6.32-5-686 # 1 SMP пт, 10 травня 08:33:48 UTC 2013 i686 [---] Debian GNU / Linux поставляється з АБСОЛЮТНО БЕЗ ГАРАНТІЙ, наскільки це дозволено чинним законодавством . Останній логін: вівторок, 18 лютого 18:54:01, 2014 з mildap.amigos.cu
frodo @ mildap: ~ $ pwd
/ додому / frodo
frodo @ mildap: ~ $ 

Є багато прикладів, які ми можемо написати, але, на жаль, стаття буде дуже довгою. Ми завжди говоримо, що даємо точка входу до тем послуг у цілому. Неможливо замінити обширну документацію в одній публікації.

Щоб дізнатись більше про пакет ldapscripts та його команди, будь ласка і проконсультуйтесь людина ldapscripts.

Поки що наша проста служба каталогів на основі OpenLDAP працює нормально.

Резюме на сьогодні ...

Багато людей, які відповідають за послуги в бізнес-мережах, коли вони беруть на себе відповідальність за одну службу, що базується на продуктах Microsoft, якщо вони хочуть перейти на Linux, вони розглядають міграцію контролерів домену серед інших служб.

Якщо вони не обирають сторонній продукт, такий як ClearOS або Zentyal, або якщо з інших причин вони хочуть стати незалежними, тоді вони беруться за копітке завдання стати власним контролером домену або від Samba 4 власною службою Active Directory.

Потім починаються проблеми і деякі інші розчарування. Помилки в роботі. Вони не знаходять місця проблем, щоб мати можливість їх вирішити. Неодноразові спроби встановлення. Часткові операції служб. І довгий перелік проблем.

База будь-якого контролера домену або Active Directory в Linux, заснована на OpenLDAP плюс Samba, обов'язково проходить через базові знання Що таке LDAP-сервер, як його встановлюють, як налаштовують та керують ним тощо?. Ті, хто прочитав велику документацію про Samba, добре знатимуть, що ми маємо на увазі.

Саме для того, щоб відповісти на це запитання, ми написали цілу серію статей до цієї, і ми продовжимо з тими, що є необхідними. Ми сподіваємось, вони вам будуть корисні.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   відагну - сказав він

    Відмінний ваш пост Fico, запит, за допомогою OpenLDAP, чи можна створювати політики домену? застосовувати їх до підключених користувачів, таких як заставка, що активується після 5 хвилин бездіяльності, налаштування шпалер, запобігання запуску певних програм, налаштування сценаріїв запуску тощо.

    З повагою,
    Оскар

    1.    Федеріко - сказав він

      Дякуємо за коментар !!!. Оскаре, пам’ятайте, що ці політики в Linux застосовуються по-різному, коли йдеться про клієнтів Linux. GNOME пропонує інструмент для його досягнення, і зараз я не пам’ятаю його назви. Так, я знаю, що ми можемо встановлювати політику облікових записів користувачів безпосередньо в OpenLDAP. Багато хто задає мені одне і те ж питання, і я завжди відповідаю більш-менш однаково. Policies Ці політики безпеки стосуються лише клієнтів Microsoft, НЕ клієнтів Linux. Це дві різні філософії. Active Directory - це власна програма, заснована на OpenLDAP, персональному Kerberos від Microsft та адміністраторі мережі, який я не знаю, як його зараз називають. Раніше це було в Lan Manager. Ми не можемо думати про емуляцію Active Directory лише за допомогою LDAP. Нам довелося б інтегрувати Samba або використовувати Samba 4, щоб перевірити, чи можна це досягти. А мій друже, я навіть жодного разу не подивився на Samba 4. Also Я також не знаю, чи може Zentyal з Active Directory застосувати їх ... але це програмне забезпечення не лише OpenLDAP. Це OpenLDAP + Samba + Kerberos + інші речі, які я погано знаю. 🙂 У цій серії я маю справу лише з OpenLDAP, і якщо ви дотримуватиметеся її, ви побачите, що в збірнику, про який я пишу всю серію, плюс інші основні послуги, все базується на автентифікації щодо каталогу OpenLDAP.

      привіт