OpenLDAP安装和配置

构建, 安装和配置OpenLDAP

本文以OpenLDAP 2.4.25为例,OS为REHL 5.
1. 从 http://www.openldap.org/software/download/下载openLDAP,这里是openldap-2.4.25.tgz。
2. 解压缩文件。
tar zxvf openldap-2.4.25.tgz
cd openldap-2.4.25

3. 构建和安装openldap

./configure

: 这里所使用的安装包是源代码,因此需要进行编译后再安装。configure检查BerkeleyDB的版本. OpenLDAP 2.4及以上版本所支持的BDB版本应高于4.4. 参见 http://www.openldap.org/doc/admin24/appendix-recommended-versions.html. 如果已经安装的BDB版本不支持,我们需要安装BerkeleyDB。参见"安装Berkeley DB". 在安装OpenLDAP时,已存在的BDB版本为4.3, 因此我重新安装了BDB.

export CPPFLAGS="-I/usr/local/db4/include"
export LDFLAGS="-L/usr/local/db4/lib -R/usr/local/db4/lib"
export LD_LIBRARY_PATH=/opt/db-4.7.25/build_unix/.libs
./configure
make
make install
4. 编辑slapd的配置文件

编辑文件slapd.conf (通常位于目录 /usr/local/etc/openldap/),定义BDB,LDAP目录项后缀,以及rootdn和rootpw. 示例如下:

database bdb

suffix "dc=SMRTE,dc=HPSEL"

rootdn "uid=Admin,cn=Manager,dc=SMRTE,dc=HPSEL"

rootpw secret

directory /usr/local/var/openldap-data

: 访问LDAP服务器是通过root和rootpw绑定LDAP服务器来实现的。rootdn这个目录项只是为了访问LDAP而定义的,他不是必须出现在LDAP的目录树中。对于 rootpw, 可以使用名录"slappasswd -s secret" 来生成密码的哈希值,使用密码哈希值的rootpw line行如下:
rootpw {SSHA}ZKKuqbEKJfKSXhUbHG3fG8MDn9j1v4QN

5. 启动slapd

sudo /usr/local/libexec/slapd (我当时登录的用户不是root,因此使用了sudo命令)

为了检查LDAP服务器是否已经正常启动以及配置是否正确,可以运行位于/usr/local/bin/的命令 ldapsearch:
ldapsearch -x -b -s base '(objectclass=*)' namingContexts

正确的返回结果如下:

dn:

namingContexts: dc=example,dc=com
6. 在LDAP目录添加目录项

1) 首先创建一个LDIF文件, 包含要添加的目录项.

dn: dc=SMRTE,dc=HPSEL

description: create a open ldap
objectClass: dcObject
objectClass: organization
o: HPSEL
dc: SMRTE

dn: cn=falcon,dc=SMRTE,dc=HPSEL
objectClass: person
userPassword:secret
cn:falcon
sn:falcon

dn: cn=alanliu,dc=SMRTE,dc=HPSEL
objectClass: person
userPassword:secret
cn:alanliu
sn:alanliu

2) 然后运行命令ldapadd添加目录项.

ldapadd -x -D "uid=Admin,cn=Manager,dc=SMRTE,dc=HPSEL" -W -f sel.ldif

3) 最后,运行ldapsearch验证是否添加成功。
ldapsearch -x -b 'dc=SMRTE,dc=HPSEL' '(objectclass=*)'

安装Berkeley DB:

cd /opt
wget http://download.oracle.com/berkeley-db/db-4.7.25.tar.gz
: 在企业intranet, 通过代理服务器访问互联网. 要使用wget, 我们要修改文件/etc/wgetrc. 在此文件中,我们添加以下行:
http_proxy = http://xx.xx.xx.com:8080/
这样,wget每次通过代理设置来访问internet。
tar zxvf db-4.7.25.tar.gz
cd db-4.7.25
: 推荐为BerkeyleyDB打patch,以保证其稳定性。
cd build_unix/
../dist/configure --prefix=/usr/local/db4
make
make install

在OpenLDAP中添加自定义属性

在某些应用场景中,需要定义自定义属性,例如 'smprofile'。

1. 一个LDAP属性可以包含在一个或多个objectClass. 因此,我们也需要定义一个objectClass. 新增的属性和objectclass可以添加到已有的OpenLDAP schema或保存在一个新的 schema文件. 以下示例中,新属性'smprofile' 和objectClass 'ourObject'定义在文件sel.schema中:

attributetype ( 1.3.6.1.4.1.6863.2.3.107 NAME 'smprofile'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.44{200} )
1.3.6.1.4.1.6863.2.3.107 是smprofile这个属性的OID,唯一标识,IANA为OID定义了一个范围,企业范围内为企业使用,以保证唯一性。 SYNTAX 1.3.6.1.4.1.1466.115.121.1.44{200} 定义了此属性直的合法字符以及最大长度。
objectclass ( 1.3.6.1.4.1.6863.2.4.57 NAME 'ourObject'
DESC 'A very useful object'
SUP person STRUCTURAL
MUST smprofile )
: 对于objectClass 'ourObject', 'person' 是他的parent objectClass. 它必须包含smprofile。

2. 修改sldap.conf(位于 /usr/local/etc/openldap/),包含新定义的schema文件sel.schema.

include /usr/local/etc/openldap/schema/sel.schema

3.终止并重启slapd。

4.编辑ldif文件sel.ldif,定义一个带有新属性的目录项,
dn: cn=alanliu1,dc=SMRTE,dc=HPSEL
objectClass: person
userPassword:secret
cn:alanliu1
sn:alanliu1
objectClass: ourObject
smprofile:ldap-ess
5.运行ldapadd添加目录项

ldapadd -x -D "uid=Admin,cn=Manager,dc=SMRTE,dc=HPSEL" -W -f sel.ldif

6.使用LDAP浏览器检查此新属性是否添加成功。

OpenLDAP的多值属性

如果LDAP属性的属性定义中没有包含'SINGLE-VALUE',则可以有多个值. 以'smprofile'为例,它即是多值属性。如果要添加多个值:

1.编辑如下LDIF文件:

dn: cn=alanliu1,dc=SMRTE,dc=HPSEL
changetype:modify
add:smprofile
smprofile:ldap-essmmm

2.运行ldapmodify修改目录项.

ldapmodify -x -D "uid=Admin,cn=Manager,dc=SMRTE,dc=HPSEL" -w secret -f sel.ldif
3.使用LDAP浏览器检查此新属性是否添加成功。

修改目录项的属性值

以上面添加的目录项alanliu1为例. 如果要把'smprofile'的值从'ldap-ess'改为'ldap-essnnn':
1.编辑以下LDIF文件:
dn: cn=alanliu1,dc=SMRTE,dc=HPSEL
changetype: modify
replace:smprofile
smprofile:ldap-essnnn
2.运行ldapmodify修改目录项.
ldapmodify -x -D "uid=Admin,cn=Manager,dc=SMRTE,dc=HPSEL" -w secret -f sel.ldif
3.使用LDAP浏览器检查此新属性是否修改成功。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值