Назад | Перейти на главную страницу

VsFTPd - LDAP - PAM

Я пытаюсь настроить сервер VsFTPd для аутентификации снова на сервере LDAP. Это может быть легко, но поскольку я впервые использую и LDAP, и PAM, у меня возникают некоторые трудности. VsFTPd работает на сервере Ubuntu 11.04, а LDAP - это OpenLDAP на сервере Ubuntu 10.10. Я отключил AppArmor на первом. VsFTPd не может подключиться к серверу LDAP, в моем системном журнале есть:

vsftpd: pam_ldap: ldap_simple_bind Can't contact LDAP server

Сервер LDAP в порядке, так как я могу ldapsearch.

Вот мой /etc/pam.d/vsftpd файл:

auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
@include common-account
@include common-session
@include common-auth
auth required pam_ldap.so
account required pam_ldap.so
session required pam_ldap.so
password required pam_ldap.so

И вот мой /etc/ldap.conf файл:

base dc=example,dc=com
uri ldapi:///ldap.example.com
ldap_version 3
rootbinddn cn=admin,dc=example,dc=com
pam_password md5
nss_initgroups_ignoreusers a_bunch_of_system_users

Кто-нибудь может мне помочь ? Спасибо.

РЕДАКТИРОВАТЬ: новая версия /etc/pam.d/vsftpd файл:

auth    required    pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

account required    pam_unix.so
account sufficient  pam_ldap.so

session required    pam_limits.so
session required    pam_unix.so
session optimal     pam_ldap.so

auth    required    pam_env.so
auth    sufficient  pam_unix.so nullok_secure
auth    sufficient  pam_ldap.so use_first_pass

auth    required    pam_shells.so

Хорошо, эта часть проблемы решена. Вот рабочий /etc/pam.d/vsftpd файл:

auth                    required                pam_ldap.so
account                 required                pam_ldap.so
password                required                pam_ldap.so

И вы должны добавить эту строку в /etc/vsftpd.conf:

guest_enable=YES

После этого есть еще некоторая работа по правильному удалению пользователей LDAP на FTP-сервере, но теперь они могут войти в систему.

Еще раз спасибо Рилиндо за вашу помощь. В конце концов, проблема не в ACL.

В соответствии с man ldap.conf:

URI <ldap[si]://[name[:port]] ...>

Схема URI может быть любой из ldap, ldaps или ldapi, которые относятся к LDAP через TCP, LDAP через SSL (TLS) и LDAP через IPC (сокеты домена UNIX) соответственно.

Итак, меняем uri ldapi:///ldap.example.com к uri ldap:///ldap.example.com и попробуй еще раз.