Доброго всем времени суток.
Нужна помощь в насройке авторизации на ldap-server поднятым под debian6, клиенты все подняты под fedora14.На сервере стоит и настроен slapd.
Вот конфиг slapd.conf
root@ldap:/etc/ldap# cat slapd.conf
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/redhat/autofs.schema
include /etc/openldap/schema/openldap.schema
include /etc/openldap/schema/misc.schema
pidfile /var/run/slapd.pid
access to attrs=userPassword,shadowLastChange
by self write
by anonymous auth
by dn="cn=admin,dc=ldap,dc=localdomain" write
by * none
access to dn.base=""
by * read
access to *
by self write
by dn="cn=admin,dc=ldap,dc=localdomain" write
by * read
database bdb
suffix "dc=ldap,dc=localdomain"
rootdn "cn=admin,dc=pupkin,dc=ldap,dc=localdomain"
rootpw {SSHA}бла-бла-зашифрованый пароль
directory /var/lib/ldap/ldap.localdomain
# Indices to maintain for this database
index objectClass eq,pres
index ou,cn,sn,mail,surname,givenname eq,pres,sub
index uidNumber,gidNumber,memberUid eq,pres
index gidNumber eq,pres
index loginShell eq,pres
# I also added this line to stop warning in syslog ..
index uniqueMember eq,pres
## required to support pdb_getsampwnam
index uid pres,sub,eq
## required to support pdb_getsambapwrid()
index displayName pres,sub,eq
# These attributes don't exist in this database ..
#index nisMapName,nisMapEntry eq,pres,sub
index sambaSID eq
index sambaPrimaryGroupSID eq
index sambaDomainName eq
index default sub
Вот конфиг инициализации главного дерева init.ldif
dn: dc=ldap,dc=localdomain
objectClass: dcObject
objectclass: organization
objectClass: top
o: LDAP-SERVER fov Call Center
dc: ldap
description: My LDAP Root
dn: cn=admin,dc=ldap,dc=localdomain
#objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
Вот конфиг инициализации груп groups.ldif
root@ldap:/etc/ldap/schema# cat groups.ldif
dn: cn=root,dc=ldap,dc=localdomain
objectClass: posixGroup
gidNumber: 0
cn: root
memberUid: root
description: Grupo root
dn: cn=sudo,dc=ldap,dc=localdomain
objectClass: posixGroup
gidNumber: 27
cn: users
memberUid: fov
description: Grup Admin
dn: cn=users,dc=ldap,dc=localdomain
objectClass: posixGroup
gidNumber: 100
cn: users
memberUid: user,test
Вот конфиг инициализации юзеров users.ldif
root@ldap:/etc/ldap/schema# cat users.ldif
dn: uid=fov,cn=sudo,dc=ldap,dc=localdomain
cn: fov
gecos: fov,,,
gidnumber: 1000
homedirectory: /home/fov
loginshell: /bin/bash
objectclass: account
objectclass: posixAccount
objectclass: top
objectclass: shadowAccount
shadowlastchange: 15235
shadowmax: 99999
shadowwarning: 7
uid: fov
uidnumber: 1000
userpassword: {MD5}бла-бла-зашифрованый пароль
dn: uid=root,cn=root,dc=ldap,dc=localdomain
cn: root
gecos: root
gidnumber: 0
homedirectory: /root
loginshell: /bin/bash
objectclass: account
objectclass: posixAccount
objectclass: top
objectclass: shadowAccount
shadowlastchange: 15235
shadowmax: 99999
shadowwarning: 7
uid: root
uidnumber: 0
userpassword: {MD5}бла-бла-зашифрованый пароль
dn: uid=test,cn=users,dc=ldap,dc=localdomain
cn: test
gidnumber: 998
homedirectory: /home/test
loginshell: /bin/sh
objectclass: account
objectclass: posixAccount
objectclass: top
objectclass: shadowAccount
shadowlastchange: 15235
uid: test
uidnumber: 998
userpassword: {MD5}CY9rzUYh03PK3k6DJie09g== (пароль test)
dn: uid=user,cn=users,dc=ldap,dc=localdomain
cn: user
gidnumber: 999
homedirectory: /user
loginshell: /bin/bash
objectclass: account
objectclass: posixAccount
objectclass: top
objectclass: shadowAccount
shadowlastchange: 15235
uid: user
uidnumber: 999
userpassword: {MD5}7hHLsZBS5AsHqsDKBgwj7g== (пароль user)
В итоге имеем такое дерево:
dc=ldap,dc=localdomain
|
___________________________________________
| | |
cn=root cn=sudo cn=users
| | |
_________________________________________________________
| | | |
uid=root uid=fov(мой юзер) uid=test uid=user
Сам slapd стартует это видно:
root@ldap:/etc/ldap/schema# netstat -aen|grep 389
tcp 0 0 127.0.0.1:389 0.0.0.0:* LISTEN 0 35591
tcp 0 0 192.168.15.64:389 0.0.0.0:* LISTEN 0 35585
tcp 0 0 192.168.15.64:389 192.168.15.104:36362 ESTABLISHED 106 35606
root@ldap:/etc/ldap/schema# netstat -aep|grep slapd
tcp 0 0 127.0.0.1:ldap *:* LISTEN root 35591 10890/slapd
tcp 0 0 ldap.localdomain:ldap *:* LISTEN root 35585 10890/slapd
tcp 0 0 ldap.localdomain:ldap 192.168.15.104:36362 ESTABLISHED openldap 35606 10890/slapd
root@ldap:/etc/ldap/schema# ps ax|grep slapd
10890 ? Ssl 0:00 /usr/sbin/slapd -h ldap://ldap.localdomain/ ldap://localhost/ -g openldap -u openldap -F /etc/ldap/slapd.d
Вот логи при старте:
root@ldap:/etc/ldap/schema# service slapd start
Starting OpenLDAP: slapd.
root@ldap:/etc/ldap/schema# tail -f /var/log/syslog
Sep 19 14:05:31 ldap slapd[10996]: @(#) $OpenLDAP: slapd 2.4.23 (Jun 16 2011 02:53:39) $#012#011buildd@murphy:/build/buildd-openldap_2.4.23-7.2-i386-Y1mwvF/openldap-2.4.23/debian/build/servers/slapd
Sep 19 14:05:31 ldap slapd[10997]: slapd starting
Теперь по клиенту.
Установил nss_ldap и pam_ldap.
Вот соответсвенно их конфиги:
[root@ts104 etc]# cat /etc/nss_ldap.conf|grep -v ^#
base dc=ldap,dc=localdoamin
uri ldap://ldap.localdomain/
ldap_version 3
rootbinddn cn=admin,dc=ldap,dc=localdomain
ssl no
tls_cacertdir /etc/openldap/cacerts
[root@ts104 etc]# cat /etc/pam_ldap.conf|grep -v ^#
base dc=ldap,dc=localdoamin
uri ldap://ldap.localdomain/
ldap_version 3
rootbinddn cn=admin,dc=ldap,dc=localdomain
ssl no
tls_cacertdir /etc/openldap/cacerts
Вот конфиг ldap клиента
[root@ts104 etc]# cat /etc/openldap/ldap.conf|grep -v ^#
host 192.168.15.64 (IP сервера, можно и по имени DNS работает)
base dc=ldap,dc=localdomain
uri ldap://ldap.localdomain
ssl no
pam_password md5
URI ldap://ldap.localdomain/
BASE dc=ldap,dc=localdoamin
TLS_CACERTDIR /etc/openldap/cacerts
Вот еще конфиг авторизации:
[root@ts104 etc]# cat /etc/pam.d/system-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth sufficient pam_sss.so use_first_pass
auth required pam_deny.so
account required pam_unix.so broken_shadow
account sufficient pam_succeed_if.so uid < 500 quiet
account [default=bad success=ok user_unknown=ignore] pam_sss.so
account required pam_permit.so
password requisite pam_cracklib.so try_first_pass retry=3 type=
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok
password sufficient pam_sss.so use_authtok
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
-session optional pam_systemd.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session optional pam_sss.so
Конфиг nsswitch.conf
[root@ts104 etc]# cat /etc/nsswitch.conf|grep -v ^#
passwd: files sss
shadow: files sss
group: files sss
hosts: files dns
bootparams: nisplus [NOTFOUND=return] files
ethers: files
netmasks: files
networks: files
protocols: files
rpc: files
services: files
netgroup: files sss
publickey: nisplus
automount: files ldap
aliases: files nisplus
На клиенте тоже есть пользователь user, но с паролем 'zxcqwe', а не 'user', что легко можно было проверить какую авторизацию проганяет клиент.
И вот попытка входа
[fov@oleg-pc ~]$ ssh user@client
user@client's password: ввожу 'user'
Permission denied, please try again.
user@client's password: ввожу 'zxcqwe'
Last login: Mon Sep 19 12:14:57 2011 from 192.168.15.35
[user@ts104 ~]$
Тоисть клиент пропускает локальную авторизацию
А вот попытка авторизации пользователя test котрый есть только на сервере
[fov@oleg-pc ~]$ ssh test@client
test@client's password: ввожу 'test'
Permission denied, please try again.
test@client's password:
Вот логи авторизации на клиенте для пользователя user с паролем 'user':
[root@ts104 fov]# tail -f /var/log/secure
Sep 19 13:21:56 ts104 sshd[2242]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.15.35 user=user
Sep 19 13:21:56 ts104 sshd[2242]: pam_sss(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.15.35 user=user
Sep 19 13:21:56 ts104 sshd[2242]: pam_sss(sshd:auth): received for user user: 10 (User not known to the underlying authentication module)
Sep 19 13:21:57 ts104 sshd[2242]: Failed password for user from 192.168.15.35 port 50367 ssh2
Вот логи авторизации на клиенте для пользователя user с паролем 'zxcqwe':
[root@ts104 fov]# tail -f /var/log/secure
Sep 19 13:22:18 ts104 sshd[2242]: pam_sss(sshd:account): Access denied for user user: 10 (User not known to the underlying authentication module)
Sep 19 13:22:18 ts104 sshd[2242]: Accepted password for user from 192.168.15.35 port 50367 ssh2
Sep 19 13:22:18 ts104 sshd[2242]: pam_unix(sshd:session): session opened for user user by (uid=0)
Вот логи авторизации на клиенте для пользователя test с паролем 'test':
[root@ts104 fov]# tail -f /var/log/secure
Sep 19 13:22:40 ts104 sshd[2263]: Invalid user test from 192.168.15.35
Sep 19 13:22:40 ts104 sshd[2264]: input_userauth_request: invalid user test
Sep 19 13:22:42 ts104 sshd[2263]: pam_unix(sshd:auth): check pass; user unknown
Sep 19 13:22:42 ts104 sshd[2263]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.15.35
Sep 19 13:22:42 ts104 sshd[2263]: pam_succeed_if(sshd:auth): error retrieving information about user test
Sep 19 13:22:44 ts104 sshd[2263]: Failed password for invalid user test from 192.168.15.35 port 50414 ssh2
Может кто знает что сделал не так, либо лишнего либо вообще не сделал, помогите пожайлуста.
Если кому будет удобно пишите в АСЬКУ 463667979 либо СКАЙП franchuk82 (зовут Олег).
Зарание благодарен!