pam_ldap + openldap (не проходит авторизация)

FreeBSD, NetBSD, OpenBSD, DragonFly и т. д.

Модератор: arachnid

Аватара пользователя
ivan2ksusr
Сообщения: 882
ОС: Mac OS X, openSUSE

pam_ldap + openldap

Сообщение ivan2ksusr »

Добрый день!
Система:

Код: Выделить всё

FreeBSD 7.2-RELEASE
pam_ldap-1.8.4_1
nss-3.11.9_2
nss_ldap-1.264_2
openldap-client-2.4.16
openldap-server-2.4.16_1
phpldapadmin 1.2.0


если создаю пользователя вот так:
ldapadd -W -x -D "cn=root,dc=vif,dc=corp" -f /usr/local/etc/openldap/base_for_ldap/user1.ldif
Enter LDAP Password:
adding new entry "cn=user1,ou=users,dc=vif,dc=corp"

то пользователь в базе ldap есть, но если проверить создался ли пользователь unix то получаю результат:
id user1
id: user1: no such user

хотя:
ldapsearch -x
...

Код: Выделить всё

# user1, users, vif.corp
dn: cn=user1,ou=users,dc=vif,dc=corp
objectClass: top
objectClass: person
objectClass: posixAccount
objectClass: shadowAccount
cn: user1
sn: user1
uid: user1
userPassword:: e1NTSEF9ICo=
uidNumber: 10001
gidNumber: 10001
gecos: User
homeDirectory: /home/user1
loginShell: /usr/sbin/nologin


cat /etc/pam.d/system

Код: Выделить всё

# auth
auth        sufficient    pam_opie.so        no_warn no_fake_prompts
auth        requisite    pam_opieaccess.so    no_warn allow_local
#auth        sufficient    pam_krb5.so        no_warn try_first_pass
#auth        sufficient    pam_ssh.so        no_warn try_first_pass
#auth        required    pam_unix.so        no_warn try_first_pass nullok
auth         sufficient     pam_unix.so         no_warn try_first_pass nullok
auth         required     /usr/local/lib/pam_ldap.so use_first_pass

# account
#account     required    pam_krb5.so
account        required    pam_login_access.so
account         sufficient    /usr/local/lib/pam_ldap.so
account        required    pam_unix.so

# session
#session     optional    pam_ssh.so
session        required    pam_lastlog.so        no_fail

# password
#password    sufficient    pam_krb5.so        no_warn try_first_pass
password    sufficient    /usr/local/lib/pam_ldap.so    no_warn
password    required    pam_unix.so        no_warn try_first_pass


так же не создается директория в /home

в логах вижу:
grep pam /var/log/auth.log

Код: Выделить всё

Jul 23 15:55:03 bsd su: pam_ldap: ldap_simple_bind Can't contact LDAP server
Jul 23 15:55:03 bsd su: pam_ldap: reconnecting to LDAP server...
Jul 23 15:55:03 bsd su: pam_ldap: ldap_simple_bind Can't contact LDAP server
Jul 23 15:55:03 bsd su: in _openpam_check_error_code(): pam_sm_acct_mgmt(): unexpected return value 12


grep pam /var/log/messages

Код: Выделить всё

Jul 23 13:09:04 bsd su: pam_ldap: ldap_search_s No such object
Jul 23 13:14:39 bsd su: pam_ldap: ldap_search_s No such object
Jul 23 13:25:33 bsd su: pam_ldap: ldap_search_s No such object
Jul 23 13:29:16 bsd su: pam_ldap: ldap_search_s No such object
Jul 23 15:38:52 bsd su: pam_ldap: ldap_search_s No such object
Jul 23 15:39:17 bsd su: pam_ldap: ldap_search_s No such object
Jul 23 15:55:03 bsd su: pam_ldap: ldap_simple_bind Can't contact LDAP server
Jul 23 15:55:03 bsd su: pam_ldap: reconnecting to LDAP server...
Jul 23 15:55:03 bsd su: pam_ldap: ldap_simple_bind Can't contact LDAP server
Jul 23 15:55:03 bsd su: in _openpam_check_error_code(): pam_sm_acct_mgmt(): unexpected return value 12



google уже весь перерыл, уже не знаю что и делать, хотя есть аналогичный сервер, там все работает нормально со связкой openldap+samba
Вот пытаюсь сделать аналогичный сервер, только вот еще будет установлен OpenDS, но пока что pam не дает покоя :(
Спасибо сказали:
Аватара пользователя
ivan2ksusr
Сообщения: 882
ОС: Mac OS X, openSUSE

Re: pam_ldap + openldap

Сообщение ivan2ksusr »

пересобрал pam_ldap, переделал конфиг, далее получил вот что:
Jul 24 13:19:10 bsd su: in openpam_load_module(): no /usr/local/lib/pam_ldap.so found
Jul 24 13:19:10 bsd su: pam_start: system error

FreeBSD 7.2-RELEASE i386

далее нашел похожий баг

ради эксперимента установил пакет от 7.1
в тоге получил:

Jul 24 13:53:27 bsd login: pam_ldap: could not open secret file /usr/local/etc/ldap.secret (No such file or directory)
Jul 24 13:53:27 bsd login: pam_ldap: ldap_simple_bind Can't contact LDAP server
Jul 24 13:53:27 bsd login: pam_ldap: reconnecting to LDAP server...
Jul 24 13:53:27 bsd login: pam_ldap: ldap_simple_bind Can't contact LDAP server
Jul 24 13:53:27 bsd login: pam_authenticate(): authentication information is unavailable
Jul 24 13:54:33 bsd login: pam_ldap: could not open secret file /usr/local/etc/ldap.secret (No such file or directory)
Jul 24 13:54:33 bsd login: pam_ldap: ldap_simple_bind Can't contact LDAP server
Jul 24 13:54:33 bsd login: pam_ldap: reconnecting to LDAP server...
Jul 24 13:54:33 bsd login: pam_ldap: ldap_simple_bind Can't contact LDAP server
Jul 24 13:54:33 bsd login: pam_authenticate(): authentication information is unavailable

хотя:

$ cd /usr/local/etc/
$ ls -l
...
-rw------- 1 root wheel 7 Jul 24 11:19 ldap.secret
...

я так понимаю что это очередной баг, если нет что поправьте пожалуйста
Спасибо сказали:
Аватара пользователя
ivan2ksusr
Сообщения: 882
ОС: Mac OS X, openSUSE

Re: pam_ldap + openldap

Сообщение ivan2ksusr »

Немного разобрался с pam_ldap
привел файл конфигурации /etc/pam.d/system к следующему виду:

Код: Выделить всё

#
# $FreeBSD: src/etc/pam.d/system,v 1.1.30.1 2009/04/15 03:14:26 kensmith Exp $
#
# System-wide defaults
#

# auth
auth        sufficient    pam_opie.so        no_warn no_fake_prompts
auth        requisite    pam_opieaccess.so    no_warn allow_local
#auth        sufficient    pam_krb5.so        no_warn try_first_pass
#auth        sufficient    pam_ssh.so        no_warn try_first_pass
auth     sufficient    /usr/local/lib/pam_ldap.so
auth        required    pam_unix.so        no_warn try_first_pass nullok


# account
#account     required    pam_krb5.so
account        required    pam_login_access.so
account    sufficient    /usr/local/lib/pam_ldap.so
account        required    pam_unix.so

# session
#session     optional    pam_ssh.so
session        required    pam_lastlog.so        no_fail
# password
#password    sufficient    pam_krb5.so        no_warn try_first_pass
password    sufficient      /usr/local/lib/pam_ldap.so
password    required    pam_unix.so        no_warn try_first_pass


ошибки все исчезли, пользователь нормально авторизуется как и должно быть.
Теперь про ldap, если проверить создался ли пользователь unix то получаю тот же результат, пользователя unix нет, а в базе ldap он есть

Вот теперь куда смотреть что то ума не приложу :(
Спасибо сказали:
Аватара пользователя
ivan2ksusr
Сообщения: 882
ОС: Mac OS X, openSUSE

Re: pam_ldap + openldap

Сообщение ivan2ksusr »

после долгих мучений понял что нет связки nss_ldap и pam_ldap, далее пошел по следующему пути:
у меня были симлинки на файлы nss_ldap.conf nss_ldap.secret, удалил линки далее сделал так cp ldap.conf nss_ldap.conf и такую же операцию проделал с lpda.secret и nss_ldap.secret и со всеми симлинками которые создавал, далее удалил nss_ldap cd /usr/ports/net/nss_ldap , make clean , make deinstall, make && make install clean
перезапустил slald
после всех манипуляций проверил создается ли пользователь или нет:
bsd# ldapadd -W -x -D "cn=root,dc=vif,dc=corp" -f /usr/local/etc/openldap/base_for_ldap/admin.ldif
Enter LDAP Password:
adding new entry "cn=admin,ou=users,dc=vif,dc=corp"

bsd# id admin
uid=10000(admin) gid=10000 groups=10000

Ура все работает :)


P.S. документации в интернете куча, пришлось много что напильником допиливать) причем конфигурация файлов на сервере с FreeBSD 7.1 и 7.2 различны
Тему можно закрывать

Сам спросил - сам ответил :)
Спасибо сказали:
jabax
Сообщения: 7
ОС: win & Lenny & BSD

Re: pam_ldap + openldap

Сообщение jabax »

спасиб большое надеюсь мне поможет )
Спасибо сказали: