The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Авторизация PAM_LDAP в случае когда LDAP на Lotus Domino, !*! Shadow, 12-Июл-06, 20:27  [смотреть все]
Disclaimer:
1. Я читал большинство статей про LDAP на opennet.ru
2. В *nix я не силен. Просьба не пинать ногами.

Суть проблемы:
Есть сервер с FreeBSD 6.1 на нем установлены и вроде как сконфигурены:
openldap-client-2.3.24
pam_ldap-1.8.0
Есть сервер Lotus Domino (win32) с запущеным таском LDAP. Команда ldapsearch с FreeBSD прекрасно с ним общается.

В /etc/pam.d/sshd добавлена строчка "auth sufficient /usr/local/lib/pam_ldap.so"

Сначала была проблема, при загрузке PAM не мог сделать bind к LDAP. Исправил, биндится нормально. Пытаюсь зайти по SSH пользователем из LDAP. Не получается. PAM находит пользователя в LDAP пишет в логе его полное имя и жалуется на "Invalid credentials".

Пример (vasek - это один из нескольких CN пользователя. пытаюсь зайти командой "ssh vasek@freebsd61.it.eee.by"):
Jul 12 11:28:38 freebsd61 sshd[512]: pam_ldap: error trying to bind as user "CN=Vasia Pupkin,O=IBAJava,C=BY" (Invalid credentials)
Jul 12 11:28:38 freebsd61 sshd[510]: error: PAM: authentication error for illegal user vasek from freebsd61.it.eee.by

Вопрос в каком направлении копать ? Почему биндящий юзер из binddn прекрасно биндится, делает поиск, находит и ....оппа. Может что с передачей пароля не все гладко ?
Возможно я не указал какие-либо подробности. Если надо для диагностики - напишу.

Спасибо за любую помощь !

  • Авторизация PAM_LDAP в случае когда LDAP на Lotus Domino, !*! perece, 03:17 , 13-Июл-06 (1)
    • Авторизация PAM_LDAP в случае когда LDAP на Lotus Domino, !*! Shadow, 14:33 , 13-Июл-06 (2)
      >pam - это хорошо. но без работающего nss-ldap ssh всеравно не пустит.
      >в SysV для настройки резолвера libc используется /etc/nsswitch.conf. в BSD - не
      >знаю. в любом случае "getent passwd vasek" должна выдавать строчку а'ля
      >/etc/passwd для данного пользователя из LDAP. и только после этого -
      >PAM.
      Странно конечно. Я думал что nsswitch для тех приложений которые не умеют использольвать PAM. При старте системы, видимо когда загружается модуль PAM (или инициализируется), идет контрольный bind к ldap.

      Хорошо, я поставил из портов nss_ldap-1.250 и добавил ldap lookup в nsswitch.conf (надеюсь корректно):
      passwd: compat
      passwd_compat: ldap nis

      Getent я не нашел, есть getpwnam. В ввиду неопытности взял perl:
      #!/usr/bin/perl
      ($name,$pwcode,$uid,$gid,$quota,$comment,$gcos,$home,$logprog) = getpwnam("cn=vasek");
      print ("User id is $uid\n");
      print ("Password is $pwcode\n");

      Результат нулевой. Юзеров не видит, в логах тоже не ругается, т.е. на понятно удалось мне заюзать механизм nsswitch или нет :-( Юзеров из файла passwd видит.

      >>Вопрос в каком направлении копать ? Почему биндящий юзер из binddn прекрасно
      >>биндится, делает поиск, находит и ....оппа. Может что с передачей пароля
      >>не все гладко ?
      >вряд-ли. скорее - косяк в схеме. домино для своего "стандартного" юзера может
      >использовать нестандартную с точки зрения nss-ldap/pam-ldap схему и/или DITContRules. >как выглядит этот об'ект? ('ldapsearch -A ... (uid=vasek)' - в студию!)

      Результат команды "ldapsearch -A -D cn="cn=Vasia Pupkin,o=ibajava,c=by" -w zalupa -h jbaw.eee.by  "cn=vasek" :
      ###############################################################################
      # extended LDIF
      #
      # LDAPv3
      # base <> with scope subtree
      # filter: cn=vasek
      # requesting: ALL
      #

      # Vasia Pupkin, IBAJava, BY
      dn: CN=Vasia Pupkin,O=IBAJava,C=BY
      cn:
      mail:
      originalmodtime:
      objectclass:
      mailsystem:
      messagestorage:
      encryptincomingmail:
      dominocertificate:
      roamcleansetting:
      roamcleanper:
      availablefordirsync:
      checkpassword:
      passwordchangeinterval:
      passwordgraceperiod:
      clienttype:
      givenname:
      sn:
      uid:
      maildomain:
      mailserver:
      mailfile:
      roaminguser:
      httppasswordchangedate:
      netusername:
      clntmachine:
      clntpltfrm:
      clntbld:
      clntdate:
      majver:
      minver:
      qmrver:
      qmuver:
      hotver:
      fixpver:
      flagsver:
      userpassword:

      # search result
      search: 2
      result: 0 Success

      # numResponses: 2
      # numEntries: 1
      ###############################################################################

      Мне кажется что кроме cn(dn) и userppassword никаких аттрибутов и не нужно. Кстати у Lotus Domino в логе тоже ошибка:
      07/13/2006 01:02:31 PM  LDAP Server: Warning: Invalid credentials specified on Bind request, DN is Vasia Pupkin,O=IBAJava,C=BY/

      В общем теперь два тупика. Почему не включается nss_ldap и почему все же Invalid credentials :(




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру