LINUX.ORG.RU
ФорумAdmin

помогите с ldapом (pam_ldap nss_ldap)


0

0

Народ, все уже перечитал, но остались вопросы, буду благодарен если ответите:

1) установил сервер ldap, настроил
2) с помощью migration tools перенес passwd groups и shadow
3) поставил pam_ldap, сделал что на локальной машине пользователь авторизуется через него, но только если account заведен на локальной машине!
4) поставил nss_ldap, но этот почему то при попытке авторизации выдает в логи:

check pass; user unknown
authentification service cannot retrieve authention info

Собственно 2 вопроса:
pam_ldap только для паролей?
как бы сделать чтобы nss_ldap работал? хотя бы направление, потому как везде написано что стоит только в nsswitch.conf поменять и все.

anonymous

Сравнительно недавно тоже делал переход на ldap, очень помог следующий документ: http://www.mandrakesecure.net/en/docs/ldap-auth.php

> как бы сделать чтобы nss_ldap работал?
nsswitch.conf не достаточно, надо еще рассказать как и где искать учетные записи - /etc/ldap.conf

> авторизуется через него, но только если account заведен на локальной машине!
Так может ldap при этом вообще не используется, т.е. даже частично не работает ? Для нормальной его работы локальные учетные записи не нужны. Точно не скажу, но есть подозрение на то, что для авторизации нужно чтоб система "видела" пользователя, "видит" она через nss_ldap, который у вас пока не работает.
И еще... Авторизация через PAM использует конф. файлы /etc/pam.d/*, убедитесь, что хотя бы /etc/pam.d/login настроен на работу с pam_ldap.so.
А вообще про все это с примерами написано в выше указанном документе.

spirit ★★★★★
()
Ответ на: комментарий от spirit

Спасибо, что ответили!

само собой /etc/ldap.conf настроен, по крайней мере pam_ldap работает. для nss там четыре строчки раскоментировано, hosts groups password и еще что то там.

Нет, ldap используется, это я четко вижу по логам, да и модуль в /etc/pam.d/login воткнул, стандартную проверку на пароль закоментарил. Все проверено-перпроверено. А локальные аккаунты нужны только для passwd файла - там в /etc/pam.d/login еще проверки есть (account/session, если я их убираю, то я не могу войти в систему - вход и сразу выход без сообщений о неправильном пароле), сам то pam_d почему то кроме пароля ничего не проверяет.

Приведите пример своего /etc/pam.d/login пожалуйста проблема в том что у меня вообще в pam.d нет файла system-auth

anonymous
()
Ответ на: комментарий от no-dashi

Уважаемые господа наверное думают что я искать не умею :) Нет, умею и в частности последний документ читал и не раз. Вы бы лучше объяснили...

anonymous
()
Ответ на: комментарий от anonymous

> у меня вообще в pam.d нет файла system-auth
У меня тоже :-) Точнее в RH-6.2 такого нет, а в 7.3 - есть, но это не
меняет суть дела.
Свой /etc/pam.d/login я приводить не буду, т.к. он не содержит ldap
модулей. Я делал виртуальных пользователей только для приема почты на
них, соответственно их видят только sendmail и popa3d. Вход в систему
(консольный/ssh/ftp/samba) разрешен только пользователям из /etc/passwd.

Конфиги из RH-6.2, брал default-ные и правил руками, до тех пор пока
не начинало работать.
/etc/pam.d/smtp:
#%PAM-1.0
auth            required        /lib/security/pam_env.so
auth            sufficient      /lib/security/pam_unix.so likeauth nullok
auth            sufficient      /lib/security/pam_ldap.so use_first_pass
auth            required        /lib/security/pam_deny.so

account         sufficient      /lib/security/pam_ldap.so
account         required        /lib/security/pam_unix.so

/etc/pam.d/popa3d:
#%PAM-1.0
auth            required        /lib/security/pam_env.so
auth            sufficient      /lib/security/pam_unix.so likeauth nullok
auth            sufficient      /lib/security/pam_ldap.so use_first_pass
auth            required        /lib/security/pam_deny.so
auth            required        /lib/security/pam_nologin.so

account         sufficient      /lib/security/pam_ldap.so
account         required        /lib/security/pam_unix.so

password        required        /lib/security/pam_cracklib.so retry=3 type=
password        sufficient      /lib/security/pam_unix.so nullok use_authtok md5 shadow
password        sufficient      /lib/security/pam_ldap.so use_authtok
password        required        /lib/security/pam_deny.so

session         required        /lib/security/pam_deny.so

/etc/ldap.conf:
host 192.168.20.6
base dc=tank,dc=users,dc=chs
scope sub
pam_login_attribute uid
pam_member_attribute gid
pam_min_uid 700
nss_base_passwd         dc=tank,dc=users,dc=chs?sub
nss_base_shadow         dc=tank,dc=users,dc=chs?sub
ssl no
pam_password    md5

spirit ★★★★★
()
Ответ на: комментарий от spirit

Отлично!, спасибо большое.

Сделал, теперь login на локальной машине отлично проходит даже если нет пользователей в passwd/shadow

Но теперь другой вопрос:

у меня не работает passwd.т.е при запуске спрашивает 1й пароль, запрашивает ldap и говорит что не может получить информацию, однако по логам ldap видно что он возвращает ответ.

anonymous
()
Ответ на: комментарий от anonymous

Честно говоря не заморачивался с passwd (почему - писал выше), просто написал примитивный скрипт passwd-ldap и все :-)

spirit ★★★★★
()
Ответ на: комментарий от anonymous

> у меня не работает passwd.т.е при запуске спрашивает 1й пароль, запрашивает ldap и говорит что не может получить информацию

Проверь корректность rootdn и /etc/ldap.secret ?

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi

>Проверь корректность rootdn и /etc/ldap.secret ?

Вот скажите мне разницу между bindn и rootdn? И вообще эта собака (nss_ldap) не использует rootdn только binddn

Да и без пароля в ldap.secret вообще бы ничего не работало :)

Но пока я все равно рад.

Вопрос: как проверить что клиент-сервер коммуникации с ldap действительно шифруются с помощью tls?

anonymous
()
Ответ на: комментарий от anonymous

>Вопрос: как проверить что клиент-сервер коммуникации с ldap действительно шифруются с помощью tls?
Включи SSL изначально.
http://andrek.ipsp.ru/mail/
Я все делал как там описано.
Так же pam_ldap не использую, стоит nss_ldap-220 и
проблем с авторизацией не испытываю.
Вопрос почему у меня авторизация есть?
Может это уже в glibc зашито?

SandySandy
()
Ответ на: комментарий от SandySandy

>Включи SSL изначально. 1) само собой включил, вопрос "как проверить" 2) не хочу ssl, хочу tls

anonymous
()
Ответ на: комментарий от anonymous

> от скажите мне разницу между bindn и rootdn? И вообще эта собака (nss_ldap) не использует rootdn только binddn

Я же давал ссылку! Там все было русским по белому написано! rootdn используется для административных функций - например... ДЛЯ СМЕНЫ ПАРОЛЯ, а также для chfn, chsh и подобных. Т.е. когда ты делаешь passwd, он идет менять пароль для вызвавшего юзера под rootdn.

А nss_ldap действительно не использует rootdn, ибо nss_ldap использует только get-запросы, в отличие от pam_ldap (которому иногда нужен rootdn для правки).

no-dashi ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.