Centos6 yum安装openldap+phpldapadmin+TLS+双主配置 1.概念介绍 2. 环境介绍 2. 准备工作   3. yum部署ldap 4. phpldapadmin安装   5.ldap客户端配置 6.用户目录自动挂载 7.配置TLS传输加密   8.配置openldap双主实现高可用 mirrorMode 9.另一个ldap管理工具 LDAP Account Manager 10.windown上对openldap进行验证   11.关闭openldap匿名查询 12.  附录

 

LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。它是基于X.500标准的,但是简单多了并且可以根据需要定制。与X.500不同,LDAP支持TCP/IP,这对访问Internet是必须的。LDAP的核心规范在RFC中都有定义,所有与LDAP相关的RFC都可以在LDAPman RFC网页中找到。 简单说来,LDAP是一个得到关于人或者资源的集中、静态数据的快速方式。 LDAP是一个用来发布目录信息到许多不同资源的协议。通常它都作为一个集中的地址本使用,不过根据组织者的需要,它可以做得更加强大

现在市场上有关LDAP的产品已有很多,各大软件公司都在他们的产品中集成了LDAP服务,如Microsoft的ActiveDirectory、Lotus的Domino Directory、IBM的WebSphere中也集成了LDAP服务。LDAP的开源实现是OpenLDAP,它比商业产品一点也不差,而且源码开放。

OpenLDAP 是最常用的目录服务之一,它是一个由开源社区及志愿者开发和管理的一个开源项目,提供了目录服务的所有功能,包括目录搜索、身份认证、安全通道、过滤器等等。大多数的 Linux 发行版里面都带有 OpenLDAP 的安装包。OpenLDAP 服务默认使用非加密的 TCP/IP 协议来接收服务的请求,并将查询结果传回到客户端。由于大多数目录服务都是用于系统的安全认证部分比如:用户登录和身份验证,所以它也支持使用基于 SSL/TLS 的加密协议来保证数据传送的保密性和完整性。OpenLDAP 是使用 OpenSSL 来实现 SSL/TLS 加密通信的

这里引申一下LDAP主要的简称含义:

  • o– organization(组织-公司)
  • ou – organization unit(组织单元-部门)
  • c – countryName(国家)
  • dc – domainComponent(域名)
  • sn – suer name(真实名称)
  • cn – common name(常用名称)

2. 环境介绍

这里准备3台虚拟机,在cloudstack上生成很方便,当然可以根据自己需求来部署,可以只部署简单的ldap,也可以部署ldap+ca,也可以部署ldap复制,前2个都可以在一台服务器上进行。

Centos6 yum安装openldap+phpldapadmin+TLS+双主配置
1.概念介绍
2. 环境介绍
2. 准备工作
 
3. yum部署ldap
4. phpldapadmin安装
 
5.ldap客户端配置
6.用户目录自动挂载
7.配置TLS传输加密
 
8.配置openldap双主实现高可用 mirrorMode
9.另一个ldap管理工具 LDAP Account Manager
10.windown上对openldap进行验证
 
11.关闭openldap匿名查询
12.  附录

openldap master:         192.168.1.137            域名:openldap.54im.com

openldap slave:             192.168.1.143             域名:openldap2.54im.com

ca+openldap client:    192.168.1.111              域名:openldap-ca.54im.com

2. 准备工作

在3台服务器上均进行如下操作。

  • dns配置


vi /etc/resolv.conf

nameserver 8.8.8.8
nameserver 8.8.4.4

  • selinux配置
当然生产环境建议还是开启,我这里偷懒下先关掉。
 
setenforce 0
 
  • epel配置
 
rpm -Uvh http://mirror-fpt-telecom.fpt.net/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
 

 

3. yum部署ldap

  • yum安装openldap:
 
1
openldap
  • 日志配置:
 
1
2
3
4
5
6
7
8
slapd
/
/
.conf
EOF
.log
EOF
restart
  • 创建管理员密码,尽量使用高强度密码
这里我设置的密码为 54im.com,生存的{SSHA}DOS0VOBzmvD3beMsuFllLBOi6CAt4Kcj一会配置文件要用
 
1
2
3
4
# slappasswd
:
:
DOS0VOBzmvD3beMsuFllLBOi6CAt4Kcj

修改slapd.conf配置

 
1
2
.conf
}

vi /etc/openldap/slapd.conf 我这里列出要修改的项

修改suffix 和rootdn,rootpw,suffix我这里用了二级域名,如果你想用主域名也可以,写成dc=54im,dc=com,其中rootpw可以是明文,这里我们经过SSHA算法加密下,

 
1
2
3
4
5
6
7
8
9
10
11
bdb
 
15
# Cleartext passwords, especially for the rootdn, should
# be avoided. See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
# rootpw secret
# rootpw {crypt}ijFYNcSNctBYg
/这里用上面产生的密码
  • 测试下配置文件是否修改成功
 
1
2
# slaptest -u -f slapd.conf
succeeded

 

这里有个日志级别的问题

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# slapd -d ?
:
 
)记录所有的信息
)跟踪功能调用的信息
debug信息
debug信息
)连接管理信息
)包的收发信息
)搜索过滤的处理过程
)配置文件的处理过程
)访问控制列表处理过程
)连接、操作及其结果的统计数据
)向客户端返回的结果的统计信息
shell后端的通信信息
)显示记录条目的分析信息
)从服务器数据同步资源消耗处理信息
)
 
code

你可以同时设置几种日志级别,方法是将日志级别的数字加起来。 比如同时设置Trace和Stats级别,那么在slapd.conf中:

loglevel 257

或者启动OpenLDAP时,使用命令参数-d 257来指定

  • 创建数据库文件(从模版复制)生成DB_CONFIG
 
 
1
2
3
/
DB_CONFIG
DB_CONFIG

启动ldap服务,自动创建数据库文件

 
1
2
on
start

服务启动后,可以看到生成了几个数据库文件

 
1
2
3
4
5
6
7
8
9
10
11
12
13
# ll
11472
alock
001
002
003
004
005
006
DB_CONFIG
.bdb
.bdb
0000000001
  •  检查搜索域
-x 信息排序
-b 指定搜索范围起点
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# extended LDIF
#
# LDAPv3
# base <dc=openldap,dc=54im,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
 
# search result
2
object
 
# numResponses: 1
  • 数据录入
服务器正常运作后,就可以录入信息了。信息的录入有三种方法,一种是手工录入,一种是.ldif文件格式录入,一种是web界面录入(下面会介绍phpldapadmin录入)。信息录入用到ldapadd这个程序。这里我们介绍用.ldif方式录入
  • 创建待认证的用户 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
# mkdir /54im_home
# useradd -u 8001 -d /54im_home/ivon01 ivon01
# useradd -u 8002 -d /54im_home/ivon02 ivon02
# useradd -u 8003 -d /54im_home/ivon03 ivon03
所有的身份验证令牌已经成功更新。
所有的身份验证令牌已经成功更新。
所有的身份验证令牌已经成功更新。
  •  安装及配置迁移工具
 
1
2
3
4
5
6
7
8
# yum install migrationtools -y
# cd /usr/share/migrationtools/
# vi migrate_common.ph
# Default DNS domain
;
72
# Default base
;
  •  创建认证账户文件

主要的概念:

dn:唯一区分名

dc:所属区域

ou:所属组织

cn/uid:全名/登录ID

运行脚本migrate_base.pl,它会创建根项,并为 Hosts、Networks、Group和 People 等创建低一级的组织单元,指定为base.ldif文件,这里我们只有下面这3个

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# ./migrate_base.pl >base.ldif
# vi base.ldif
 
com
openldap
top
domain
 
com
People
top
organizationalUnit
 
com
Group
top
organizationalUnit

创建用户和组的数据库文件

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# grep ivon /etc/passwd >user.txt
# ./migrate_passwd.pl user.txt ./user.ldif
# grep ivon /etc/group >group.txt
# ./migrate_group.pl group.txt ./group.ldif
# ll base.ldif user.ldif group.ldif
.ldif
.ldif
.ldif
# extended LDIF
#
# LDAPv3
# base <-L> with scope subtree
# filter: dc=openldap,dc=54im,dc=com
# requesting: ALL
#
 
# search result
2
syntax
DN
 
# numResponses: 1
  •  迁移系统用户到ldap数据库
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# /etc/init.d/slapd restart
]
]
:
 
:
 
:

如果出现错误:
ldap_bind: Invalid credentials (49)
就表示你要么给出了错误的”cn=”条目,要么给出了错误的密码
Enter LDAP Password:(输入你刚才设置的密码),正确之后会显示:
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# extended LDIF
#
# LDAPv3
# base <dc=openldap,dc=54im,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
 
# openldap.54im.com
com
openldap
top
domain
 
# People, openldap.54im.com
。。。。省略
 
2
Success
 
# numResponses: 10
# numEntries: 9

如果有防火墙,记得打开389端口

4. phpldapadmin安装

yum安装apache+php环境

 
1
ldap

yum安装phpldapadmin

 
1
#要有epel源

我这里是yum安装的,所以config.d下面有phpldapadmin.conf,改下httpd.conf中的servername就可以。

注意:如果是下载的phpldapadmin包接下的话需要修改httpd.conf配置文件,最文件最后新增

 
1
2
3
4
5
6
7
8
9
10
11
.conf 
54im.com
htdocs
htdocs
 
>
Allow
all
24
1
>

修改phpldapadmin配置文件

 
1
2
3
4
# vi /etc/phpldapadmin/config.php
# line 397: uncomment, line 398: make it comment
;
;

重启httpd服务后访问

Centos6 yum安装openldap+phpldapadmin+TLS+双主配置
1.概念介绍
2. 环境介绍
2. 准备工作
 
3. yum部署ldap
4. phpldapadmin安装
 
5.ldap客户端配置
6.用户目录自动挂载
7.配置TLS传输加密
 
8.配置openldap双主实现高可用 mirrorMode
9.另一个ldap管理工具 LDAP Account Manager
10.windown上对openldap进行验证
 
11.关闭openldap匿名查询
12.  附录

登录ldap

Centos6 yum安装openldap+phpldapadmin+TLS+双主配置
1.概念介绍
2. 环境介绍
2. 准备工作
 
3. yum部署ldap
4. phpldapadmin安装
 
5.ldap客户端配置
6.用户目录自动挂载
7.配置TLS传输加密
 
8.配置openldap双主实现高可用 mirrorMode
9.另一个ldap管理工具 LDAP Account Manager
10.windown上对openldap进行验证
 
11.关闭openldap匿名查询
12.  附录

登录后即可新增用户和组等操作,看了到我们迁移进去的3个用户和组

Centos6 yum安装openldap+phpldapadmin+TLS+双主配置
1.概念介绍
2. 环境介绍
2. 准备工作
 
3. yum部署ldap
4. phpldapadmin安装
 
5.ldap客户端配置
6.用户目录自动挂载
7.配置TLS传输加密
 
8.配置openldap双主实现高可用 mirrorMode
9.另一个ldap管理工具 LDAP Account Manager
10.windown上对openldap进行验证
 
11.关闭openldap匿名查询
12.  附录

 

5.ldap客户端配置

我这里客户端安装在192.168.1.111 这台服务器上,这台后面也会做证书服务器。

 
1
#  yum  install openldap-clients nss-pam-ldapd

我们可以在终端使用图像化界面配置,在crt里面输入  authconfig-tui

Centos6 yum安装openldap+phpldapadmin+TLS+双主配置
1.概念介绍
2. 环境介绍
2. 准备工作
 
3. yum部署ldap
4. phpldapadmin安装
 
5.ldap客户端配置
6.用户目录自动挂载
7.配置TLS传输加密
 
8.配置openldap双主实现高可用 mirrorMode
9.另一个ldap管理工具 LDAP Account Manager
10.windown上对openldap进行验证
 
11.关闭openldap匿名查询
12.  附录

这里注意,如果有dns的情况下话,可以用域名,否则要绑定hosts或者用IP,TLS这里我们先不选,后面再介绍
Centos6 yum安装openldap+phpldapadmin+TLS+双主配置
1.概念介绍
2. 环境介绍
2. 准备工作
 
3. yum部署ldap
4. phpldapadmin安装
 
5.ldap客户端配置
6.用户目录自动挂载
7.配置TLS传输加密
 
8.配置openldap双主实现高可用 mirrorMode
9.另一个ldap管理工具 LDAP Account Manager
10.windown上对openldap进行验证
 
11.关闭openldap匿名查询
12.  附录
authconfig-tui会修改很多配置文件,先来检查下

 
1
2
3
4
cacerts
/
com
 
1
2
3
4
5
6
7
nslcd
ldap
/
com
no
cacerts
 
1
2
3
4
5
6
com
/
no
cacerts
md5
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ldap
ldap
ldap
dns
files
files
files
files
files
files
sss
ldap
nisplus
ldap
nisplus
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
.so
.so
try_first_pass
quiet
use_first_pass
.so
broken_shadow
.so
quiet
.so
.so
=
use_authtok
use_authtok
.so
.so
.so
use_uid
.so
077
 
1
2
3
yes
yes

启动nslcd服务,并设置为开机启动

 
1
2
start
on

验证:

 
1
2
3
4
5
6
7
8
# id ivon01
)
# id ivon02
)
# id ivon03
)
# su - ivon01
没有那个文件或目录

显示如上信息,说明账户可以登录,但没找到用户主目录。这需要在本地配置nfs并通过autofs自动挂载服务器家目录到本地客户端

6.用户目录自动挂载

6.1 服务器端配置

nfs在openldap服务器上配置,默认centos 6上已经安装了nfs

 
1
2
3
4
5
6
7
8
9
10
11
# /etc/init.d/rpcbind start
# /etc/init.d/nfslock start
# /etc/init.d/nfs start
]
]
]
]
]
# chkconfig rpcbind on
# chkconfig nfslock on
# chkconfig nfs on

配置nfs

 
1
2
# vi /etc/exports
)

如果开了selinux,则需要 setsebool  -P    use_nfs_home_dirs   on

vi /etc/sysconfig/nfs,去掉一些端口的注释符(可选,如果不取消这些端口注释,客户端showmount的时候会报错,不影响挂载)

 
1
2
3
4
32803
32769
892
662

重启nfs

配置防火墙

 
1
2
3
4
5
6
7
8
9
10
11
iptables
ACCEPT
ACCEPT
ACCEPT
ACCEPT
ACCEPT
ACCEPT
ACCEPT
ACCEPT
ACCEPT
ACCEPT

在客户端检查下nfs输出

 
1
2
3
# showmount -e openldap.54im.com
:
24

6.2 客户端配置

默认情况下,centos 6已经安装了nfs及autofs,如果没有,则使用yum –y install nfs-utils autofs

 
1
2
3
4
5
on
on
on
on
on

配置autofs服务

 
1
2
3
4
5
,在最后一行后面加入:
.nfs
 
.nfs,输入如下内容并保存:
&

重启下autofs服务:service autofs restart

客户端测试:

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# su - ivon01
pwd
ivon01
ls
54im.com
 
# su - ivon02
H
on
/
shm
ivon01
ivon02
 
nfs共享目录
# ls /54im_home/ivon01/
54im.com

注意事项:

  对/etc/auto.nfs文件使用*及&通配符时,则/etc/auto.master里的挂载点必须与服务器的挂载点同名同目录/nfshome,否则客户端su – 切换时会提示找不到目录。

  不建议把ldap用户直接创建在/home文件夹里。否则由于/etc/auto.nfs文件里的*及&符号的自动匹配的作用,客户autofs会自动在内存中创建/home目录,会隐藏掉实际的/home目录

7.配置TLS传输加密

配置openldap的加密,可以用自签名证书,也可以用CA中心签名,这里我的CA中心签名,CA服务器是 192.168.1.111

前言:

为啥要用TLS?

Openldap默认使用简单验证,对slapd的所有访问都使用明文密码通过未加密通道进行。为了确保信息安全,需要对信息进行加密传输,SSL(Secure Sockets Layer)是一个可靠的解决方案。

它使用 X.509 证书,由可信任第三方(Certificate Authority (CA))进行数字签名的一个标准格式的数据。有效的数字签名意味着已签名的数据没有被篡改。如果签名的数据被更改,将不会通过验证

SSL/TLS 加密原理简介

SSL/TLS 是基于 PKI 机制的加密方式,包括证书认证、密钥交换、非对称加密、对称加密。SSL/TLS 采用 CA 作为服务端和客户端都信赖的具有权威性的组织,证书的颁发和认证都依赖于 CA,并假定 CA 颁发的证书是可靠的、可信赖的,证书里面的内容是真实的、有效的,并可用于客户机和服务器进行安全的可靠的通信加密。

SSL/TLS 证书用来认证服务器和客户机双方的身份,并用于密钥交换时候的非对称加密。密钥交换完毕之后,就可以用这个密钥做通信数据的对称加密了,具体的加密算法是由客户机和服务器互相协商得来。服务器和客户机由于 SSL/TLS 库的不同以及用户的配置不同,双方支持的算法列表不完全相同,当双方做 SSL/TLS 握手的时候,就需要将自己支持的算法列表及优先顺序告知对方,一旦对方按照优先顺序找到了第一个支持的算法,那么协商完成,否则双方协商失败,SSL/TLS 连接断开

  • 安装openssl

yum install openssl

  • 准备工作
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# cd /etc/pki/CA/
# ls
private
# touch index.txt
# echo 01 >serial
# ls
serial
 
#vi /etc/pki/tls/openssl.cnf
# 根目录
# 公钥目录
# 过期,吊销证书目录
# 证书签名记录文件
#unique_subject = no                    # Set to 'no' to allow creation of
# several ctificates with same subject.
# 新的公钥证书目录
 
# CA中心的公钥
# 每次签名序号自动+1
# the current crl number
# must be commented out to leave a V1 CRL
# 吊销的证书
# 私钥
# private random number file
 
省略若干
证书有效期(默认一年)
吊销列表更新周期
 
策略匹配
必须匹配(城市名)
(国家或州名)
(组织名)
optional可选的匹配(单位名)
(常用名)
邮件地址,可以不填
 
.
 
]
设置国家
城市
组织
  •  CA服务器生存自己的私钥,公钥(证书)
 
1
2
3
4
5
# (umask 077;openssl genrsa -out private/CA.key)
modulus
++
++
)

利用刚才创建的RSA私钥创建自签署的根证书
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# openssl req -new -x509 -key private/CA.key >CA.crt
incorporated
.
.
blank
,
.
-
CN
SHANGHAI
BAOSHAN
54IM
IT
54im.com
.com
  •  openldap服务器生成私钥,并生成证书请求文件
在192.168.1.137这台服务器上执行,生成私钥的时候我选择了不要密码,否则启动服务的时候还要输入次密码
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# openssl genrsa -out 54im-ldap.key
modulus
++
++
)
# openssl req -new -key 54im-ldap.key -out 54im-ldap.csr
incorporated
.
.
blank
,
.
-
CN
SHANGHAI
BAOSHAN
54IM
IT
54im.com
.com
 
attributes
request
:
:
  •  向CA服务器请求证书
 
1
2
3
# scp 54im-ldap.csr openldap-ca.54im.com:/tmp
:
00
  •  CA服务器颁发证书
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# openssl ca -in /tmp/54im-ldap.csr -out /tmp/54im-ldap.crt
.cnf
signature
ok
:
)
Validity
GMT
GMT
:
CN
SHANGHAI
54IM
IT
54im.com
.com
:
:
FALSE
:
Certificate
:
FC
:
39
 
)
y
 
y
entries
Updated
  •  openldap服务器下载自己的证书
 
1
2
3
4
5
6
7
# scp -r /tmp/54im-ldap.crt openldap.54im.com:/root
:
          
 
# scp -r CA.crt openldap.54im.com:/root
:
.crt
  • openldap服务器安装证书:
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# vi /etc/openldap/ldap.conf
/
com
cacerts
 
#/etc/openldap/slapd.conf
.crt
.crt
.key
 
# mkdir /etc/openldap/cacerts/
# cp /root/CA.crt /etc/openldap/cacerts/
# cp /root/54im-ldap. /etc/openldap/cacerts/
  
# cp /root/54im-ldap.* /etc/openldap/cacerts/
 
# chown ldap.ldap /etc/openldap/cacerts/
# service slapd stop
]
 
ldap,这样可以监听加密和非加密的端口,
如果只想监听加密的
 
# netstat -ntpl |grep slapd
slapd        
slapd        
slapd        
slapd

 
  • CA服务器发布自己的公钥,openldap客户端下载公钥
客户端有图像界面的话可以用setup配置,运行system-config-authentication,然后勾选使用TLS,输入证书链接(可以用ftp或者http把CA服务器的公钥共享出来)
我这里直接scp过去(由于客户端和我ca服务器在一台,这里我只要复制下就可以,其他同学该rz的rz,该scp的scp吧)
cp /etc/pki/CA/private/CA.key /etc/openldap/cacerts/
  • openldap客户端修改配置
之前的是ldap,现在改为ldaps
 
1
2
3
4
# cat /etc/openldap/ldap.conf
cacerts
/
com

然后重启/etc/init.d/nslcd restart
  •  openldap客户端测试
 
1
2
3
4
5
6
# ldapwhoami -v -x -Z
)
)
started
anonymous
)

如果遇到如下错误:

 
1
2
3
4
5
#ldapwhoami -v -x -Z
)
)
.
)

在客户端的ldap.conf中加了“TLS_REQCERT allow”,重启nslcd 后出现了正常结果

  •  ldap验证帐号密码
这里的密码就是之前在openldap服务器端创建的系统帐号密码
 
1
2
3
4
5
)
:
com
)
  •  搜索ldap服务器域信息
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# extended LDIF
#
# LDAPv3
# base <dc=openldap,dc=54im,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
 
# openldap.54im.com
com
openldap
top
domain

 

8.配置openldap双主实现高可用 mirrorMode

首先我们来配置一台和主一样的openldap,保证以下条件

一、保证两台服务器里都配置的一样的根dc,比如我的是:dc=openldap,dc=54im,dc=com。

二、两边的管理帐户都有cn=Manager,dc=openldap,dc=54im,dc=com,密码都为54im.com。

三、保证目前AB两台服务器的数据完全一致。如果闲麻烦可以先导出所有数据,然后删除当作全新安装,待同步完成后从其中一台导入即可。

前言:

Openldap 2.4的同步机制已经和2.3完全不同,我这里的同步机制采用的是镜像模式,并且双向镜像。

  • yum安装ldap和http php phpldapadmin
 
1
phpldapadmin
  •  配置slapd.conf
 
1
2
3
/这里用上面产生的密码

我这里是yum安装的,所以config.d下面有phpldapadmin.conf,改下httpd.conf中的servername就可以。

注意:如果是下载的phpldapadmin包接下的话需要修改httpd.conf配置文件,最文件最后新增

  • 配置phpldapadmin
 
1
2
3
4
5
6
7
8
9
10
11
.conf 
54im.com
htdocs
htdocs
 
>
Allow
all
24
1
>

最后启动slpad服务

/etc/init.d/slapd start

  • 访问openldap2.54im.com 的phpldapadmin
Centos6 yum安装openldap+phpldapadmin+TLS+双主配置
1.概念介绍
2. 环境介绍
2. 准备工作
 
3. yum部署ldap
4. phpldapadmin安装
 
5.ldap客户端配置
6.用户目录自动挂载
7.配置TLS传输加密
 
8.配置openldap双主实现高可用 mirrorMode
9.另一个ldap管理工具 LDAP Account Manager
10.windown上对openldap进行验证
 
11.关闭openldap匿名查询
12.  附录
 
  • 在openldap.54im.com上导出下数据
Centos6 yum安装openldap+phpldapadmin+TLS+双主配置
1.概念介绍
2. 环境介绍
2. 准备工作
 
3. yum部署ldap
4. phpldapadmin安装
 
5.ldap客户端配置
6.用户目录自动挂载
7.配置TLS传输加密
 
8.配置openldap双主实现高可用 mirrorMode
9.另一个ldap管理工具 LDAP Account Manager
10.windown上对openldap进行验证
 
11.关闭openldap匿名查询
12.  附录
 
导出后会是文本的形式显示在界面上,我们把内容负责到一个文件里面叫 openldap.ldif
  • 在openldap2.54im.com上导入数据
Centos6 yum安装openldap+phpldapadmin+TLS+双主配置
1.概念介绍
2. 环境介绍
2. 准备工作
 
3. yum部署ldap
4. phpldapadmin安装
 
5.ldap客户端配置
6.用户目录自动挂载
7.配置TLS传输加密
 
8.配置openldap双主实现高可用 mirrorMode
9.另一个ldap管理工具 LDAP Account Manager
10.windown上对openldap进行验证
 
11.关闭openldap匿名查询
12.  附录
在openldap 节点2上我们可以看到 把openldap.54im.com 上的数据导入进去了,目前为止2边的数据已经完全一致了。
  • 配置openldap.54im.com上的slapd.conf
注意先备份下原来的配置文件
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/新增
/把前面的注释去掉
/把前面的注释去掉
/把前面的注释去掉
 
配置文件末尾新增
1
syncprov
 
001
389
refreshAndPersist
on
simple
54im.com
on

由于openldap2上我没有配置TLS,所以这里主主同步我用ldap 389来同步。当然我openldap上同时开了 ldap和ldaps
 这里解释下各参数含义
 
1
2
3
4
5
6
7
8
9
10
11
12
#和openldap2 服务器保持一致,告诉openldap2 现在和你是同一组。
#B服务器LDAP的IP及端口
#设置为持续同步
#从B服务器同步dc=openldap,dc=54im,dc=com
#schema验证开启
#密码验证为简单模式(即明文,此处你可以改为加密)
#使用cn=Manager,dc=openldap,dc=54im,dc=com用户进行读取(openldap2服务器上必须有该用户)
#密码为54im.com
#重试为60秒,60和“+”之间必须有空格
 
#以上几个都是syncrepl的参数,可以考虑在一行里完成,我这里在最前面用一个TAB做了换行。
#开启镜像模式

 
重启ldap服务
killall -9 slapd
slapd -h ldap:/// ldaps:///
  • 配置openldap2.54im.com上的slapd.conf
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/新增
/把前面的注释去掉
/把前面的注释去掉
/把前面的注释去掉
 
配置文件末尾新增
2
syncprov
 
001
389
refreshAndPersist
on
simple
54im.com
on
openldap2 服务器上我没有配置TLS,这里我可以直接重启ldap服务  /etc/init.d/slapd restart
  • 在openldap.54im.com上新增用户
Centos6 yum安装openldap+phpldapadmin+TLS+双主配置
1.概念介绍
2. 环境介绍
2. 准备工作
 
3. yum部署ldap
4. phpldapadmin安装
 
5.ldap客户端配置
6.用户目录自动挂载
7.配置TLS传输加密
 
8.配置openldap双主实现高可用 mirrorMode
9.另一个ldap管理工具 LDAP Account Manager
10.windown上对openldap进行验证
 
11.关闭openldap匿名查询
12.  附录
 
这里可以指定用户所属组,用户的shell
 
Centos6 yum安装openldap+phpldapadmin+TLS+双主配置
1.概念介绍
2. 环境介绍
2. 准备工作
 
3. yum部署ldap
4. phpldapadmin安装
 
5.ldap客户端配置
6.用户目录自动挂载
7.配置TLS传输加密
 
8.配置openldap双主实现高可用 mirrorMode
9.另一个ldap管理工具 LDAP Account Manager
10.windown上对openldap进行验证
 
11.关闭openldap匿名查询
12.  附录
确定信息无误,点提交就完成新建用户
 
Centos6 yum安装openldap+phpldapadmin+TLS+双主配置
1.概念介绍
2. 环境介绍
2. 准备工作
 
3. yum部署ldap
4. phpldapadmin安装
 
5.ldap客户端配置
6.用户目录自动挂载
7.配置TLS传输加密
 
8.配置openldap双主实现高可用 mirrorMode
9.另一个ldap管理工具 LDAP Account Manager
10.windown上对openldap进行验证
 
11.关闭openldap匿名查询
12.  附录
 
可以看到在People这个ou已经有我们新建的用户了
 
Centos6 yum安装openldap+phpldapadmin+TLS+双主配置
1.概念介绍
2. 环境介绍
2. 准备工作
 
3. yum部署ldap
4. phpldapadmin安装
 
5.ldap客户端配置
6.用户目录自动挂载
7.配置TLS传输加密
 
8.配置openldap双主实现高可用 mirrorMode
9.另一个ldap管理工具 LDAP Account Manager
10.windown上对openldap进行验证
 
11.关闭openldap匿名查询
12.  附录
  • 在openldap2.54im.com上查看用户是否同步,并删掉用户,
Centos6 yum安装openldap+phpldapadmin+TLS+双主配置
1.概念介绍
2. 环境介绍
2. 准备工作
 
3. yum部署ldap
4. phpldapadmin安装
 
5.ldap客户端配置
6.用户目录自动挂载
7.配置TLS传输加密
 
8.配置openldap双主实现高可用 mirrorMode
9.另一个ldap管理工具 LDAP Account Manager
10.windown上对openldap进行验证
 
11.关闭openldap匿名查询
12.  附录
Centos6 yum安装openldap+phpldapadmin+TLS+双主配置
1.概念介绍
2. 环境介绍
2. 准备工作
 
3. yum部署ldap
4. phpldapadmin安装
 
5.ldap客户端配置
6.用户目录自动挂载
7.配置TLS传输加密
 
8.配置openldap双主实现高可用 mirrorMode
9.另一个ldap管理工具 LDAP Account Manager
10.windown上对openldap进行验证
 
11.关闭openldap匿名查询
12.  附录
  • 在openldap2.54im.com上新增组,然后看openldap.54im.com上是否也进行同步
Centos6 yum安装openldap+phpldapadmin+TLS+双主配置
1.概念介绍
2. 环境介绍
2. 准备工作
 
3. yum部署ldap
4. phpldapadmin安装
 
5.ldap客户端配置
6.用户目录自动挂载
7.配置TLS传输加密
 
8.配置openldap双主实现高可用 mirrorMode
9.另一个ldap管理工具 LDAP Account Manager
10.windown上对openldap进行验证
 
11.关闭openldap匿名查询
12.  附录
Centos6 yum安装openldap+phpldapadmin+TLS+双主配置
1.概念介绍
2. 环境介绍
2. 准备工作
 
3. yum部署ldap
4. phpldapadmin安装
 
5.ldap客户端配置
6.用户目录自动挂载
7.配置TLS传输加密
 
8.配置openldap双主实现高可用 mirrorMode
9.另一个ldap管理工具 LDAP Account Manager
10.windown上对openldap进行验证
 
11.关闭openldap匿名查询
12.  附录

9.另一个ldap管理工具 LDAP Account Manager

如果平时帐号操作比较频繁的话,推荐使用ldap account manager这个工具。
LDAPAccountManager(LAM)是一个用来管理储存在一个LDAP目录中的用户的web前端应用程序,管理系统,管理员可以通过加密的方式进行操作,增强了安全性。LAM支持管理的帐号类型有Samba2/3、Unix地址簿接口和计算机需要的信息,包括NIS映射、E-mail假名,MAC地址等。

LDAP Account Manager强大功能

1、使用LAM,可以通过Web接口较为直观的、简便的管理存储在LDAP目录里的用户、用户组和计算机系统账户。

2、管理Unix的用户、用户组、主机、域名。

3、强大的过滤和排序功能。

4、帐号属性管理。

5、多构造属性。

6、直观树状查看模式。

7、计划查看模式。

8、通过文件上传创建帐号。

9、所有帐号可导出为PDF文件格式。

10、管理用户、用户组、配额和自动创建删除用户的Home目录。

11、支持LDAP+SSL加密模式。

12、多国语言支持,如Catalan、Chinese(Traditional)等。

安装需求

1、PHP5语言环境和Perl语言环境。

2、OpenLDAP2.0或更高版本。

3、支持CSS的网页浏览器。

4、Apache WebServer,建议安装SSL、PHP-Module(PHP-Module with ldap、Gettext、XML、Mcrypt+mhash)等模块。

在CentOS6.5安装LDAP Account Manager比较方便,只用用官方提供的rpm包安装。

  • 下载安装:
 
1
2
0.fedora.1.noarch.rpm
0.fedora.1.noarch.rpm

这里会自动在httpd.conf生成配置文件,非常方便。

cat /etc/httpd/conf.d/lam.apache.conf

  •  配置文件修改
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
389
com
Nbd31hSBKRDW0BqepRYsGpvzC3f26Iib
com
)
:
:
750
5
0
10000
30000
50000
60000
10000
20000
SSHA
SSHA
smbDomain
com
#uid;#givenName;#sn;#uidNumber;#gidNumber
sambaSamAccount
com
#cn;#gidNumber;#memberUID;#description
sambaGroupMapping
com
#cn;#description;#uidNumber;#gidNumber
sambaSamAccount
com
SID
sambaDomain
reset
+
  •  登录:
Centos6 yum安装openldap+phpldapadmin+TLS+双主配置
1.概念介绍
2. 环境介绍
2. 准备工作
 
3. yum部署ldap
4. phpldapadmin安装
 
5.ldap客户端配置
6.用户目录自动挂载
7.配置TLS传输加密
 
8.配置openldap双主实现高可用 mirrorMode
9.另一个ldap管理工具 LDAP Account Manager
10.windown上对openldap进行验证
 
11.关闭openldap匿名查询
12.  附录
配置文件中有机器这个OU,数据库中没有,所以这里提示创建machines这个OU
Centos6 yum安装openldap+phpldapadmin+TLS+双主配置
1.概念介绍
2. 环境介绍
2. 准备工作
 
3. yum部署ldap
4. phpldapadmin安装
 
5.ldap客户端配置
6.用户目录自动挂载
7.配置TLS传输加密
 
8.配置openldap双主实现高可用 mirrorMode
9.另一个ldap管理工具 LDAP Account Manager
10.windown上对openldap进行验证
 
11.关闭openldap匿名查询
12.  附录
 
Centos6 yum安装openldap+phpldapadmin+TLS+双主配置
1.概念介绍
2. 环境介绍
2. 准备工作
 
3. yum部署ldap
4. phpldapadmin安装
 
5.ldap客户端配置
6.用户目录自动挂载
7.配置TLS传输加密
 
8.配置openldap双主实现高可用 mirrorMode
9.另一个ldap管理工具 LDAP Account Manager
10.windown上对openldap进行验证
 
11.关闭openldap匿名查询
12.  附录
 
可以按树形结构查看
Centos6 yum安装openldap+phpldapadmin+TLS+双主配置
1.概念介绍
2. 环境介绍
2. 准备工作
 
3. yum部署ldap
4. phpldapadmin安装
 
5.ldap客户端配置
6.用户目录自动挂载
7.配置TLS传输加密
 
8.配置openldap双主实现高可用 mirrorMode
9.另一个ldap管理工具 LDAP Account Manager
10.windown上对openldap进行验证
 
11.关闭openldap匿名查询
12.  附录
 
 

10.windown上对openldap进行验证

在windows想验证自己搭建的openldap是否配置成功,有个图像化的操作界面,首先电脑上得安装java软件jdk-8u5-windows-x64.exe。(不是浏览器那个java插件)

软件下载:http://pan.baidu.com/s/1ntHQF4P

软件解压后,运行lbe.bat这个

Centos6 yum安装openldap+phpldapadmin+TLS+双主配置
1.概念介绍
2. 环境介绍
2. 准备工作
 
3. yum部署ldap
4. phpldapadmin安装
 
5.ldap客户端配置
6.用户目录自动挂载
7.配置TLS传输加密
 
8.配置openldap双主实现高可用 mirrorMode
9.另一个ldap管理工具 LDAP Account Manager
10.windown上对openldap进行验证
 
11.关闭openldap匿名查询
12.  附录

Centos6 yum安装openldap+phpldapadmin+TLS+双主配置
1.概念介绍
2. 环境介绍
2. 准备工作
 
3. yum部署ldap
4. phpldapadmin安装
 
5.ldap客户端配置
6.用户目录自动挂载
7.配置TLS传输加密
 
8.配置openldap双主实现高可用 mirrorMode
9.另一个ldap管理工具 LDAP Account Manager
10.windown上对openldap进行验证
 
11.关闭openldap匿名查询
12.  附录

 

11.关闭openldap匿名查询

默认openldap匿名查询开了,所以只要别人知道你的openldap服务器ip就可以扫描到你的组织架构,OU,用户等信息,这些对外公布是不安全的。

Centos6 yum安装openldap+phpldapadmin+TLS+双主配置
1.概念介绍
2. 环境介绍
2. 准备工作
 
3. yum部署ldap
4. phpldapadmin安装
 
5.ldap客户端配置
6.用户目录自动挂载
7.配置TLS传输加密
 
8.配置openldap双主实现高可用 mirrorMode
9.另一个ldap管理工具 LDAP Account Manager
10.windown上对openldap进行验证
 
11.关闭openldap匿名查询
12.  附录

比如上面这个图,我只输入了openldap的域名,勾上匿名,就可以查到你得额Base DN,然后保存后,就可以连接看到你整个组织架构了。

怎么关闭openldap的匿名查询呢,只要在slapd.conf配置文件中加入disallow bind_anon即可(加在 allow bind_v2 这行后面)。

Centos6 yum安装openldap+phpldapadmin+TLS+双主配置
1.概念介绍
2. 环境介绍
2. 准备工作
 
3. yum部署ldap
4. phpldapadmin安装
 
5.ldap客户端配置
6.用户目录自动挂载
7.配置TLS传输加密
 
8.配置openldap双主实现高可用 mirrorMode
9.另一个ldap管理工具 LDAP Account Manager
10.windown上对openldap进行验证
 
11.关闭openldap匿名查询
12.  附录

发现已经连接不上我们的openldap了。

12.  附录

12.1. OpenSSL相关命令:

创建CA中心:( umask 77; openssl genrsa -out private/my-ca.key -des3 2048 )

openssl req -new -x509 -key private/my-ca.key -days 365 > my-ca.crt

私钥加密:openssl rsa -in encrypted.key -out unencrypted.key

私钥解密:openssl rsa -in unencrypted.key -out encrypted.key

生成私钥:( umask 77; openssl genrsa 1024 > dovecot.key )

生成CSR:(umask 77; openssl req -new -key somefile.key -out somefile.csr )

可用/etc/pki/tls/certs/Makefile创建CSR

查看CSR:openssl req -noout -in somefile.csr -text

创建CA签名证书:openssl ca -in my.csr -out my.crt

证书吊销:openssl ca -revoke badcert.crt

生成证书吊销列表CRL:openssl ca -gencrl -out revoked.crl

生成DER供firefox使用:openssl crl -in revoked.crl -outform. DER -out revoked.der.crl

检查CRL内容:openssl crl -in revoked.crl -noout -text

 

12.2 快速清除openldap配置

附:两种快速清除配置、重新导入数据的配置命令

==================     前面五行都是相同的   =====================

 
1
2
3
4
5
stop
*
*
DB_CONFIG
migrationtools

==================     以下为第一种方法   =====================

 
1
2
3
4
5
6
7
.ldif
.ldif
.ldif
.d
ldap
.d
slapadd添加完档案后才启动数据库

==================     以下为第二种方法   =====================

 
1
2
3
4
5
6
7
.d
ldap
.d
lapdadd命令必须先启动数据库
.ldif
.ldif
.ldif

 

12.3 手工数据录入

手动录入方法

第一步是要建立DN:

 
1
2
3
4
5
6
7
# ldapadd -x -D 'cn=root,dc=openldap,dc=54im,dc=com' -W
com
dcObject
organization
openldap
Corporation
Corporation

注意:如果你用复制/粘贴功能把以上内容拷贝过去,一定要注意每行后面不要有空格,建议还是手工输入,按Ctrl+d存盘。

第二步是建立RDN:

 
1
2
# ldapadd -x -D 'cn=root,dc=openldap,dc=54im,dc=com' -W        
#-x表示用简单验证,-D表示指定目录,-W表示弹出密码输入提示

输入密码,这里的密码是在配置文件中rootpw项设置的密码,不是操作系统中root用户的密码。验证通过后就可输入以下内容:

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
com
person
organizationalPerson
inetOrgPerson
qq
qq
qq
138888888
test
8888888
street
postofficebox
qqdisplay
home1111111
mobile99999
.com

输入完所有信息后,按Ctrl+d结束存盘。如果出现出错信息,请查一下对象类和属性的对应关系有没有错或输入失误。初学者就容易出错的地方是对象类和属性的对应关系没有处理好。对象类和属性是在schema文档中定义的。它们之间的关系是这样的,对象类中有些属性是必选的,有些属性是可选的。录入信息的属性必须在对象类中有定义才能用。

输入以下命令可查询到刚才输入的信息。

 
1
2
# ldapsearch -x -b 'dc=openldap,dc=54im,dc=com'            
BASE配置参数,该项可不用。

如果按以上配置文件设置了acl,用上面的查询命令是查询不到受保护的内容的。如上面的userPassword and mail。要查询到这些受限内容,需要通过验证才可以:

 
1
2
# ldapsearch -x -LLL -h openldap.54im.com -b 'dc=openldap,dc=54im,dc=com' -D 'uid=qq,dc=openldap,dc=54im,dc=com' -W 'uid=qq'
userPassword的密码回车,所有信息就都出来了。

本文参考:

http://www.server-world.info/en/note?os=CentOS_6&p=ldap&f=4

http://iceblood.blog.163.com/blog/static/11331322720125843938486/

http://blog.sina.com.cn/s/blog_92dc41ea0101fyh9.html

http://blog.sina.com.cn/s/blog_64aac6750101gwst.html

http://mosquito.blog.51cto.com/2973374/1098456