Вопрос или проблема
Мне интересно, как интегрировать мою базу данных, веб-сервер, резервное копирование и т.д. с серверами CentOS на сервере Zimbra LDAP. Требуется ли для этого более сложная конфигурация, чем стандартная аутентификация LDAP?
Версия моего сервера Zimbra:
[zimbra@zimbra ~]$ zmcontrol -v
Release 8.0.5_GA_5839.RHEL6_64_20130910123908 RHEL6_64 FOSS edition.
Статус моего сервера LDAP:
[zimbra@ldap ~]$ zmcontrol status
Host ldap.domain.com
ldap Running
snmp Running
stats Running
zmconfigd Running
Я уже установил пакеты nss-pam-ldapd на свои серверы.
[root@www]# rpm -qa | grep ldap
nss-pam-ldapd-0.7.5-18.2.el6_4.x86_64
apr-util-ldap-1.3.9-3.el6_0.1.x86_64
pam_ldap-185-11.el6.x86_64
openldap-2.4.23-32.el6_4.1.x86_64
Мой файл /etc/nslcd.conf:
[root@www]# tail -n 7 /etc/nslcd.conf
uid nslcd
gid ldap
# Этот комментарий предотвращает повторную автоматическую миграцию настроек.
uri ldap://ldap.domain.com
base dc=domain,dc=com
binddn uid=zimbra,cn=admins,cn=zimbra
bindpw **pass**
ssl no
tls_cacertdir /etc/openldap/cacerts
Когда я запускаю:
[root@www ~]# id username
id: username: No such user
Но я уверен, что пользователь username существует на сервере LDAP.
ИЗМЕНЕНИЕ: Когда я запускаю команду ldapsearch, я получаю все результаты с учетными данными и DN.
[root@www ~]# ldapsearch -H ldap://ldap.domain.com:389 -w **pass** -D uid=zimbra,cn=admins,cn=zimbra -x 'objectclass=*'
# extended LDIF
#
# LDAPv3
# base <dc=domain,dc=com> (default) with scope subtree
# filter: objectclass=*
# requesting: ALL
#
# domain.com
dn: dc=domain,dc=com
zimbraDomainType: local
zimbraDomainStatus: active
.
.
.
Если ваш сервер Zimbra имеет несколько доменов, ваша база должна быть:
ou=people,dc=domain,dc=tld
Вам нужно настроить ваш LDAP для нацеливания пользователей по uid:
uid=%uid
Ответ или решение
Аутентификация пользователей на сервере Zimbra LDAP с клиентами CentOS
Чтобы интегрировать ваши CentOS-серверы (серверы баз данных, веб и резервного копирования) с LDAP сервером Zimbra, вам потребуется выполнить ряд шагов для настройки аутентификации пользователей. Ваша версия Zimbra 8.0.5 не требует особой сложной конфигурации, однако правильная настройка параметров LDAP является ключевой для успешной интеграции.
1. Установка необходимых пакетов
Вы уже установили пакеты nss-pam-ldapd
, что является первым шагом к успешной интеграции. Аналогично, убедитесь, что у вас установлены nsswitch.conf
, чтобы настроить использование LDAP в системе. Это можно сделать с помощью команды:
cat /etc/nsswitch.conf
Убедитесь, что строки, отвечающие за аутентификацию, выглядят примерно следующим образом:
passwd: files ldap
shadow: files ldap
group: files ldap
2. Настройка файла конфигурации nslcd
Файл конфигурации /etc/nslcd.conf
должен быть правильно настроен для доступа к вашему LDAP серверу. Проверим следующие параметры:
-
uri
: указывает адрес вашего LDAP сервера. Ваша текущая настройка выглядит правильно:uri ldap://ldap.domain.com
-
base
: проверьте, что он установлен корректно. Если у вас есть несколько доменов, используйте более специфичный базовый DN:base ou=people,dc=domain,dc=com
-
Кроме того, настройте параметр
uid
, чтобы сервер LDAP искал пользователей поuid
:
uid=%uid
3. Настройка PAM для LDAP
Вам нужно будет отредактировать файл PAM для настройки аутентификации через LDAP. Откройте файл /etc/pam.d/system-auth
и добавьте следующую строку:
auth required pam_unix.so nullok try_first_pass
auth required pam_ldap.so use_first_pass
account required pam_unix.so
account sufficient pam_ldap.so
Эти строки обеспечивают приоритет LDAP аутентификации, если пользователь не найден в локальных учетных записях.
4. Проверка конфигурации
-
Проверка доступа к LDAP: Используйте команду
ldapsearch
, как вы уже делали, чтобы убедиться, что LDAP сервер доступен и правильно настроен:ldapsearch -H ldap://ldap.domain.com:389 -w your_password -D uid=zimbra,cn=admins,cn=zimbra -x 'objectclass=*'
-
Проверка пользователя: После всех изменений, проверьте аутентификацию пользователя с помощью команды
id
:id имя_пользователя
Если вы получите сообщение "No such user", это может означать, что настройки LDAP не помогают правильно извлекать информацию пользователя из LDAP (неправильный
base
илиuid
).
5. Дополнительная отладка
Если проблемы продолжаются, включите отладочные журналы для nslcd
и nss-pam-ldapd
, чтобы детализировать процесс аутентификации и увидеть, где именно происходит сбой. Журнал может обычно находиться в /var/log/syslog
или /var/log/messages
в зависимости от конфигурации вашей системы.
Заключение
Интеграция CentOS серверов с LDAP сервером Zimbra требует правильной настройки конфигурационных файлов и проверки их работоспособности. Следуя данным шагам, вы сможете успешно настроить аутентификацию пользователей через LDAP. Не забывайте осуществлять тестирование после внесения изменений, чтобы убедиться в их корректности.