Установка и настройка LDAP

Добро пожаловать в подробное руководство по установке и настройке LDAP в НАЙС ОС. В этом документе мы рассмотрим процесс установки, настройки и управления LDAP. LDAP (Lightweight Directory Access Protocol) — это протокол для доступа к распределенным каталогам информации, который широко используется для аутентификации и авторизации в корпоративных сетях. Понимание его установки и конфигурации является важным навыком для системных администраторов.

Установка LDAP

Для установки LDAP в НАЙС ОС используйте пакетный менеджер tdnf. Выполните следующие команды для установки OpenLDAP и необходимых утилит:

tdnf install openldap openldap-servers openldap-clients

Запуск и остановка LDAP

После установки вы можете запустить LDAP с помощью systemd:

systemctl start slapd

Для автоматического запуска LDAP при загрузке системы выполните команду:

systemctl enable slapd

Для остановки LDAP используйте команду:

systemctl stop slapd

Проверка состояния LDAP

Чтобы проверить состояние LDAP, выполните команду:

systemctl status slapd

Эта команда выведет информацию о состоянии службы LDAP, включая её текущее состояние и последние журналы.

Инициализация и настройка LDAP

После установки необходимо инициализировать и настроить LDAP. Для этого создайте файл пароля администратора и настроьте базовые параметры.

Создание пароля администратора LDAP

Создайте пароль администратора LDAP с помощью утилиты slappasswd:

slappasswd

Введите пароль дважды и сохраните вывод в файле для дальнейшего использования. Пример вывода:

{SSHA}5En6u/9IazB8I3Lx8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8

Настройка базы данных LDAP

Создайте файл конфигурации базы данных /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif со следующим содержимым:


dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=example,dc=com

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=admin,dc=example,dc=com

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}5En6u/9IazB8I3Lx8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8
  

Замените строку {SSHA}5En6u/9IazB8I3Lx8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8 на реальный вывод команды slappasswd.

Примените изменения с помощью команды:

ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif

Создание базовой структуры LDAP

Создайте файл base.ldif со следующим содержимым для создания базовой структуры:


dn: dc=example,dc=com
objectClass: top
objectClass: dcObject
objectclass: organization
o: Example Company
dc: example

dn: cn=admin,dc=example,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: Directory Manager
userPassword: {SSHA}5En6u/9IazB8I3Lx8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8
  

Замените строку {SSHA}5En6u/9IazB8I3Lx8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8 на реальный вывод команды slappasswd.

Добавьте базовую структуру в LDAP с помощью команды:

ldapadd -x -W -D "cn=admin,dc=example,dc=com" -f base.ldif

Введите пароль администратора при запросе.

Добавление пользователей и групп

Теперь, когда базовая структура создана, мы можем добавить пользователей и группы в LDAP.

Добавление группы

Создайте файл group.ldif со следующим содержимым для создания группы:


dn: cn=users,ou=groups,dc=example,dc=com
objectClass: top
objectClass: posixGroup
gidNumber: 10000
cn: users
  

Добавьте группу в LDAP с помощью команды:

ldapadd -x -W -D "cn=admin,dc=example,dc=com" -f group.ldif

Введите пароль администратора при запросе.

Добавление пользователя

Создайте файл user.ldif со следующим содержимым для создания пользователя:


dn: uid=johndoe,ou=users,dc=example,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: johndoe
sn: Doe
givenName: John
cn: John Doe
displayName: John Doe
uidNumber: 10000
gidNumber: 10000
userPassword: {SSHA}5En6u/9IazB8I3Lx8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8
gecos: John Doe
loginShell: /bin/bash
homeDirectory: /home/johndoe
  

Замените строку {SSHA}5En6u/9IazB8I3Lx8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8hT8 на реальный вывод команды slappasswd.

Добавьте пользователя в LDAP с помощью команды:

ldapadd -x -W -D "cn=admin,dc=example,dc=com" -f user.ldif

Введите пароль администратора при запросе.

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

Для подключения клиентов к серверу LDAP необходимо настроить файл /etc/ldap.conf и PAM.

Настройка файла /etc/ldap.conf

Создайте или отредактируйте файл /etc/ldap.conf со следующим содержимым:


base dc=example,dc=com
uri ldap://your_ldap_server
ldap_version 3
rootbinddn cn=admin,dc=example,dc=com
bind_policy soft
pam_password md5
  

Настройка PAM для LDAP

Отредактируйте файл /etc/nsswitch.conf для использования LDAP для аутентификации:


passwd:     files ldap
shadow:     files ldap
group:      files ldap
  

Отредактируйте файлы /etc/pam.d/system-auth и /etc/pam.d/password-auth для использования LDAP для аутентификации:


auth        required      pam_env.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        sufficient    pam_ldap.so use_first_pass
auth        required      pam_deny.so

account     required      pam_unix.so broken_shadow
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     [default=bad success=ok user_unknown=ignore] pam_ldap.so
account     required      pam_permit.so

password    requisite     pam_cracklib.so try_first_pass retry=3
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    sufficient    pam_ldap.so use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
session     optional      pam_ldap.so
  

Обеспечение безопасности LDAP

Обеспечение безопасности LDAP является важной задачей. Рассмотрим несколько основных настроек для повышения безопасности LDAP.

Использование SSL/TLS

Для обеспечения шифрования соединений используйте SSL/TLS. Рассмотрим пример настройки SSL/TLS для LDAP.

Сначала создайте самоподписанный сертификат:

openssl req -new -x509 -nodes -out /etc/openldap/certs/ldap.crt -keyout /etc/openldap/certs/ldap.key -days 365

Отредактируйте файл /etc/openldap/slapd.d/cn=config.ldif для использования созданных сертификатов:


dn: cn=config
changetype: modify
replace: olcTLSCertificateFile
olcTLSCertificateFile: /etc/openldap/certs/ldap.crt

dn: cn=config
changetype: modify
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/openldap/certs/ldap.key
  

Примените изменения с помощью команды:

ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/openldap/slapd.d/cn=config.ldif

Перезапустите LDAP для применения изменений:

systemctl restart slapd

Ограничение доступа по IP-адресам

Для ограничения доступа к серверу LDAP только для определенных IP-адресов используйте правила брандмауэра или настройки самого LDAP.

Например, для ограничения доступа по IP-адресам в файле /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif добавьте следующие строки:


dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: to * by addr=192.168.1.0/24 read by * none
  

Примените изменения с помощью команды:

ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif

Мониторинг и обслуживание LDAP

Мониторинг и обслуживание LDAP являются важными задачами для обеспечения его стабильной работы. Рассмотрим основные методы мониторинга и обслуживания LDAP.

Мониторинг логов

Логи LDAP содержат важную информацию о работе сервера и помогают выявлять проблемы. Логи находятся в файле /var/log/ldap.log. Используйте команду tail для просмотра последних записей в логе:

tail -f /var/log/ldap.log

Проверка состояния сервера

Используйте команду systemctl status для проверки состояния LDAP:

systemctl status slapd

Резервное копирование и восстановление конфигурации LDAP

Резервное копирование и восстановление конфигурации LDAP являются важными задачами для обеспечения безопасности данных.

Резервное копирование конфигурации

Для резервного копирования конфигурации LDAP создайте архив конфигурационных файлов:

tar -czvf ldap_backup.tar.gz /etc/openldap/slapd.d /var/lib/ldap

Восстановление конфигурации

Для восстановления конфигурации используйте команду tar для распаковки архива:

tar -xzvf ldap_backup.tar.gz -C /etc/openldap/slapd.d /var/lib/ldap

Перезапустите LDAP для применения изменений:

systemctl restart slapd

Дополнительные настройки LDAP

Рассмотрим некоторые дополнительные настройки, которые могут быть полезны для управления и настройки LDAP.

Настройка индексирования

Для улучшения производительности LDAP можно настроить индексирование атрибутов. Добавьте следующие строки в файл /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif:


dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcDbIndex
olcDbIndex: uid eq
olcDbIndex: cn eq
olcDbIndex: sn eq
  

Примените изменения с помощью команды:

ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif

Настройка репликации

Для обеспечения высокой доступности и отказоустойчивости LDAP можно настроить репликацию данных между серверами LDAP. Рассмотрим настройку репликации на примере двух серверов: мастера и реплики.

Настройка мастера

На сервере мастере добавьте следующие строки в файл /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif:


dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcSyncrepl
olcSyncrepl: rid=001 provider=ldap://master.example.com bindmethod=simple binddn="cn=admin,dc=example,dc=com" credentials=secret searchbase="dc=example,dc=com" type=refreshAndPersist retry="60 +"
  

Примените изменения с помощью команды:

ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif

Настройка реплики

На сервере реплики добавьте следующие строки в файл /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif:


dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcSyncrepl
olcSyncrepl: rid=002 provider=ldap://replica.example.com bindmethod=simple binddn="cn=admin,dc=example,dc=com" credentials=secret searchbase="dc=example,dc=com" type=refreshAndPersist retry="60 +"
  

Примените изменения с помощью команды:

ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif

Заключение

Мы рассмотрели основные аспекты установки, настройки и управления LDAP в НАЙС ОС. LDAP обеспечивает централизованное управление учетными записями и доступом к ресурсам, а понимание его настройки является важным навыком для системных администраторов. Продолжайте изучать и применять эти знания на практике для создания стабильных и безопасных систем управления доступом.