openldap添加digest-md5认证问题

leuzz 2012-03-17 11:20:14
我的openldap服务器已经搭建起来了,但是现在只支持匿名登录,现在要加入sasl的digest-md5认证

slapd.conf文件配置:

database bdb
suffix "dc=it,dc=com"
rootdn "cn=root,dc=it,dc=com"

sasl-regexp
uid=(.*),cn=digest-md5,cn=auth
uid=$1,dc=it,dc=com


使用saslpasswd2 -c qq (设置密码:123) 密码被保存到/etc/sasldb2


ldap里面已经添加了用户qq的记录
linux:~ # ldapsearch -b "dc=it,dc=com" -x
# extended LDIF
#
# LDAPv3
# base <dc=it,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# it.com
dn: dc=it,dc=com
objectClass: dcObject
objectClass: organization
dc: it
o: Corporation
description: d Corporation

# qq, it.com
dn: uid=qq,dc=it,dc=com
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
uid: qq
cn: qq
sn: qq
telephoneNumber: 138888888
userPassword:: e1NTSEF9V0I4cnRjTUVlK2d5Q09tQktERUNaQVB5NDQyMW5aT0k=


使用md5方式时
linux:~ # ldapsearch -D "uid=qq,dc=it,dc=com" -Y digest-md5 -U qq
(输入密码123)
提示:ldap_sasl_interactive_bind_s: Invalid credentials (49)
additional info: SASL(-13): user not found: no secret in database

用以下命令发现已经保存有qq的密码,但是还是不行
linux:~ # sasldblistusers2
mike@linux: userPassword
qq@linux: userPassword
root@linux: userPassword
mike@linux: cmusaslsecretOTP
qq@linux: cmusaslsecretOTP
root@linux: cmusaslsecretOTP

希望有用过这个功能的帮忙分析一下
...全文
436 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
巫师 2012-03-22
  • 打赏
  • 举报
回复
使用OpenLDAP进行Samba用户和系统用户的身份验证过程 - -
Tag: LDAP,samba,验证

1 安装OpenLDAP

我们的系统环境是CentOS4.0,系统安装完成后如果没有安装OpenLDAP,可以在安装光盘中找到相关的RPM包;OpenLDAP包括了如下4RPM包;

openldap-2.2.13-2.i386.rpm

openldap-servers-2.2.13-2.i386.rpm

openldap-clients-2.2.13-2.i386.rpm

openldap-devel-2.2.13-2.i386.rpm

注意:openldap-2.2.13-2.i386.rpm一定先安装,否则在安装server和Client包时会报错;



2 安装管理工具:

smbldap-tools-0.9.1-1.noarch.rpm

smbldap-installer-1.2.1.tgz

以上文件可以在http://samba.IDEALX.org/.这里下载

先解压smbldap-installer-1.2.1.tgz

tar -zxvf smbldap-installer-1.2.1.tgz

进入smbldap-installer/rpms目录

安装所有的rpm包,可能有些包安装不成功,可以先将能安装的全部安装;

在安装smbldap-tools-0.9.1-1.noarch.rpm

rpm –ivh smbldap-tools-0.9.1-1.noarch.rpm

完成再安装smbldap-installer/rpms目录下安装未成功的rpm包。

进入smbldap-installer目录下执行smb-ldap.pl完成系统默认设置。

./ smb-ldap.pl

根据提示输入自己的网络信息往下执行既可。

我采用了http://www.idealx.org/prj/samba/smbldap-howto.fr.html中的ldif文件的例子。

dc=yvan_ldap,dc=ORG

|

`--- ou=Users : 存储用户信息

|

`--- ou=Computers :存储计算机信息

|

`--- ou=Groups :系统组信息

|

`--- ou=DSA



3 配置

入到/etc/openldap目录下

cd /etc/openldap

3.1 LDAP服务器端的配置

vi 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/samba.schema

略…………

以上include 的文件在/etc/openldap/schema目录下;

注意:/etc/openldap/schema/samba.schema本来是不存在的,我们为了完成LDAP与samba用户的验证;可在samba源码目录中的/usr/share/doc/samba-xx/LDAP/路径中找到该文件;把它拷贝到openldap的schema目录;

access to attrs=userPassword,sambaLMPassword,sambaNTPassword

by self write

by anonymous auth

by * none

access to *

by * read

…………

database bdb

suffix "dc= yvan_ldap,dc=com"

rootdn "cn=root,dc= yvan_ldap,dc=com"

略…………

rootpw {SSHA}MjvfmavWounJXLvLuZakIAc/WEyiinGh

上述以 yvan_ldap.com 范例 suffix "dc= yvan_ldap,dc=com" 管理者為 root rootdn "cn=root,dc=yvan_ldap,dc=com" ;使用管理者密碼 rootpw {SSHA}MjvfmavWounJXLvLuZakIAc/WEyiinGh

管理者密碼的產生 #slappasswd
New password
Re-enter new password
{SSHA}MjvfmavWounJXLvLuZakIAc/WEyiinGh
接下來再拷到sldap.conf 的 rootpw 即可 。

启动服务器使配置生效

Service ldap start

测试服务器

ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts

如果命令执行成功,返回一些信息,则说明服务器正常运行了。如果启动不成功,它会提示一些出错信息,多数是slapd.conf配置出错。仔细核查一下配置文档再重启服务器再次测试;

3.2 LDAP客户端的配置

客户端的配置文档是ldap.conf,配置如下内容:

HOST 127.0.0.1 //服务器的地址,我们用的是本机;

BASE dc=yvan_ldap,dc=com //在服务器的slapd.conf 中的suffix



3.3 Samba服务器的配置

修改samba配置文件

vi /etc/samba/smb.conf

|#======================= Global Settings =============================

[global]

workgroup = YVAN_LDAP

netbios name = YVAN_SERVER

server string = YVAN_LDAP Server

…………

min passwd length = 5

obey pam restrictions = No

ldap passwd sync = Yes

81| time server = Yes

log level = 0

syslog = 0

mangling method = hash2

dos charset = 850

unix charset = ISO8859-1

passwd program = /opt/IDEALX/sbin/smbldap-passwd -u %u



logon script = startup.bat



#Added by moquist

logon drive = F:

logon home =

passdb backend = ldapsam:ldap://127.0.0.1/

ldap admin dn = cn=Manager,dc=yvan_ldap,dc=com

ldap suffix = dc=yvan_ldap,dc=com

ldap group suffix = ou=Groups

ldap user suffix = ou=Users

ldap machine suffix = ou=Computers

ldap idmap suffix = ou=Users

#ldap ssl = start tls

ldap delete dn = Yes

…………

# use the smbldap-tools scripts

add user script = /opt/IDEALX/sbin/smbldap-useradd -m "%u"

#delete user script = /opt/IDEALX/sbin/smbldap-userdel "%u"

add machine script = /opt/IDEALX/sbin/smbldap-useradd -w "%u"

add group script = /opt/IDEALX/sbin/smbldap-groupadd -p "%g"

#delete group script = /opt/IDEALX/sbin/smbldap-groupdel "%g"

add user to group script = /opt/IDEALX/sbin/smbldap-groupmod -m "%u" "%g"

delete user from group script = /opt/IDEALX/sbin/smbldap-groupmod -x "%u" "%g"

set primary group script = /opt/IDEALX/sbin/smbldap-usermod -g "%g" "%u"

…………

#============================ Share Definitions ==================

[homes]

comment = Home Directories

valid users = %S

browseable = yes

writable = yes

#create mask = 0664

#directory mask = 0775

# this prevents users from browsing other peoples' files

create mask = 0600

directory mask = 0700

…………

[profiles]

path = /opt/samba/profiles

writeable = yes

browseable = no

#create mode = 0644

#directory mode = 0755

# this prevents users from browsing other peoples' profiles

create mode = 0600

directory mode = 0700

…………

3.4 系统认证配置

/etc/pam.d/system-auth,配置如下

其中auth、account、password、session中都有ldap模块才能完成系统的认证。

auth required /lib/security/$ISA/pam_env.so

auth sufficient /lib/security/$ISA/pam_unix.so likeauth nullok

auth sufficient /lib/security/$ISA/pam_ldap.so use_first_pass

auth required /lib/security/$ISA/pam_deny.so



account required /lib/security/$ISA/pam_unix.so broken_shadow

account sufficient /lib/security/$ISA/pam_succeed_if.so uid < 100 quiet

account [default=bad success=ok user_unknown=ignore] /lib/security/$ISA/pam_ldap.so

account required /lib/security/$ISA/pam_permit.so



password requisite /lib/security/$ISA/pam_cracklib.so retry=3

password sufficient /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadow

password sufficient /lib/security/$ISA/pam_ldap.so use_authtok

password required /lib/security/$ISA/pam_deny.so



session required /lib/security/$ISA/pam_limits.so

session required /lib/security/$ISA/pam_unix.so

session optional /lib/security/$ISA/pam_ldap.so22



/etc/nssitch.conf配置如下

编辑/etc/nssitch.conf文件配置用户和组的认证采用LDAP方式;

# significative entries for /etc/nsswitch.conf using

# Samba and OpenLDAP

passwd: files ldap

shadow: files ldap

group: files ldap



/etc/ldap.conf配置:

编辑/etc/ldap.conf配置LDAP参数

# network or connect timeouts (see bind_timelimit).

host 127.0.0.1

……

# The distinguished name of the search base.

base dc=yvan_ldap,dc=com

……

#rootbinddn cn=manager,dc=example,dc=com

rootbinddn cn=nssldap,ou=DSA,dc=yvan_ldap,dc=com

……

nss_base_passwd ou=Users,dc=yvan_ldap,dc=com?one

nss_base_passwd ou=Computers,dc=yvan_ldap,dc=com?one

nss_base_shadow ou=Users,dc=yvan_ldap,dc=com?one

nss_base_group ou=Groups,dc=yvan_ldap,dc=com?one

……

#pam_sasl_mech DIGEST-MD5

ssl no

pam_password md5



dapadd -x -D 'cn=root,dc=it,dc=com' -W

ldapsearch -x -b 'uid=user1,dc=example,dc=com'



4 测试系统

/opt/IDEALX/sbin/smbldap-useradd –m –a –P test1 //添加用户

Changing password for test1

New password :

Retype new password :



用ssh测试登录

ssh test1@yvan_ldap_server

test1@ndd's password:

Last login: Wed Sep 21 16:19:17 2005 from ndd

系统验证成功;



在windows的网上邻居中找到yvan_ldap组,用test1用户等了yvan_ldap_server如果等了成功就说明samba验证成功。



5 遗留问题:

5.1 目前我在windows的机器始终无法加到samba域中,我用root用户添加时始终报错“改用户或者密码有误”

5.2 我每次添加的用户都到users下面去了无法对用户再进行分组管理。

6 参考资料:

http://www.idealx.org/prj/samba/smbldap-howto.fr.html

http://www.openldap.org

http://bbs.chinaunix.net/forum/viewtopic.php?t=308791
leuzz 2012-03-22
  • 打赏
  • 举报
回复
楼上的大哥,,山寨请注明出处 http://yvanzhu.bokee.com/2996812.html


问题最后自己解决了,但不是很满意,因为绑定验证的时候都没有使用到saslpasswd2 -c qq 设置的密码:123 而是使用ldap自己数据库的密码 还是不知道怎么去使用sasldb的密码 但是问题解决了 高兴

就把分给你吧

19,613

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧