openldap安装与配置

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’);

 

你可能感兴趣的:(openldap)