OpenLDAP服务器安装与配置(ubuntu12.04)
OpenLDAP安装与配置
安装OpenLDAP服务器之前需要安装数据库BerkeleyDB,安装完OpenLDAP之后可以安装phpLDAPadmin(一个基于Web的LDAP管理工具用于管理LDAP服务器的各个方面)。
安装包:
数据库BerkeleyDB:BerkeleyDB- 6.0.30
BerkeleyDB- 6.0.30下载地址:http://www.linuxfromscratch.org/blfs/view/svn/server/db.html
openldap: openldap-2.4.39
openldap-2.4.39下载地址:http://www.linuxfromscratch.org/blfs/view/svn/server/openldap.html
一、安装BerkeleyDB
我选用的数据库是BerkeleyDB- 6.0.30,在安装openldap之前需要把BDB
先装好。安装步骤如下:
1) 首先把下载好的文件db-6.0.30.tar解压,生成文件夹db-6.0.30,
# cd db-6.0.30/build_unix
# ../dist/configure
# make
# make install
这个过程一般没什么问题,默认安装到了/usr/local下,目录名是BerkeleyDB.6.0。
2) 接下来应该把BerkeleyDB.6.0下include和lib文件夹下的文件都考到usr文件夹下相应的include和lib文件下。也可以通过以下命令来实现
#cp /usr/local/ BerkeleyDB.6.0/include/* /usr/include
#cp /usr/local/ BerkeleyDB.6.0/lib/* /usr/lib
二、安装OpenLDAP
同样,先解压,我用的是openldap-2.4.39,安装步骤如下
#cd openldap-2.4.39
#env CPPFLAGS=”-I/usr/local/ BerkeleyDB.6.0/include” LDFLAGS=”-L/usr/local/ BerkeleyDB.6.0/lib” ./configure --prefix=/usr/local/openldap
出现 Making servers/slapd/backends.c
Add config…
Add ldif…
Add monitor…
Add bdb…
Add hdb…
Add relay…
Make servers/slapd/overlays/statover.c
Add syncprov…
Please run “make depend” to build dependencies
就可以进行下一步了,
#make depend
#make
#make test
这个过程时间有点长(但一定要做),我大概要用一个半小时,耐心等待。如果执行通过就可以开始安装了。
# make install
到此,安装完成。
三、配置openldap
安装完成后,需要进行配置,
# /usr/local/openldap/etc/openldap/slapd.conf
打开slapd.conf后,
1)需要把schema文件中的.schema文件包含进去,在
include/usr/local/openldap/etc/openldap/schema/core.schema后加入其它schema文件。
如:
include/usr/local/openldap/etc/openldap/schema/core.schema
include/usr/local/openldap/etc/openldap/schema/corba.schema
include/usr/local/openldap/etc/openldap/schema/cosine.schema
include/usr/local/openldap/etc/openldap/schema/inetorgperson.schema
……
……
2)在#BDB database definitions下配置bdb,
database bdb
suffix "dc=my-domain,dc=com"
rootdn "cn=Manager,dc= my-domain,dc=com"
# Cleartext passwords, especially for the rootdn, should
# be avoid. See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
rootpw secret
# The database directory MUST exist prior to running slapd AND
# should only be accessible by the slapd and slap tools.
# Mode 700 recommended.
directory /usr/local/openldap/var/openldap-data
# Indices to maintain
index objectClass eq
把suffix "dc=my-domain,dc=com" 中my-domain换成自己需要的(例:duncy)。
rootdn “cn=Manager,dc=my-domain,dc=com”也换掉,可以如下
rootdn “cn=root,dc=duncy,dc=com”
rootpw的密码最好用密文形式的,密文形式的密文可以用命令slappasswd来生成。
# /usr/local/openldap/sbin/slappasswd
New password:
Re-enter new password:
{SSHA}BsaRKs65dsw5dhesleHEHEWOE1843decJ
密文就是:{SSHA}BsaRKs65dsw5dhesleHEHEWOE1843decJ
3)可以在配置文件中加入日志的级别,方便在有问题时知道问题所在,如下:
#added logging parameters
Loglevel 256
说明:loglevel后面的数字是日志的级别,其它的日志级别如下:
-1 记录所有的信息
0 不记录debug
1 跟踪功能调用的信息
2 包处理的debug信息
4 丰富的debug信息
8 连接管理信息
16 包的收发信息
32 搜索过滤的处理过程
64 配置文件的处理过程
128 访问控制列表处理过程
256 连接、操作及其结果的统计数据
512 向客户端返回的结果的统计信息
1024 与shell后端的通信信息
2048 显示记录条目的分析信息
4096 数据库缓存处理信息
8192 数据库索引
16384 从服务器数据同步资源消耗处理信息
四、配置ldap服务器
打开ldap.conf文件(和slapd.conf在同一个文件夹下),在#BASE dc=example,dc=com
下边输入BASE dc=example,dc=com,把example换成自己的公司名什么的。保存!
五、启动openldap服务器
打开终端,在启动slapd之前可以使用slaptest测试一下slapd.conf有没有语法错误(测试时最好进入到root模式,避免权限问题),slaptest在openldap下sbin目录下。
#slaptest
出现config file testing succeeed就表示配置没有问题了。
启动执行命令:
#/usr/local/openldap/libexec/slapd –d 256
出现如下命令行就表示启动成功了。
再打开一个终端,用以下命令查询服务器:
#ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts
如果命令执行成功,返回一些信息,则说明服务器正常运行了。如果启动不成功,它会提示一些出错信息,多数是slapd.conf配置出错。回头仔细核查一下配置文档。
六、向数据库添加数据
1,编写test.ldif文件
#sudo vi test.ldif
注意:(dn: 后必须有空格,每行末尾不能有空格)
dn: dc=duncy,dc=com #建立根
objectClass: dcObject
objectClass: organization
dc: duncy
o: duncy.com
description: d Corporation
dn: ou=People,dc=duncy,dc=com #添加一个组People
objectClass: organizationalUnit
objectClass: top
ou: People
dn: ou=Group,dc=duncy,dc=com #添加一个组Group
objectClass: top
objectClass: organizationalUnit
ou: Group
2,执行命令
# ldapadd -x -D "cn=root, dc=duncy,dc=com" –W -f test.ldif
3,查询数据是否添加成功
# ldapsearch –x –b “dc=duncy,dc=com”
如添加成功,会出现如下信息:
然后可以向数据库中添加用户信息ldif,格式参考上边test的写法。例:
user.ldif
dn: uid=test,ou=People,dc=duncy,dc=com
uid: test
ou: People
cn: test
sn: tset
userPassword: 123456
uidnumber: 100
gidnumber: 100
homeDirectory: /home/test
loginShell: /bin/bash
objectClass: top
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
编完以后保存,然后通过ldapadd命令加入数据库就可以了。如要删除结点,则可以使用ldapdelete命令。
#Ldapdelete -x -D “cn=root,dc=duncy,dc=com” -W “uid=test,ou=People,dc=duncy,dc=com”
参数说明:
x
:指定使用简单授权
D
:指定
LDAP
的管理区
W:
提示输入管理密码
最后的内容是指定删除的用户信息
七、停止服务器
用Ctrl+c,或者杀死进程号,可以用 # find /usr –name slapd.pid来查询。还可以找到你的slapd.pid,打开文件,里边的数字是一个进程号,你可以 # kill 进程号来结束进程。
八、安装phpldapadmin
#apt-get install phpldapadmin
现在可以用浏览器进入到phpldapadmin界面管理服务器了。
192.168.1.112/phpldapadmin