Nslcd linux что это

Обновлено: 08.07.2024

This might look a bit weird at 1st but when working on the migration from samba 3 with LDAP to samba 4 AD.
This seem to be the only choice we have as we have to remove the LDAP Server on the server that running Samba 4 AD.

Else you would have 2 server.
Windows Client using Samba 4 AD and Linux client using an LDAP Server from another which is no longer centralized and defeated the purpose.

Working method and choice

There are a few method.

nslcd or nss_pam_ldapd

If you are using 64 bit system, you will need to unmask it.

FILE /etc/portage/package.accept_keywords

This package will provide what is currently provide by nss_ldap and also nss_pam thus the 2 package have to be removed.

Now we can start install nss_pam_ldapd:

Configuration

There are at least 2 method to work on this solution, the result are same but the way of working it are different.

Method 1: Connecting to AD via LDAP Bind DN and password

This method will configure /etc/nslcd.conf to make LDAP binding via an AD account. Communication with AD with this setup is unencrypted, unless your AD and nslcd had setup LDAP over SSL.

Please create a new user with username nslcdconnect and password secret in the AD Server.
You will need to do the following:

  • Enable - disable user change password on next logon
  • Disable - user change password
  • Enable - Password never expired.
  • Samba AD is running locally and accessible via 127.0.0.1
  • LDAP Base DN is dc=headoffice,dc=location1,dc=company,dc=com
FILE /etc/nslcd.conf Change some line below

Method 2: Connecting to AD via Kerberos

This method are very similar with the 1st method specially in the configuration you will still need to change the configure /etc/nslcd.conf to make LDAP connection to an AD Server with the help of Kerberos. But you don't need to specified a bind account and also the communication with AD with this setup is encrypted.

Please create a new user with username nslcdconnect and password secret in the AD Server.
You will need to do the following:

  • Enable - disable user change password on next logon
  • Disable - user change password
  • Enable - Password never expired.

Now we should export the keytab from AD server for user nslcdconnect. With this keytab we can connect via Kerberos without the need of key in the password for nslcdconnect if configure correctly.

The command below will kept nslcdconnect to the AD server via kerberos using keytab. You will need app-crypt/kstart so the Kerberos ticket and key will be automatically renew when it expired or needed.

Now we can change our nslcd.conf to suit Kerberos setup.

FILE /etc/nslcd.conf Change some line below Warning
k5start don't have an start up script with Gentoo, and I cannot make a script the will work. Someone please help.

Editing /etc/init.d/nslcd to start k5start together

We need to make some change to start k5strt with nslcd so the kerberos ticket will work.

FILE /etc/init.d/nslcd Add the 2 k5start line below.

nssswitch.conf connfiguration

You will need to edit your /etc/nsswitch.conf according to the following. This meant that nsswitch will use the new nss-pam-ldapd module.

Executing

We can now start nslcd daemon

to check if our Samba is working fine with our local host use these to verify:

Существует несколько путей для интеграции Linux компьютеров в домен. Часть из них построена на использовании специализированной программ winbind из пакета Samba , а часть использует автономные PAM и NSS модули для непосредственного взаимодействия с сервером домена.

Пути к файлам, использованные на этой странице, относятся к дистрибутивам Linux CentOS 6/7.

Основные файлы конфигурации

/etc/openldap/slapd.conf

Конфигурация LDAP-сервера slapd . Содержимое файла для запуска slapd в режиме прокси описано в статье"OpenLDAP в режиме прокси для Active Directory".

/etc/openldap/ldap.conf

Базовая конфигурация клиентов из пакета OpenLDAP ( ldapsearch , ldapwhoami , slapd в режиме прокси). Параметры из этого файла могут быть перезаписаны в командной строке. Этот файл не влияет на демон nslcd - у того свои настройки LDAP в /etc/nslcd.conf .

/etc/nslcd.conf

Конфигурация демона nslcd , который обеспечивает доступ к LDAP кэширующему серверу имен nscd . Конфигурационный файл описан в разделе "Имена пользователей и групп из LDAP (nslcd)".

Создание баз slapd

Используется два основных каталога для хранения баз /etc/openldap/slapd.d и /var/lib/ldap . Первый каталог используется для хранения конфигурации в виде базы database config . Второй - для хранения локальной базы записей LDAP или (в режиме прокси) для хранения кэша модулем pcache . В каталоге /var/lib/ldap для корректного создания базы должен находиться файл DB_CONFIG .

Конфигурация slapd может храниться в двух форматах: в файле /etc/openldap/slapd.conf и в каталоге /etc/openldap/slapd.d . Конфигурация из каталога имеет больший приоритет, поэтому при изменениях файла /etc/openldap/slapd.conf надо удалить базу /etc/openldap/slapd.d и сгенерировать ее заново:

slaptest проверяет синтаксис slapd.conf , строит базу config в /etc/openldap/slapd.d и пытается создать bdb/hdb базы (если они описаны в slapd.conf ) в /var/lib/ldap . Опция -d -1 - обеспечивает выдачу отладочной информации, что бывает полезно для поиска ошибок в файле конфигурации.

Иногда при генерации баз в /var/lib/ldap slaptest выдает ошибку:

В этом случае имеет смысл один раз запустить slapd от root'а (с опцией отладки, чтобы он не ушел в фоновый режим), а потом поменять владельца сгенерированых файлов.

Целостность баз slapd

Для обеспечения целостности баз соответствующая библиотека ведёт логи транзакций, которые позволяют восстановить базу в случае сбоя на диске или аварийного отключения питания. Логи транзакций накапливаются в каталоге /var/lib/ldap/ с именами вида log.0000000001 , log.0000000002 и т.д. Для кеширующего прокси целостность баз не имеет значения, поэтому сохранение логов транзакций можно отключить, добавив в файл /var/lib/ldap/DB_CONFIG строку set_flags DB_LOG_AUTOREMOVE

Запись логов

Для записи логовов slapd в конфигурационный файл syslog/rsyslog необходимо добавить правило

Отладка slapd

Для отладки slapd запускается с опцией -d N , где N - число, каждый бит которого включает определенный тип отладочной печати. При запуске с опцией отладки slapd не уходит в фоновый режим и выдает отладочную печать на stderr . slapd -d -1 включает вывод всей доступной отладочной печати. Запуск slapd с опцией -d \? выдает список допустимых значений отладочных режимов и мнемонические обозначения для них. В зависимости от подключенных модулей-оверлеев, список отладочных режимов может меняться. В частности, модуль pcache добавляет свой отладочный флаг. При запуске slapd -d pcache выдается предупреждение, что используется неверный флаг отладки, но работает как надо.

Если есть желание отлаживать slapd , запущенный в фоновом режиме, то вместо опции -d следует использовать -s - запись в syslog .

Список битов, используемых с опциями -d и -s

Мониторинг нагрузки

В slapd.conf включаем монитор и разрешаем доступ локальному root'у

Пример использования ldapsearch

Для отладки можно формировать запросы к LDAP-серверу командой ldapsearch . Например:

Пути к файлам, использованные на этой странице, относятся к дистрибутивам Linux CentOS 6/7.

Основные файлы конфигурации

/etc/openldap/slapd.conf

Конфигурация LDAP-сервера slapd . Содержимое файла для запуска slapd в режиме прокси описано в статье"OpenLDAP в режиме прокси для Active Directory".

/etc/openldap/ldap.conf

Базовая конфигурация клиентов из пакета OpenLDAP ( ldapsearch , ldapwhoami , slapd в режиме прокси). Параметры из этого файла могут быть перезаписаны в командной строке. Этот файл не влияет на демон nslcd - у того свои настройки LDAP в /etc/nslcd.conf .

/etc/nslcd.conf

Конфигурация демона nslcd , который обеспечивает доступ к LDAP кэширующему серверу имен nscd . Конфигурационный файл описан в разделе "Имена пользователей и групп из LDAP (nslcd)".

Создание баз slapd

Используется два основных каталога для хранения баз /etc/openldap/slapd.d и /var/lib/ldap . Первый каталог используется для хранения конфигурации в виде базы database config . Второй - для хранения локальной базы записей LDAP или (в режиме прокси) для хранения кэша модулем pcache . В каталоге /var/lib/ldap для корректного создания базы должен находиться файл DB_CONFIG .

Конфигурация slapd может храниться в двух форматах: в файле /etc/openldap/slapd.conf и в каталоге /etc/openldap/slapd.d . Конфигурация из каталога имеет больший приоритет, поэтому при изменениях файла /etc/openldap/slapd.conf надо удалить базу /etc/openldap/slapd.d и сгенерировать ее заново:

slaptest проверяет синтаксис slapd.conf , строит базу config в /etc/openldap/slapd.d и пытается создать bdb/hdb базы (если они описаны в slapd.conf ) в /var/lib/ldap . Опция -d -1 - обеспечивает выдачу отладочной информации, что бывает полезно для поиска ошибок в файле конфигурации.

Иногда при генерации баз в /var/lib/ldap slaptest выдает ошибку:

В этом случае имеет смысл один раз запустить slapd от root'а (с опцией отладки, чтобы он не ушел в фоновый режим), а потом поменять владельца сгенерированых файлов.

Целостность баз slapd

Для обеспечения целостности баз соответствующая библиотека ведёт логи транзакций, которые позволяют восстановить базу в случае сбоя на диске или аварийного отключения питания. Логи транзакций накапливаются в каталоге /var/lib/ldap/ с именами вида log.0000000001 , log.0000000002 и т.д. Для кеширующего прокси целостность баз не имеет значения, поэтому сохранение логов транзакций можно отключить, добавив в файл /var/lib/ldap/DB_CONFIG строку set_flags DB_LOG_AUTOREMOVE

Запись логов

Для записи логовов slapd в конфигурационный файл syslog/rsyslog необходимо добавить правило

Отладка slapd

Для отладки slapd запускается с опцией -d N , где N - число, каждый бит которого включает определенный тип отладочной печати. При запуске с опцией отладки slapd не уходит в фоновый режим и выдает отладочную печать на stderr . slapd -d -1 включает вывод всей доступной отладочной печати. Запуск slapd с опцией -d \? выдает список допустимых значений отладочных режимов и мнемонические обозначения для них. В зависимости от подключенных модулей-оверлеев, список отладочных режимов может меняться. В частности, модуль pcache добавляет свой отладочный флаг. При запуске slapd -d pcache выдается предупреждение, что используется неверный флаг отладки, но работает как надо.

Если есть желание отлаживать slapd , запущенный в фоновом режиме, то вместо опции -d следует использовать -s - запись в syslog .

Список битов, используемых с опциями -d и -s

Мониторинг нагрузки

В slapd.conf включаем монитор и разрешаем доступ локальному root'у

Пример использования ldapsearch

Для отладки можно формировать запросы к LDAP-серверу командой ldapsearch . Например:

The nslcd service enables you to configure your local system to load users and groups from an LDAP directory, such as Active Directory (AD).

To enable the nslcd service to load user and group information, you have to set the Unix attributes for users and groups in AD. For details, see Maintaining Unix Attributes in AD using ADUC.

Samba does not provide support for the nslcd service, other than what is on this page.

Authenticating nslcd to AD Using a User Name and Password

To enable the nslcd service to authenticate to Active Directory (AD) using a user name and password:

  • Create a new user in AD. For example: nslcd-ad
  • Password never expires
  • User cannot change password
  • Add the following parameter to the [global] section of your smb.conf file:
  • Restart Samba.
  • Edit the /etc/nslcd.conf file and set the following settings:
  • To enable LDAP databases for the name service switch (NSS), add the ldap option to the following lines in the /etc/nsswitch.conf file:
  • Start the nslcd service.

Authenticating nslcd to AD Using Kerberos

To enable the nslcd service to authenticate to Active Directory (AD) using Kerberos:

  • Create a new user in AD. For example: nslcd-ad
  • Password never expires
  • User cannot change password, note: this can only be set from Windows
  • Extract the Kerberos keytab for the nslcd-ad account to the /etc/krb5.nslcd.keytab file, run:
  • Make sure that the Kerberos ticket is automatically renewed before it expires. For example, to auto-renew Kerberos tickets using the k5start utility:
  • Add the following parameter to the [global] section of your smb.conf file:
  • Restart Samba.
  • Edit the /etc/nslcd.conf file and set the following settings:
  • To enable LDAP databases for the name service switch (NSS), add the ldap option to the following lines in the /etc/nsswitch.conf file:

Edit the /etc/default/nslcd file and set the following settings:

To list users and groups having Unix attributes in Active Directory (AD) set:

  • To list a users account, enter:
  • To list a group, enter:

If the getent command fails to load users and groups from Active Directory (AD):

Читайте также: