OpenLDAP安装与配置
安装OpenLDAP服务器之前需要安装数据库BerkeleyDB,安装完OpenLDAP之后可以安装phpLDAPadmin(一个基于Web的LDAP管理工具用于管理LDAP服务器的各个方面)。
安装包:
数据库BerkeleyDB:BerkeleyDB- 6.0.30
下载地址:http://www.linuxfromscratch.org/blfs/view/svn/server/db.html
openldap: 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,
# tar zxvf db-6.0.30.tar.gz
# 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,安装步骤如下
#tar zxvf openldap-2.4.39.tgz
#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 builddependencies
就可以进行下一步了,
#make depend
#make
#make test
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就表示配置没有问题了。可能会提示test would succeed using the –uswitch,那只要在slaptest 后加 –u,就可以了。
启动执行命令:
#/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 –nameslapd.pid来查询。还可以找到你的slapd.pid,打开文件,里边的数字是一个进程号,你可以 # kill 进程号 来结束进程。
八、安装phpldapadmin
#apt-get install phpldapadmin
现在可以用浏览器进入到phpldapadmin界面管理服务器了。
192.168.1.112/phpldapadmin
九、配置phpldapadmin
编辑/etc/phpldapadmin/config.php,将下面这一行中基本DN换成自己定义的基本DN,如’dc=viatech,dc=com’。
$servers->setValue(‘server’,’base’,array(‘dc=example,dc=com’));
编辑/etc/phpldapamin/config.php,修改登录时绑定的DN为自己定义的DN,修改下面这一行的DN为’cn=admin,dc=viatech,dc=com’。
$servers->setValue(‘login’,’bind_id’,’cn=admin,dc=example,dc=com’);