Linux系统下openldap源码部署详细教程,linuxopenldap


Linux系统下openldap源码部署详细教程。

一。环境

服务器:基于CentOS的-7-x86_64-1511

服务器IP:172.18.12.203

二,软件获取

OpenLDAP的

OpenLDAP官网下载地址:http : //www.openldap.org/software/download/

OpenLDAP 2.4.44:ftp ://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-2.4.44.tgz

BDB

berkeley-db-5.1.29 (OpenLDAP当前与6.x版本不兼容,READEME中明确写出兼容4.4?4.8或5.0?5.1):

http://download.oracle.com/berkeley-db/db-5.1.29.tar.gz

LDAP管理员

ldapadmin 2015.2:

官网下载地址:http://www.ldapbrowser.com/download.htm

64位:http : //softerra-downloads.com/ldapadmin/ldapadmin-4.13.16704.0-x64-eng.msi

三。准备

1. 关闭selinux的;

2. 打开防火墙tcp 389/636端口。

# TCP 389是OpenLDAP的明文传输端口,TCP 636是SSL加密传输的端口。

#centos7默认自带firewalld服务,可以停用之后安装iptables。

四,安装的OpenLDAP

1. 依赖包

#涉及libtool-ltdl与libtool-ltdl-devel,如不安装,在编译时报错:配置:错误:找不到libtool ltdl.h
yum install * ltdl * -y

2. 安装BDB

复制代码
#必须在解压包的build_unix目录中编译安装,否则会报错 
[根@本地?] #坎德拉/ USR /本地/ SRC / 
[根@本地SRC] #焦油-zxvf DB-5.1.29.tar.gz 
[根@本地SRC] #CD DB-5.1.29 / build_unix / 
[根@本地build_unix] #../dist/configure前缀=的/ usr /本地/ BerkeleyDB的-5.1.29 
[根@本地build_unix] #化妆 
[根@本地build_unix] #make install的
复制代码

3. 更新LIB库

#保证在后面编译的OpenLDAP时能找到的lib和包括下的库 
[根@本地build_unix] #坎德拉/ USR /本地/ SRC / 
[根@本地SRC] #回声“/usr/local/berkeleydb-5.1.29/ LIB /”> /etc/ld.so.conf中 
[根@本地SRC] #LDCONFIG -v

4. 安装的OpenLDAP

复制代码
#编译选项可以通过./configure --help查看; 
#其中make test一步时间较长; 
#如果未设置CPPFLAGS,配置过程可能会提示configure:error:BDB / HDB:BerkeleyDB not available或者configure:error:BerkeleyDB版本与BDB / HDB后端不相容 
[根@本地?] #坎德拉/ USR /本地/ SRC / 
[根@本地SRC] #焦油-zxvf OpenLDAP的-2.4.44.tgz 
[根@本地SRC] #CD的OpenLDAP-2.4 .44 
[root @ localhost openldap-2.4.44] #./configure --prefix = / usr / local / openldap-2.4.44 --enable-syslog --enable-modules --enable-debug --with-tls CPPFLAGS = -I / usr / local / berkeleydb-5.1.29 / include / LDFLAGS = -L / usr / local / berkeleydb-5.1.29 / lib / 
[root @ localhost openldap-2.4.44]#使依赖 
[根@本地的OpenLDAP-44年2月4日] #使 
[根@本地的OpenLDAP-44年2月4日] #使测试 
[根@本地的OpenLDAP-44年2月4日] #使安装
复制代码

5. 设置可执行命令

#对OpenLDAP的客户端(bin)中与服务器端(sbin目录)相关执行档添加软链接,也可以通过增加环境变量的方式设置
[根@本地的OpenLDAP-44年2月4日] #CD /usr/local/openldap-2.4 0.44 
[根@本地的OpenLDAP-44年2月4日] #LN -s /usr/local/openldap-2.4.44/bin/*的/ usr / local / bin中/ 
[根@本地的OpenLDAP-44年2月4日] #LN - s /usr/local/openldap-2.4.44/sbin/* / usr / local / sbin /

五,简单配置

1. 安装完成的OpenLDAP的-44年2月4日目录结构

OpenLDAP的安装完成后相关目录承载的功能如下:

bin / - 客户端工具如ldapadd,ldapsearch

etc / - 包含主配置文件slapd.conf,schema,DB_CONFIG等

包括/

LIB /

libexec / - 服务端启动工具slapd

sbin / - 服务端工具如slappasswd

分享/

var / --bdb数据,日志存放目录

2. 配置的rootdn密码(可选)

复制代码
#设置rootdn密码,这里设置为123456; 
#这样rootdn密码为密文方式,复制输出密文到主配置文件rootdn对应的位置即可,如果不想麻烦,可以忽略此步,在主配置文件中使用明文。即可 
[根@本地?] #CD /usr/local/openldap-2.4.44/ 
[根@本地的OpenLDAP-44年2月4日] #slappasswd 
新密码:
重新输入新的密码:
{SSHA} K9 + WK / t1e0V0K6pUMOyTsaTwkDBNED iP
复制代码

3. 主配置文件的slapd.conf

复制代码
[根@本地的OpenLDAP-44年2月4日] #CD /usr/local/openldap-2.4.44/etc/openldap/ 
[根@本地的OpenLDAP] #VIM的slapd.conf 
#以下修改紫红色字体的英文未做修改的部分,红色字体是有修改部分,蓝色字体表示新增部分

#模式默认只有core.schema中,各级需要添加,这里将同配置文件一个目录的架构目录中有的架构文件都加到配置文件中; 
5 include /usr/local/openldap-2.4.44/etc/openldap/schema/core.schema
 6 include /usr/local/openldap-2.4.44/etc/openldap/schema/collective.schema
7包括/usr/local/openldap-2.4.44/etc/openldap/schema/corba.schema
8包括/usr/local/openldap-2.4.44/etc/openldap/schema/cosine.schema
9 include /usr/local/openldap-2.4.44/etc/openldap/schema/duaconf.schema
10包括/usr/local/openldap-2.4.44/etc/openldap/schema/dyngroup.schema
11包括/usr/local/openldap-2.4.44/etc/openldap/schema/inetorgperson.schema
12包括/usr/local/openldap-2.4.44/etc/openldap/schema/java.schema
13包括/usr/local/openldap-2.4.44/etc/openldap/schema/misc.schema
14包括/usr/local/openldap-2.4.44/etc/openldap/schema/nis.schema
15 include /usr/local/openldap-2.4.44/etc/openldap/schema/openldap.schema
16 include /usr/local/openldap-2.4.44/etc/openldap/schema/pmi.schema
17包括/usr/local/openldap-2.4.44/etc/openldap/schema/ppolicy.schema

25 pidfile /usr/local/openldap-2.4.44/var/run/slapd.pid
26 argsfile /usr/local/openldap-2.4.44/var/run/slapd.args

#新增日志文件级别与路径,需要在编译时--enable调试,否则日志文件输出,不影响调试模式; 
28日志级别256
29 logfile /usr/local/openldap-2.4.44/var/slapd.log

#这里使用mdb做后端数据库,也可以修改为“bdb”参数,在OpenLDAP官方文档“11.4。LMDB”章节中有介绍mdb是推荐使用的后端数据库; 
67数据库mdb

#使用mdb做后端数据库时,根据官方文档中说明需要设置一个空间值,“除了最小配置需要的常用参数之外,mdb后端需要设置最大大小,这应该是最大的数据库有望增长(以字节为单位),文件系统还必须提供足够的空间来容纳这个大小。“;如果使用bdb做后端数据库,需要将此项参数注释掉; 
68最大尺寸1073741824

#修改域名及管理员账户名; 
69后缀“dc = sys,dc = com”
70 rootdn“cn = admin,dc = sys,dc = com”

#使用密文密码,即前面使用slappasswd生成的密文; 
74 rootpw {SSHA} K9 + WK / t1e0V0K6pUMOyTsaTwkDBNED iP

#OpenLDAP的数据目录,采用MDB时,在相应目录生成” data.mdb中“与” lock.mdb “文件;采用BDB时,在相应目录生成” dn2id.bdb “与” id2entry.bdb “及多个” __db.00 *“文件
 .78目录/usr/local/openldap-2.4.44/var/openldap-data

80索引objectClass eq
复制代码

4. 初始化OpenLADP(可选)

#如果采用mdb做后端数据库,此步骤可忽略,DB_CONFIG是bdb / hdb数据库使用的; 
#与主配置文件中的配置有关,主配置文件确定使用bdb与数据存放路径 
[root @ localhost openldap]#CD /usr/local/openldap-2.4.44/var/openldap-data/ 
[根@本地OpenLDAP的数据]#CP DB_CONFIG.example DB_CONFIG

5. 启动OpenLADP

复制代码
#直接在后台工作; 
#非root用户不能监听端口1?1024,如果是非root用户,有可能需要重新定义服务端口 
[root @ localhost?] #/ usr/local/openldap-2.4.44/libexec/slapd

#在前端工作,输出debug信息 
[root @ localhost?] #/usr/local/ openldap-2.4.44/libexec /slapd -d 256
复制代码

6. 验证

[根@本地?] #ldapsearch的-x -b '' -s碱'(对象类= *)' 
#或者[根@本地?]#ldapsearch的-x -b '' -s碱'(对象类= *)' namingContexts 
#或者使用netstat -tunlp | grep 389,ps -ef | grep slapd,ps aux | grep slapd等也可。

如图示,说明的OpenLDAP已经启动运行成功:

\

六。简单使用(示例)

1. 创建1个管理员账号

编辑LDIF文件

复制代码
#注意与slapd.conf文件中保持一致,下面的命令同理,
#本人曾在下面的ldapadd命令中将“admin”写成了“amdin”,导致一直报“ldap_bind:Invalid credentials(49)”错每次都是翻回上一条命令执行),排查了3个小时左右才发现。 
[根@本地?] #VIM test.ldif

dn:dc = sys,dc = com
objectclass:dcObject
objectclass:组织
o:SYS.Inc
dc:sys

dn:cn = admin,dc = sys,dc = com
objectclass:organizationalRole
cn:admin
复制代码

插入数据库

[根@本地?] #ldapadd的-x -D “CN =管理员,DC = SYS,DC = COM” -W -f test.ldif

可以看到账号已经加入到LDAP中:

\

验证

[根@本地?] #ldapsearch的-x -b 'DC = SYS,DC = COM' '(objectClass的= *)'

\

2. 创建1个具有部门属性的员工

编辑LDIF文件

复制代码
#这里其实是先创建1个部门”它”,再在”它”部门创建了1个员工,实际上是两条命令 
[根@本地?] #VIM test2.ldif

dn:ou = it,dc = sys,dc = com
ou:它
objectClass:organizationalUnit

dn:cn = test1,ou = it,dc = sys,dc = com
ou:它
cn:test1
sn:t1
objectClass:inetOrgPerson
objectClass:organizationalPerson
复制代码

插入数据库

[根@本地?] #ldapadd的-x -D “CN =管理员,DC = SYS,DC = COM” -W -f test2.ldif

可以看到已经员工账号加入到LDAP中:

\

验证

[根@本地?] #ldapsearch的-x -b 'DC = SYS,DC = COM' '(objectClass的= *)'

\

相关内容