The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"LDAP аутентификация"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"LDAP аутентификация"
Сообщение от Вадим emailИскать по авторуВ закладки(??) on 06-Апр-04, 13:22  (MSK)
Добрый день!
При создании сервера аутентификации возникла следующая проблема:
существует LDAP сервер на базе OpenLDAP 2.0.27-8 и RedHat Linux 9.0 файл конфигурации slapd.conf приведен ниже. Сервер запущен следующим образом:
/usr/local/libexec/slapd -h ldaps:///

В базе содержатся данные о пользователях.
Попытка получить данные после аутентификации с помощью ldapsearch оканчивается успешно. То есть команда вида:
ldapsearch -D "uid=a,cn=aa,dc=test,dc=ru" -W
после ввода правильного пароля успешно завершается.

Попытка подключиться по SSH после настройки PAM и NSSWITCH оканчивается неудачей. (При изменении записи URI в /etc/ldap.conf на уже работающий сервер аутентификация проходит)
В лог файле /var/log/secure появляются следующие записи.
Apr  5 16:58:07 coala sshd[16810]: pam_ldap: ldap_simple_bind Can't contact LDAP server
Apr  5 16:58:09 coala sshd[16810]: Failed password for a from 192.168.4.76 port 1368
Apr  5 16:58:13 coala sshd[16810]: pam_ldap: ldap_simple_bind Can't contact LDAP server


# slapd.conf.
# This file should NOT be world readable.
#
include         /usr/local/etc/openldap/schema/core.schema
include         /usr/local/etc/openldap/schema/cosine.schema
include         /usr/local/etc/openldap/schema/inetorgperson.schema
include         /usr/local/etc/openldap/schema/nis.schema

pidfile         /usr/local/var/run/slapd.pid
argsfile        /usr/local/var/run/slapd.args

# TLS
TLSCertificateFile /usr/local/etc/openldap/certs/cert.pem
TLSCertificateKeyFile /usr/local/etc/openldap/certs/privkey.pem

loglevel 1

access to attrs="userPassword"
        by dn.base="cn=admin,dc=test,dc=ru" write
        by self write
        by anonymous auth
        by * none

access to *
        by self write
        by dn.base="cn=admin,dc=test,dc=ru" write
        by * read
#        by anonymous auth
#       by * none
allow bind_v2

database        ldbm
suffix          "dc=test,dc=ru"
rootdn          "cn=admin,dc=test,dc=ru"
# Cleartext passwords, especially for the rootdn, should
# be avoid.  See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
rootpw          1234567
# The database directory MUST exist prior to running slapd AND
# should only be accessible by the slapd and slap tools.

# Mode 700 recommended.
directory       /usr/local/var/openldap-data

# Indices to maintain
index   objectClass,uid,uidNumber,gidNumber,memberUid   eq
index   cn,mail,surname,givenname                       eq,subinitial

/etc/ldap.conf
uri ldaps://127.0.0.1
base dc=test,dc=ru
#ldap_version 3
#referrals no
port 636
scope sub
#nss_map_objectclass posixAccount User
#nss_map_attribute uid msSFU30Name
#nss_map_attribute uniqueMember posixMember
#nss_map_attribute userPassword msSFU30Password
#nss_map_attribute homeDirectory msSFU30HomeDirectory
#nss_map_attribute gidNumber msSFU30GidNumber
#nss_map_attribute uidNumber msSFU30UidNumber
#nss_map_objectclass posixGroup Group
#nss_map_attribute loginShell msSFU30LoginShell
#pam_login_attribute msSFU30Name
pam_filter objectclass=posixAccount
#pam_password ad
#TLS_REQCERT never

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "LDAP аутентификация"
Сообщение от Sampan Искать по авторуВ закладки on 06-Апр-04, 18:33  (MSK)
Считаем, что /etc/pam.d/sshd настроен

1. убери allow bind_v2 из slapd.conf и включи ldap_version 3 в /etc/ldap.conf (нехрена даунгрэйдом заниматься)

2. у меня в /etc/ldap.conf присутствует:

pam_filter objectclass=posixAccount

pam_login_attribute uid

3. как ты генеришь пароли, хранимые в LDAP, тот же тип хэша нужно указать в /etc/ldap.conf, варианты:

pam_password clear

pam_password crypt

pam_password md5

и т.п.

4. Обрати внимание на:

nss_base_passwd         ou=next,o=test,c=ru?one

nss_base_shadow         ou=next,o=test,c=ru?one

nss_base_group          ou=next,o=test,c=ru?one

(DN у тебя, естественно другой будет, one или sub - тебе решать)

5. Обрати внимание на binddn и bindpw в /etc/ldap.conf. Их нужно указать правильные (анонимный бинд не пройдет). pam_ldap все же нужно читать юзерский пароль из LDAP для аутентификации, иначе - как он будет аутентифицировать?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Re: LDAP аутентификация"
Сообщение от Вадим emailИскать по авторуВ закладки(??) on 06-Апр-04, 20:58  (MSK)
>Считаем, что /etc/pam.d/sshd настроен
>
>1. убери allow bind_v2 из slapd.conf и включи ldap_version 3 в /etc/ldap.conf
>(нехрена даунгрэйдом заниматься)
>
>2. у меня в /etc/ldap.conf присутствует:
>
>pam_filter objectclass=posixAccount
>
>pam_login_attribute uid
>
>3. как ты генеришь пароли, хранимые в LDAP, тот же тип хэша
>нужно указать в /etc/ldap.conf, варианты:
>
>pam_password clear
>
>pam_password crypt
>
>pam_password md5
>
>и т.п.
>
>4. Обрати внимание на:
>
>nss_base_passwd         ou=next,o=test,c=ru?one
>
>nss_base_shadow         ou=next,o=test,c=ru?one
>
>nss_base_group          ou=next,o=test,c=ru?one
>
>(DN у тебя, естественно другой будет, one или sub - тебе решать)
>
>
>5. Обрати внимание на binddn и bindpw в /etc/ldap.conf. Их нужно указать
>правильные (анонимный бинд не пройдет). pam_ldap все же нужно читать юзерский
>пароль из LDAP для аутентификации, иначе - как он будет аутентифицировать?
>


Огромное спасибо за советы.
При дальнейшем разборе полетов без внесения приведенных изменений протестировал LDAP без SSL - работает, а с SSL никак.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Re: LDAP аутентификация"
Сообщение от Andrek emailИскать по авторуВ закладки on 07-Апр-04, 05:24  (MSK)
Как делал я.
По умолчанию в RedHat-9 TLS опции закомментированы.
Раскомментировал TLS опции (ключ уже был сгенерен) и подредактировал /etc/init.d/ldap, оставил строку запуска ldaps.
Стартанул, проверил, netstat -atn | grep LISTEN, порт светится 636 то что надо.
Для работоспособности ldap-овских утилит надо править /etc/openldap/ldap.conf:
URI ldaps://ldap.vmware
BASE dc=vmware
TLS_REQCERT never
этого достаточно чтобы к примеру с помощью ldapsearch -D"cn=admin,dc=vmware" -x -W , авторизоваться и провести поиск.
Далее чтобы nss_ldap увидел наш ldaps server, подредактируем /etc/ldap/conf, там много лишнего.
Вот что у меня в минимуме:
host ldap.vmware
base dc=vmware

rootbinddn cn=,dc=vmware #user который имеет доступ на чтение аккаунтов и его пароль в ldap.secret
scope one
nss_base_passwd ou=users,dc=vmware?one
nss_base_shadow ou=users,dc=vmware?one
nss_base_group ou=groups,dc-vmware?one
ssl yes

Это все, проверяем getent passwd, и в конце списка вижу пользователя из базы ldap.

да вот еще мой тестовый ldif если надо ;)
----------------------------------------
# vmware
dn: dc=vmware
objectClass: dcObject
objectClass: organization
dc: vmware
o: VmWare Corp

# admin, vmware
dn: cn=admin,dc=vmware
objectClass: organizationalRole
cn: admin
description: Administrator LDAP

# users, vmware
dn: ou=users,dc=vmware
objectClass: top
objectClass: organizationalUnit
ou: users

# groups, vmware
dn: ou=groups,dc=vmware
objectClass: top
objectClass: organizationalUnit
ou: groups

# sandy, groups, vmware
dn: cn=sandy,ou=groups,dc=vmware
objectClass: top
objectClass: posixGroup
cn: sandy
gidNumber: 3000
memberUid: sandy

# sandy, users, vmware
dn: uid=sandy,ou=users,dc=vmware
objectClass: top
objectClass: posixAccount
cn: sandy
uid: sandy
uidNumber: 3000
gidNumber: 3000
homeDirectory: /home/sandy
loginShell: /bin/bash
gecos: SandySandy
----------------------------------------

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Re: LDAP аутентификация"
Сообщение от Andrek emailИскать по авторуВ закладки on 07-Апр-04, 05:26  (MSK)
Естественно не забываем про /etc/nsswith.conf
;)
  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Re: LDAP аутентификация"
Сообщение от Вадим emailИскать по авторуВ закладки(??) on 07-Апр-04, 15:19  (MSK)
Аутентификация по LDAP проходит, все нормально работает, по LDAPS - нет.
Запись в /var/log/secure.
Apr  7 15:09:44 coala sshd[3122]: Illegal user a from 194.67.67.194

Аутентификация по LDAPS через уже работающий сервер аутентификации тоже проходит без проблем.

После такого могу грешить только на настройки ldap сервера, либо SSL.

Измененный /usr/local/etc/openldap/slapd.conf

# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
include         /usr/local/etc/openldap/schema/core.schema
include         /usr/local/etc/openldap/schema/cosine.schema
include         /usr/local/etc/openldap/schema/inetorgperson.schema
include         /usr/local/etc/openldap/schema/nis.schema

pidfile         /usr/local/var/run/slapd.pid
argsfile        /usr/local/var/run/slapd.args

# TLS
TLSCertificateFile /usr/local/etc/openldap/certs/cert.pem
TLSCertificateKeyFile /usr/local/etc/openldap/certs/privkey.pem
TLSCACertificatePath  /usr/local/etc/openldap/certs

loglevel 1

access to attrs="userPassword"
        by dn.base="cn=admin,dc=test,dc=ru" write
        by self write
        by anonymous auth
        by * none

access to *
        by self write
        by dn.base="cn=admin,dc=test,dc=ru" write
        by * read
        by anonymous auth

database        ldbm
suffix          "dc=test,dc=ru"
rootdn          "cn=admin,dc=test,dc=ru"
rootpw          1234567

directory       /usr/local/var/openldap-data


index   objectClass,uid,uidNumber,gidNumber,memberUid   eq
index   cn,mail,surname,givenname                       eq,subinitial

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Re: LDAP аутентификация"
Сообщение от Sampan Искать по авторуВ закладки on 07-Апр-04, 17:24  (MSK)
>Запись в /var/log/secure.
>Apr  7 15:09:44 coala sshd[3122]: Illegal user a from 194.67.67.194

А в /etc/pam.d/sshd у тебя /lib/security/pam_ldap.so прописан?

На всякий случай, /etc/pam.d/sshd рапечатай здесь - посмотрим.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Re: LDAP аутентификация"
Сообщение от Andrek emailИскать по авторуВ закладки on 08-Апр-04, 03:45  (MSK)
Если пользуешься RedHat-9 нет необходимости править pam.d/sshd.
Да и веcь pam практически завязан на pam.d/system-auth
За тебя это сделает в RedHat программа setup, запусти ее и в меню "Autentication configuration" подредактируй параметры сервера ldap.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "Re: LDAP аутентификация"
Сообщение от Andrek emailИскать по авторуВ закладки on 08-Апр-04, 03:59  (MSK)
и еще на последок ;)
Попробуй в ldap шифровать пароли алгоритмом crypt. Так как в свое время у меня авторизация проходила именно при шифровании паролей этим методом.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "Re: LDAP аутентификация"
Сообщение от Вадим emailИскать по авторуВ закладки(??) on 08-Апр-04, 13:21  (MSK)
>и еще на последок ;)
>Попробуй в ldap шифровать пароли алгоритмом crypt. Так как в свое время
>у меня авторизация проходила именно при шифровании паролей этим методом.

Спасибо за совет, сейчас попробую.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "Re: LDAP аутентификация"
Сообщение от Вадим emailИскать по авторуВ закладки(??) on 08-Апр-04, 13:21  (MSK)
>>Запись в /var/log/secure.
>>Apr  7 15:09:44 coala sshd[3122]: Illegal user a from 194.67.67.194
>
>А в /etc/pam.d/sshd у тебя /lib/security/pam_ldap.so прописан?
>
>На всякий случай, /etc/pam.d/sshd рапечатай здесь - посмотрим.


#%PAM-1.0
auth       required     /lib/security/pam_nologin.so
auth       sufficient   /lib/security/pam_ldap.so
auth       required     /lib/security/pam_unix_auth.so try_first_pass
account    sufficient   /lib/security/pam_ldap.so
account    required     /lib/security/pam_unix_acct.so
password   required     /lib/security/pam_cracklib.so
password   sufficient   /lib/security/pam_ldap.so
password   required     /lib/security/pam_pwdb.so use_first_pass
session    required     /lib/security/pam_unix_session.so

  Рекомендовать в FAQ | Cообщить модератору | Наверх

11. "Re: LDAP аутентификация"
Сообщение от Вадим emailИскать по авторуВ закладки(??) on 08-Апр-04, 13:54  (MSK)
Нет, crypt не помогает.
Напомню, что такае ерунда творится только при использовании SSL, без SSL
авторизация проходит нормально.

Опять в /var/log/secure
Apr  8 13:46:31 coala sshd[3735]: Illegal user b from 192.168.4.76
Apr  8 13:46:31 coala sshd[3735]: Failed none for illegal user b from 192.168.4.76 port 1175
Apr  8 13:46:33 coala sshd[3735]: Failed password for illegal user b from 192.168.4.76 port 1175

На всякий случай.
/etc/nsswitch.conf
passwd:     files ldap
shadow:     files ldap
group:      files ldap

#hosts:     db files nisplus nis dns
hosts:      files dns

# Example - obey only what nisplus tells us...
#services:   nisplus [NOTFOUND=return] files
#networks:   nisplus [NOTFOUND=return] files
#protocols:  nisplus [NOTFOUND=return] files
#rpc:        nisplus [NOTFOUND=return] files
#ethers:     nisplus [NOTFOUND=return] files
#netmasks:   nisplus [NOTFOUND=return] files

bootparams: nisplus [NOTFOUND=return] files

ethers:     files
netmasks:   files
networks:   files
protocols:  files
rpc:        files
services:   files

netgroup:   files

#publickey:  nisplus

automount:  files
aliases:    files #nisplus

  Рекомендовать в FAQ | Cообщить модератору | Наверх

12. "Re: LDAP аутентификация"
Сообщение от Alex Deiter Искать по авторуВ закладки on 08-Апр-04, 22:30  (MSK)
>Нет, crypt не помогает.
Советы Вам дают неправильные.

>Напомню, что такае ерунда творится только при использовании SSL, без SSL
>авторизация проходит нормально.

У Вас в /etc/ldap.conf строка: uri ldaps://127.0.0.1 всё портит.
Для какого хоста выданы сертификаты, описанные в slapd.conf:

# TLS
TLSCertificateFile /usr/local/etc/openldap/certs/cert.pem
TLSCertificateKeyFile /usr/local/etc/openldap/certs/privkey.pem

Вот к этому хосту посредством ssl и ходите.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

13. "Re: LDAP аутентификация"
Сообщение от Вадим emailИскать по авторуВ закладки(??) on 08-Апр-04, 23:00  (MSK)
Спасибо, Alex.
Но, к сожалению, замена uri на имя машины в сертификате тоже не помогает.

Причем во время использования SSL команда
ldapsearch -D "uid=a,cn=gr,dc=test,dc=ru" -W
после ввода правильного пароля проходит.

>У Вас в /etc/ldap.conf строка: uri ldaps://127.0.0.1 всё портит.
>Для какого хоста выданы сертификаты, описанные в slapd.conf:
>
># TLS
>TLSCertificateFile /usr/local/etc/openldap/certs/cert.pem
>TLSCertificateKeyFile /usr/local/etc/openldap/certs/privkey.pem
>
>Вот к этому хосту посредством ssl и ходите.


  Рекомендовать в FAQ | Cообщить модератору | Наверх

14. "Re: LDAP аутентификация"
Сообщение от Sampan Искать по авторуВ закладки on 09-Апр-04, 02:43  (MSK)
>Опять в /var/log/secure
>Apr  8 13:46:31 coala sshd[3735]: Illegal user b from 192.168.4.76
>Apr  8 13:46:31 coala sshd[3735]: Failed none for illegal user b
>from 192.168.4.76 port 1175
>Apr  8 13:46:33 coala sshd[3735]: Failed password for illegal user b
>from 192.168.4.76 port 1175

А чего все неудачные примеры sshd?

Может в sshd_config не правильно настроен AllowUsers ? Посмотри...

  Рекомендовать в FAQ | Cообщить модератору | Наверх

15. "Re: LDAP аутентификация"
Сообщение от asser Искать по авторуВ закладки on 12-Апр-04, 12:31  (MSK)
Скорее всего при компиляции pam_ldap не скомпилировал поддержку SSL. Читаем pam_ldap/README.

Q: Where is ldap_ssl.h? It's in the Netscape LDAP        
C SDK. Download it from developer.netscape.com. If you    
don't want to use SSL, removed -DSSL from CFLAGS. I      
don't have any experience building with the SSL/TLS      
support in OpenLDAP.                                      

  Рекомендовать в FAQ | Cообщить модератору | Наверх

16. "Re: LDAP аутентификация"
Сообщение от Вадим emailИскать по авторуВ закладки(??) on 12-Апр-04, 12:41  (MSK)
Авторизация SSH не проходит только с локальным LDAP сервером по SSL, причем ldapsearch по SSL работает.
Если настраиваю авторизацию через уже работающий LDAP сервер по SSL, то авторизация проходит.

***********
При компиляции pam_ldap без SSL не проходила бы и удаленная аутентификация.


  Рекомендовать в FAQ | Cообщить модератору | Наверх

17. "Re: LDAP аутентификация"
Сообщение от andrek emailИскать по авторуВ закладки on 19-Апр-04, 10:21  (MSK)
Окей!
Повторил опыт.
Дистр RedHat-7.2 но это не важно.
Собрал openldap-2.2.9, nss_ldap-217, pam_ldap-169, cyrus-sasl-2.1.18.
Настроил только ldaps.
Создал пользователя.
Действительно локально пользователь заходит, через ssh нет.
Проблема как я и говорил в криптовании, пароли принимает криптованные только crypt, ни md5 smd5 sha ssha пароли через pam_ldap для ssh авторизации не проходят.

Ну кто "правильные мысли" раскажет?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

18. "Re: LDAP аутентификация"
Сообщение от Serg emailИскать по авторуВ закладки(??) on 27-Апр-04, 13:06  (MSK)
Ну в общем, я и сам до конца не разобрался (настраиваю второй день), но у меня работает авторизация по ssh, причем LDAP работает с SSL.
В моем случае почему-то авторизация по ssh проходит только если закоментить все acl ...
При таком раскладе пароль виден всем :(
>Ну кто "правильные мысли" раскажет?

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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