LDAP安装配置(原创)

LDAP(轻量级目录访问服务),通过配置这个服务,我们也可以在linux下面使用目录的形式管理用户,就像windows下面的AD一样,方便我们管理。下面我们就一起来配置openldap服务。本文运行环境:CentOS 5。

软件需求:

db-4.7.25.tar.gz (http://www.oracle.com/technology/global/cn/software/products/berkeley-db/index.html)

openldap-stable-20090411.tgz (http://www.openldap.org/software/download/)

安装openldap

1、安装BerkeleyDB

# tar  zxvf  db-4.7.25.tar.gz

# cd  db-4.7.25/build_unix

# ../dist/configure

# make

# make  install

# vi  /etc/ld.so.conf

加入一下语句:

/usr/local/BerkeleyDB.4.7/lib

# /sbin/ldconfig

2、安装openldap

# tar  zxvf  openldap-stable-20090411.tgz

# cd  openldap-2.4.16

# ./configure  --prefix=/usr/local/openldap

# make depend

# make

# make install

3、检查安装结果

安装好后,系统会自动生成一些.schema文件,我们可以使用命令:

# ll  /usr/local/etc/openldap/schema/*.schema

-r--r--r-- 1 root root  6190 Jun 13 15:58 /usr/local/etc/openldap/schema/collective.schema

-r--r--r-- 1 root root  8063 Jun 13 15:58 /usr/local/etc/openldap/schema/corba.schema

-r--r--r-- 1 root root 20499 Jun 13 15:58 /usr/local/etc/openldap/schema/core.schema

-r--r--r-- 1 root root 73994 Jun 13 15:58 /usr/local/etc/openldap/schema/cosine.schema

-r--r--r-- 1 root root 10388 Jun 13 15:58 /usr/local/etc/openldap/schema/duaconf.schema

-r--r--r-- 1 root root  3289 Jun 13 15:58 /usr/local/etc/openldap/schema/dyngroup.schema

-r--r--r-- 1 root root  6267 Jun 13 15:58 /usr/local/etc/openldap/schema/inetorgperson.schema

-r--r--r-- 1 root root 13901 Jun 13 15:58 /usr/local/etc/openldap/schema/java.schema

-r--r--r-- 1 root root  2387 Jun 13 15:58 /usr/local/etc/openldap/schema/misc.schema

-r--r--r-- 1 root root  7640 Jun 13 15:58 /usr/local/etc/openldap/schema/nis.schema

-r--r--r-- 1 root root  1514 Jun 13 15:58 /usr/local/etc/openldap/schema/openldap.schema

-r--r--r-- 1 root root 20467 Jun 13 15:58 /usr/local/etc/openldap/schema/pmi.schema

-r--r--r-- 1 root root 19603 Jun 13 15:58 /usr/local/etc/openldap/schema/ppolicy.schema

配置openldap

openldap的配置文件主要为/usr/local/openldap/etc/openldap/slapd.conf
#此句是用来将目录所用到的schema文件包含进来;openldap一般默认带有几个schema,在我们的配置文件安装目录下的schema目录中存 放。本句中的core.schema是LDAP V3中必须的,它给出了LDAP V3中最基本的attribute和objects的定义。其它的还有:corba.schema、dyngroup.schema、 java.schema  nis.schema、openldap.schema、cosine.schema、 inetorgperson.schema、misc.schema、ppolicy.schema

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

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

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

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

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

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

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

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

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

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

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

#此句用来定义slapd进程运行时的pid文件,需要使用绝对路径。

pidfile         /usr/local/openldap/var/run/slapd.pid

#此句用来定义包含当前正在运行的slapd进程所用到的命令行参数的文件,需要使用绝对路径。

argsfile        /usr/local/openldap/var/run/slapd.args

#以下用来指定动态加载的后端模块。

# Load dynamic backend modules:

# modulepath    /usr/local/openldap/libexec/openldap

# moduleload    back_bdb.la

# moduleload    back_ldap.la

# moduleload    back_ldbm.la

# moduleload    back_passwd.la

# moduleload    back_shell.la

#以下是安全相关的声明语句。常用到的参数有五类,除了Require和security外还有Allow、Disallow和password-hash等。

Require参数用来使管理员指定访问目录时必须遵循的规则和条件;这种指定可以是全局的,也可以仅用来限制对某个后端数据库的访问限制。

security参数用来让管理员指定加强安全性的一般规则。

# Sample security restrictions

#       Require integrity protection (prevent hijacking)

#       Require 112-bit (3DES or better) encryption for updates

#       Require 63-bit encryption for simple bind

# security ssf=1 update_ssf=112 simple_bind=64

以下主要是用来定义访问控制列表。

# Sample access control policy:

#       Root DSE: allow anyone to read it

#       Subschema (sub)entry DSE: allow anyone to read it

#       Other DSEs:

#               Allow self write access

#               Allow authenticated users read access

#               Allow anonymous users to authenticate

#       Directives needed to implement policy:

# access to dn.base="" by * read

# access to dn.base="cn=Subschema" by * read

# access to *

#       by self write

#       by users read

#       by anonymous auth

#

# if no access controls are present, the default policy

# allows anyone and everyone to read anything but restricts

# updates to rootdn.  (e.g., "access to * by * read")

#

# rootdn can always read and write EVERYTHING!

#######################################################################

# BDB database definitions

#######################################################################

#定义使用的后端数据存储方式。其后可以跟的值有bdb、ldbm、passwd和shell。bdb指使用Berkley DB 4数据库。
database        bdb

#定义suffix,以下部分可以改作你的域名中相关的部分,如"dc=example,dc=com"。

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

#定义此目录的超级管理员帐号,类同于系统中的root。由于访问控制对此用户是不生效的,因此存在很大的安全隐患。建议安装配置及调试完成以后移除此帐号。

rootdn          "cn=Manager,dc=mydomain,dc=org"

定义超级管理员帐号的密码,这里使用的是明文存储(secret即是其密码)的方式。

rootpw          secret

这是极不安全的,建议使用加密方式存储,可以使用的加密方式有: CRYPT、MD5、SMD5、SHA和SSHA。产生加密密码散列的方法是使用slappasswd命令,用-h选项指明加密时使用的方式。示例如下:

# /usr/local/openldap/sbin/slappasswd -h {SSHA}

New password:

Re-enter new password:

{SSHA}k2H1GPM/95VfgsKg2jZv9hV+2GCH04hC

#这一句用来指定目录相关数据的存放位置。此目录最好只能由运行slapd进程的用户所有,推荐权限为700

directory       /usr/local/openldap/var/openldap-data

#此句用来指定slapd索引时用到的attribute,eq指索引时的匹配规则。主要是用来优化查询的。常用到的匹配规则有:approx(模糊匹配, approximate)、eq(精确匹配,equality)、pres(现值匹配,若某记录的此attribute没有值则不进行匹配, presence)和sub (子串匹配,substring)。

index   objectClass     eq

导入数据

先建立一个创建起始结点所用的ldif文件

#vi init.ldif

输入以下内容(可以根据自己的需要修改)

dn: dc=mydomain,dc=org   #定义根结点

dc: mydomain

objectClass: top

objectClass: domain

dn: ou=people,dc=mydomain,dc=org   #定义一个OU

ou: people

objectClass: organizationalUnit

注意:ldif文件中,每一行中冒号后有一个空格,行尾一定不能有空格。不同记录一定要有空行,且不能包含空格。切记!

导入数据时,可以离线也可以在线操作,这边先示范如何使用离线import命令导入到目录中(要先关闭slapd进程)

#kill -INT `cat /usr/local/openldap/var/run/slapd.pid`

# /usr/local/openldap/sbin/slapadd -v -l ./init.ldif

bdb_db_open: Warning - No DB_CONFIG file found in directory /var/openldap/data-3: (2)

Expect poor performance for suffix dc=mydomain,dc=org.

added: "dc=mydomain,dc=org" (00000001)

added: "ou=people,dc=mydomain,dc=org" (00000002)

命令中:

-v选项表示启用verbose模式,即输出执行中的具体信息;

-l表示后面附加ldif文件。

其它常用的选项还有:

-d  指定debug向日志文件输出信息,后面跟日志级别

-f  指定要读取的配置文件

启动服务进程

#/usr/local/openldap/libexec/slapd

在线导入具体的记录信息ldif文件

#vi users.ldif

dn: cn=Tom Black,ou=people,dc=mydomain,dc=org   #定义人员1

cn: Tom Black

sn: Black

mail: tom@126.com

telephoneNumber: 371-6338-3522

objectClass: inetOrgPerson

dn: cn=Jerry Smith,ou=people,dc=mydomain,dc=org   #定义人员2

cn: Jerry Smith

sn: Smith

mail: jerry@sina.com

telephoneNumber: 371-6338-3521

objectClass: inetOrgPerson

导入ldif文件

# /usr/local/openldap/bin/ldapmodify -D "cn=Manager,dc=mydomain,dc=org" -W -x -a -f users.ldif

Enter LDAP Password:

adding new entry "cn=Tom Black,ou=people,dc=mydomain,dc=org"

adding new entry "cn=Jerry Smith,ou=people,dc=mydomain,dc=org"

命令中:

-D选项表示指定绑定到LDAP的DN;

-W表示提示用户输入密码;

-x表示使用简单身份验正方式,默认的是使用sasl进行验正;

-a表示将文件中的条目添加至目录中,默认情况下,ldapmodify只修改现有记录;

-f用来指定ldif文件;

配置文件中的高级功能使用方法

开启日志功能

要启用日志功能,需要在编译时指定--enable-debug 选项,默认是允许的。要打开slapd的日志功能,需要在slapd.conf中的全局配置段添加loglevel指令,并后跟一个十进制数字表示的日志级别,如下所示:

# Added logging parameters

loglevel     256

其日志级别如下所示:

-1 记录所有的信息

0 不记录debug

1 跟踪功能调用的信息

2 包处理的debug信息

4 丰富的debug信息

8 连接管理信息

16 包的收发信息

32 搜索过滤的处理过程

64 配置文件的处理过程

128 访问控制列表处理过程

256 连接、操作及其结果的统计数据

512 向客户端返回的结果的统计信息

1024 与shell后端的通信信息

2048 显示记录条目的分析信息

4096 数据库缓存处理信息

8192 数据库索引

16384 从服务器数据同步资源消耗处理信息

若要记录所有的debug日志,可以使用LOG_LEVEL4 syslogd系统日志来记录,这需要在slapd.conf中添加如下语句实现:

local4.debug /var/log/slapd.log

为BDB后端数据库实例指定在内存中的缓存空间大小

在如下句子后

DBDirectory: /usr/local/openldap/var/openldap-data

后添加:

DBCachesize: 2000

常见报错

1、ldapadd: no DN specified

ldif文件格式不正确,可能还有其他原因。之前就可以,为了解决中文的问题,转换了下格式结果出现这个问题,修改回来后解决。

2、ldap_add: Already exists (68)

这个问题容易明白,在一个dn下存在一个与新加entry相同cn或ou的其他entry

3、ldap_add: Invalid syntax (21)

我这里是其中包含中文编码的问题

4、ldap_add: No such object (32)

如:adding new entry "ou=jisuanjikexue,o=cqupt,dc=com"

表示父节点没有创建,需要先添加dn: ou=cqupt,dc=com

5、ldap_bind: Invalid credentials (49)

ldapadd -x -D "cn=Manager,o=cqupt,dc=com" -W -f webex.ldif 我的正确命令应该是这个。如果错写成   ldapadd -x -D "cn=Manager,o=cqupt,dc=com" -W -f webex.ldif 则会报上面的错误。 另外一个情况是ldif文件中的内容有错误。

6、configure: error: BDB/HDB: BerkeleyDB version incompatible 

#export CPPFLAGS="-I/usr/local/BerkeleyDB.4.8/include" 

#export LDFLAGS="-L/usr/local/lib -L/usr/local/BerkeleyDB.4.8/lib -R/usr/local/BerkeleyDB.4.8/lib"  

#export LD_LIBRARY_PATH="/usr/local/BerkeleyDB.4.8/lib" 

环境变量问题:  

env CPPFLAGS="-I /usr/local/BerkeleyDB.4.8/include" LDFLAGS="-L /usr/local/BerkeleyDB.4.8/lib"  ./configure --prefix=/openldap_with_crypt  --enable-modules   --enable-ldbm   --enable-crypt --enable-spasswd --enable-accesslog  --enable-spasswd

参考至: http://doc.linuxpk.com/28400.html

          http://mengsir.blog.51cto.com/2992083/760890

          http://mengsir.blog.51cto.com/2992083/760890 

          http://www.ibm.com/developerworks/cn/linux/l-openldap/

          http://www.process.com/techsupport/installing_configuring_openldap.pdf

          http://hi.baidu.com/cqmking/blog/item/2e3e93081376bb3be9248808.html
          http://www.zytrax.com/books/ldap/ch5/ 
          http://www.openldap.org/doc/admin24/appendix-common-errors.html

          http://www.ithov.com/linux/100709_4.shtml

          http://www.openldap.org/doc/admin24/

本文原创,转载请注明出处、作者

如有错误欢迎指正

邮箱:czmcj@163.com

作者:czmmiao  文章出处:http://czmmiao.iteye.com/blog/1561703

时间: 2024-09-20 01:08:59

LDAP安装配置(原创)的相关文章

z/OS LDAP客户定制化的安装配置经验

名词解释: LDAP: Light Directory Access Protocol轻型目录访问协议 DSCONFIG: 是LDAP安装时用于生产配置文件的工具 随着z/OS主机的发展,越来越多的客户选择了z/OS LDAP服务器来提供用户验证和目录访问控制服务.它有着性能强大,多种网络拓扑结构的特点,可以提供多种可能的解决方案,同时在新的版本中提供越来越多的新功能. 本文将介绍客户环境与实验室测试环境的差别,安装时要根据客户的环境做定制化的安装. 在实施安装阶段,需要根据客户的环境,和管理要

Ubuntu10.04安装配置LDAP服务

  注:以Ubuntu 10.04版本为例,LDAP服务器和客户端为同一台机器,最新openldap软件服务器端无单独的配置文件,而是将配置信息保存于数据库中. 1. LDAP服务器端安装与配置 1.1 安装LDAP服务器相关软件 sudo apt-get install slapd ldap-utils 1.2 配置LDAP服务器数据库 sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldifsudo ldapa

CentOS 6.4安装配置ldap

CentOS 6.5安装配置ldap 时间:2015-07-14 00:54来源:blog.51cto.com 作者:"ly36843运维" 博客 举报 点击:274次 一.安装ldap [root@dev ~]# yum install openldap openldap-* -y [root@dev ~]# yum install nscd nss-pam-ldapd nss-* pcre pcre-* -y 二.配置ldap [root@dev ~]# cd /etc/openl

Ignite安装配置——中篇

Linux Ignite配置--上篇大体介绍了一下Ignite工具的功能.特性等,以及如何在Linux 上安装配置.从上篇可见Ignite安装非常的简单方便.下面介绍一下Ignite Repository Wizard(SQL Server或 ORACLE)配置以及如何注册需要监控的数据库. 在上篇中介绍了如何启动Ignite服务,其实只需要进入/home/ignite8/ignite_8_3_407目录下.就可以看到startup.sh 和shutdwon.sh 两个shell脚本.用来启动和

分布式存储系统GlusterFS安装配置

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://navyaijm.blog.51cto.com/4647068/1258250 一.前言 前段时间我同事玩GlusterFS,下午总算有点时间了,也玩玩,GlusterFS是一个开源的分布式文件系统,于2011年被红帽收购.它具有高扩展性.高性能.高可用性.可横向扩展的弹性特点,无元数据服务器设计使glusterfs没有单点故障隐患,详细介绍请查看官网:www.gluster.o

Android NDK r8 Cygwin CDT 在window下开发环境搭建 安装配置与使用 详细图文讲解

android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创) 一直想搞NDK开发却一直给其他事情耽搁了,参考了些网上的资料今天终于把环境搭建起来了,把过程记录下来分享给大家. 内容目录: 1.默认基础环境 2.NDK下载与配置 3.安装Cygwin 4.用NDK编译 5.安装CDT插件 6.安装Sequoyah插件 7.JNI编译环境配置 画了一个思维导图让大家一目了然配置过程   -------------------------

CentOS 6源码编译安装配置SVN服务器教程

说明: SVN(subversion)的运行方式有两种: 一种是基于Apache的http.https网页访问形式: 还有一种是基于svnserve的独立服务器模式. SVN的数据存储方式也有两种:一种是在Berkeley DB数据库中存储数据:另一种是使用普通的文件FSFS存储数据. 由于Berkeley DB方式在使用中有可能锁住数据,一般建议使用FSFS方式更安全. 实现目的: 以svnserve的独立服务器模式,使用FSFS数据存储方式源码编译安装配置SVN服务器. 具体操作: 操作系统

Linux下Apache ActiveMQ5.9的安装配置与测试

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://dgd2010.blog.51cto.com/1539422/1680244 变是永恒不变的真理. 由于公司的产品是由java做的,因此消息队列当然也要用java的,因此选择activemq是不错的选择.自从事运维以来安装软件.配置环境等可谓驾轻就熟,而面对java项目时还是心里有点忐忑,activemq应该如何测试,如何写activemq的测试例程,对于一个不经常操作java的

linux 安装配置lamp v2_Linux

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版.作者信息和本声明.否则将追究法律责任.http://blog.csdn.net/mayongzhan - 马永占,myz,mayongzhan 最终安装的只有mysql+apache+php 系统里自带了zlib libxml2 libxslt libcurl openssl   经修改过后的linux安装配置lamp v2如下:   痛苦了N天啊.这东西真的很变态.N多个软件需要make 想到这里突然开始喜欢xmapp了