ldap测试工具 linux,OpenLDAP在LINUX下的安装说明

OpenLDAP在LINUX下的安装说明                              张彦星

安装环境:

redhat9.0

安装所需软件(都是以源码的方式存在的)

openldap-2.1.29    hrrp://

Derkeley DB 4.2.52

安装步骤:

(确认是用root用户登录)

1、由于openldap需要Berkeley DB来存放数据,所以先安装Berkeley DB 4.2.52。

解压

#tar -zxvf  db-4.2.52.NC.tar.gz

解压完成后,会生成一个db-4.2.52.NC的目录,进入该目录下的build_unix目录,执行命令进行配置安装。

#../dist/configure  --prefix=/usr/local/BerkeleyDB (将Derkeley DB安装到/usr/local/DerkeleyDB目录下)。

#make

#make install

安装完成活,要把/usr/local/BerkeleyDB/lib的库路径加到/etc/ld.so.conf文件内,添加完成后执行一次ldconfig,使配置文件生效。

2、安装openLDAP

解压

#tar -zxvf openldap-2.1.29.tgz

解压后生成一个openldap-2.1.29目录,进入该目录执行以下命令进行配置安装。

#env CPPFLAGS="-I/usr/local/gdbm-1.8.3/include" LDFLAGS="-L/usr/local/gdbm-1.8.3/lib"

./configure --prefix=/usr/local/topldap --enable-ldbm  --enable-bdb=no

(注意以上的配置语句,要配置资料库的include和lib路径,否则在配置到资料库、相关内容时会提示Berkeley DB版本不兼容,

并中段配置。如果没有--enbale-ldbm=选项,在make test时会提示ldbm找不到)

#make depend

#make

#make test

在make test 的时候如果没有出现错误,就可以安装了,如果有什么错误,去看看以上内容,有没有全部都作。

开始安装

#make install

安装完成之后,在/usr/local/目录下将会出现openldap文件夹。

3、现在相关的软件已经安装完成了,现在可以进行配置了。

配置文件在软件的安装目录的etc/openldap下,主要的是slapd.comf和ldap.conf。在进行配置之前最好先将要配置的文件备份一份。

先配置slapd.conf文件。

在配置文件中添加:

include /usr/local/openldap/ete/openldap/schema/core.schema

include /usr/local/openldap/ete/openldap/schema/corba.schema

include /usr/local/openldap/ete/openldap/schema/cosine.schema

include /usr/local/openldap/ete/openldap/schema/inetorgperson.schema

include /usr/local/openldap/ete/openldap/schema/misc.schema

include /usr/local/openldap/ete/openldap/schema/openldap.schema

include /usr/local/openldap/ete/openldap/schema/nis.schema

include /usr/local/openldap/ete/openldap/schema/java.schema

(包含文件按一定顺序,因为文件里面的属性存在附属关系,如果顺序不对服务会出现问题)

在argsfile    /usr/local/openldap/var/slapd.args下面添加

loglevel 1

增加了日志功能,需修改syslog配置文件,在文件中增加一项:local4.* /var/log/ldap.log

日志的级别如下:

Debugging Levels Level Description

-1 enable all debugging

0 no debugging

1 trace function calls

2 debug packet handling

4 heavy trace debugging

8 connection management

16 print out packets sent and received

32 search filter processing

64 configuration file processing

128 access control list processing

256 stats log connections/operations/results

512 stats log entries sent

1024 print communication with shell backends

2048 print entry parsing debugging

默认的情况下是256

将文件中的

suffix        "dc=my-domain,dc=com"

rootdn        "cn=Manager,dc=my-domain,dc=com"

修改成自己的目录根,指定自己根的管理员。

rootdw 是管理员的密码,默认密码是secret,这里可以使用MD5加密。

现在已经能成功的启动服务了。但是没有对目录访问的权限进行设定:

access to attr=userPassword

by self write

by  anonymous auth

指的是:userPassword只能自己修改,有效验证用户查询,如果加上

by dn="cn=root,dc=it,dc=com"

那样cn=root,dc=it,dc=com也可以更改其他人的userPassword.

access to *

by self write

by self read

指的是所有的信息都可以自己查询,自己修改。

access to dn=".*,dc=it,dc=com"

by self write

by * read

允许用户访问所有没有被控制访问限制的信息。

具体详细用法请查看。

到现在openldap已经配置完成了,进入安装目录的libexec下,执行

#./sladp (注意是sladp,不是sldap)

如果没有提示什么出错信息,直接返回shell状态,就说明服务器正常启动了,

你可以查询日志或用ps -aux查看。或用以下命令查询服务器。

执行下面的命令来查看一下服务是不是正常启动了启动。

#ldapsearch -x -b "dc=it,dc=com"(你在配置文件中定义的自己的根目录),如果反悔一些信息那就

是启动正常。

用下面的、命令、来查看一下389端口是不是已经被监听了

#netstat -an | grep 389

如果没有提示什么错误,但是服务也没有启动,就可以用

#./sladp -d 256

可以看到提示的什么信息,一般都是配置文件错误,根据错误信息好好查看一下配置文件。

一定要注意配置文件中的空格,该有的一定要有,有的时候看到整个配置文件没有什么错误,

可就事启动不了,有可能是有的地方前面没有加上空格。

配置ldap.conf文件。该文档相当简单,其实不和配置也能正常操作。

只要将BASE dc=it,dc=com 设置成为自己的目录起点

4、现在服务器已经正常运作了,可以录入信息了。信息的录入方法有三种,一种是手工录入,一种是.ldif文件格式录入,一种是脚本

自动录入。我们先从最基础的手工录入开始介绍,了解录入信息的格式。明白了手工录入的格式,其它两种方式都很容易明白。

信息录入用到ldapadd这个程序,他存在于安装目录下的bin中,具体用法如下:

第一步要建立DN:

#ldapadd -x -D  'cn=root,dc=it,dc=com' -W   (-x 表示简单验证,-D表示指定目录,-W表示弹出密码输入提示)

Enter LDAP Password              (提示输入管理员密码,在sladp.conf中已经配置的那个密码)

dn: dc=it,dc=com

objectClass: dcObject

objectClass: organization

dc:it

o:Corportion

description:d Corporation

(注意:每行后面一定不要有空格)

第二步是建立接点:

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

dn:uid=zyx2,dc=it,dc=com

objectClass:person

objectClass:organizationalPerson

objectClass:inetOrgPerson

uid:zyx2

cn:zyx2

sn:zyx2

mail:zyx@zyx.com

userPassword:zyx

telephoneNumber:13913991399

homePhone:01087788888.

输入完所有的信息后,安Ctrl+d结束存盘。如果出现错误信息,请查一下对象类和属性的对应关系有没有输入错误。

这里面最容易出错的地方是对象类和属性的对应关系出错,对象类和属性是在schema文档中定义的。它们之间的关系是这样的,

对象类中有些属性是必选的,有些属性是可选的。录入信息的属性必须在对象类中有定义才能用。

比如:inetOrgPerson模式包括以下信息:

departmentNumber

employeeType

givenName

audio

businessCategory

carLicense

displayName

emlpyeeNumber

homePhone

homePostalAddress

manager

photo

roomNumber

等等,详见inetorgperson.schema。

schema是openldap中的关键,一定要好好查看安装目录下的/etc/schema中的文件。掌握schema的格式和常用属性所对应的类。

介绍完了手工录入的方法,现在介绍第二种方法,用.ldif文件格式录入。用文字编辑工具写好.ldif文件。

下面是一个完成的test.ldif文件。

dn: dc=it,dc=com

dc: it

description: d Corporation

objectClass: dcObject

objectClass: organization

o: Corporation

dn: uid=zyx, dc=it,dc=com

telephoneNumber: 13810246737

mail: starxing@starxing.com

userPassword:: sssssssss

uid: zyx

objectClass: person

objectClass: organizationalPerson

objectClass: inetOrgPerson

homePhone: 12345678901

sn: zyx

cn: zyx

dn: ou=people, dc=it,dc=com

userPassword:: c3Rhcnhpbmc=

ou: people

description: User Info

objectClass: top

objectClass: organizationalUnit

dn: uid=1,ou=people, dc=it,dc=com

telephoneNumber: 13800000414

userPassword:: sssssssss

uid: 1

jpegPhoto:: MTIzNDU2Nzg5MA==

objectClass: top

objectClass: person

objectClass: organizationalPerson

objectClass: inetOrgPerson

sn: hhh

cn: hhh

dn: cn=root, dc=it,dc=com

mail: root@root.com

userPassword:: secret

objectClass: top

objectClass: person

objectClass: organizationalPerson

objectClass: inetOrgPerson

sn: root

cn: root

dn: uid=3,ou=people, dc=it,dc=com

telephoneNumber: 13810241111

mail: ddd@dd.com

userPassword:: sssssssss

uid: 3

objectClass: person

objectClass: organizationalPerson

objectClass: inetOrgPerson

sn: sss

cn: sss

dn: uid=qq, dc=it,dc=com

telephoneNumber: 65498732102

mail: qq@qq.com

userPassword::sssssssss

uid: qq

objectClass: person

objectClass: organizationalPerson

objectClass: inetOrgPerson

sn: qq

cn: qq

dn: uid=zyx,ou=people, dc=it,dc=com

telephoneNumber: 13810246737

mail: starxing@starxing.com

userPassword:: sssssssss

uid: zyx

objectClass: person

objectClass: organizationalPerson

objectClass: inetOrgPerson

homePhone: 12345678901

sn: 张彦星

cn: zyx

dn: ou=managers, dc=it,dc=com

userPassword:: sssssssss

ou: managers

description: mangers Info

objectClass: top

objectClass: organizationalUnit

dn: cn=starxing,ou=managers, dc=it,dc=com

mail: zyx1220@yahoo.com.cn

userPassword:: sssssssss

description: mananger for people

objectClass: person

objectClass: organizationalPerson

objectClass: top

objectClass: inetOrgPerson

sn: staring

cn: starxing

dn: ou=people,ou=managers, dc=it,dc=com

userPassword:: sssssssss

ou: people

objectClass: top

objectClass: organizationalUnit

description: User Info

dn: uid=1,ou=people,ou=managers, dc=it,dc=com

telephoneNumber: 13800000414

uid: 1

userPassword:: sssssssss

objectClass: top

objectClass: person

objectClass: organizationalPerson

objectClass: inetOrgPerson

jpegPhoto:: MTIzNDU2Nzg5MA==

sn: hhh

cn: hhh

dn: uid=3,ou=people,ou=managers, dc=it,dc=com

telephoneNumber: 13810241111

mail: ddd@dd.com

uid: 3

userPassword:: sssssssss

objectClass: person

objectClass: organizationalPerson

objectClass: inetOrgPerson

sn: ssssss

cn: ssssss

dn: uid=zyx,ou=people,ou=managers, dc=it,dc=com

telephoneNumber: 13810246737

mail: starxing@starxing.com

uid: zyx

userPassword:: sssssssss

objectClass: person

objectClass: organizationalPerson

objectClass: inetOrgPerson

homePhone: 12345678901

sn: zyx

cn: zyx

再次提醒一下,每行的最后不要有空格,并且不能存在同一个DN的记录,执行以下命令将test.ldif文件中的内容加载到

openldap中。

#ldapadd -x -D "cn=root,dc=it,dc=com" -W -f /root/test.ldif   (-f 表示用文件录入信息, /root/test.ldif指的是文件的存在地方)

第三种是用脚本录入方式,需要自己编写脚本。也可以使用现有的工具,比如:phpldapadmin。

下面介绍一下openldap的常用命令。

1 ldapsearch

查询本人记录

ldapsearch -x -D 'cn=root,dc=it,dc=com' -W -b 'uid=zyx,dc=it,dc=com'

查询一个ou记录(包含成员记录)

ldapsearch -x -D 'cn=root,dc=it,dc=com' -W -b 'ou=people,dc=it,dc=com'

2 ldapdelete

#ldapdelete -x -D 'cn=root,dc=it,dc=com' -W 'uid=zyx,dc=it,dc=com'

这样就可以删除'uid=zyx,dc=it,dc=com'记录了,应该注意一点,如果o或ou中有成员是不能删除的。

3 ldappasswd

#ldappasswd -x -D 'cm=root,dc=it,dc=com' -W 'uid=zyx,dc=it,dc=com' -S

New password:

Re-enter new password:

Enter LDAP Password:

就可以更改密码了,如果原来记录中没有密码,将会自动生成一个userPassword。

4  ldapmodify

#ldapmodify -x -D "cn=root,dc=it,dc=com" -W -f modify.ldif

将modify.ldif中的记录更新原有的记录。

启用sasl验证

前提是你在系统中安装了sasl认证库,并在编译openldap时支持它,默认就支持了。到下载。

安装好之后,需要在sasl中建立相应的帐号,用以下命令可完成。

# saslpasswd2 -c test

接着配置slapd.conf文件,加入以下内容。

sasl-regexp

uid=(.*),cn=.*,cn=auth

uid=$1,dc=it,dc=com

ok,重启服务器使配置文件生效。这个配置是最大权限的配置,如果要细化请查阅相关文档。

用以下命令测试。

# ldapsearch -U qq -b 'uid=qq,dc=it,dc=com' -D 'dc=it,dc=com' -Y DIGEST-MD5 采用digest-md5验证

提示密码,输入saslpasswd2的密码。

参考网站

http:///doc/admin22/

阅读(9701) | 评论(0) | 转发(1) |

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值