Доброго всем времени суток.
Нужна помощь в насройке авторизации на 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.schemapidfile /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 Rootdn: 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 rootdn: cn=sudo,dc=ldap,dc=localdomain
objectClass: posixGroup
gidNumber: 27
cn: users
memberUid: fov
description: Grup Admindn: 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 35606root@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/slapdroot@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.soaccount 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.sopassword 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.sosession 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 (зовут Олег).Зарание благодарен!
Федора похоже пошла своим путем :)
Вот это было прочитано?
http://docs.fedoraproject.org/en-US/Fedora/14/html/Deploymen...
Либо не заморачиваться с этим SSS и сделать все по старинке, т.е. чтобы в конфигах nss и pam было явное указание ldap. Правда нужно понять как это в authconfig сделать...