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. 附录
原文地址:http://54im.com/openldap/centos-6-yum-install-openldap-phpldapadmin-tls-%E5%8F%8C%E4%B8%BB%E9%85%8D%E7%BD%AE.html
钿畑的文章索引
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个都可以在一台服务器上进行。
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.confnameserver 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
|
- 创建管理员密码,尽量使用高强度密码
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
|
- 数据录入
- 创建待认证的用户
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服务后访问
登录ldap
登录后即可新增用户和组等操作,看了到我们迁移进去的3个用户和组
5.ldap客户端配置
我这里客户端安装在192.168.1.111 这台服务器上,这台后面也会做证书服务器。
1
|
# yum install openldap-clients nss-pam-ldapd
|
我们可以在终端使用图像化界面配置,在crt里面输入 authconfig-tui
这里注意,如果有dns的情况下话,可以用域名,否则要绑定hosts或者用IP,TLS这里我们先不选,后面再介绍
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服务器生成私钥,并生成证书请求文件
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客户端下载公钥
cp /etc/pki/CA/private/CA.key /etc/openldap/cacerts/
- openldap客户端修改配置
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验证帐号密码
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
- 在openldap.54im.com上导出下数据
- 在openldap2.54im.com上导入数据
- 配置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做了换行。
#开启镜像模式
|
killall -9 slapdslapd -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
|
- 在openldap.54im.com上新增用户
- 在openldap2.54im.com上新增组,然后看openldap.54im.com上是否也进行同步
9.另一个ldap管理工具 LDAP Account Manager
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
+
|
- 登录:
10.windown上对openldap进行验证
在windows想验证自己搭建的openldap是否配置成功,有个图像化的操作界面,首先电脑上得安装java软件jdk-8u5-windows-x64.exe。(不是浏览器那个java插件)
软件下载:http://pan.baidu.com/s/1ntHQF4P
软件解压后,运行lbe.bat这个
11.关闭openldap匿名查询
默认openldap匿名查询开了,所以只要别人知道你的openldap服务器ip就可以扫描到你的组织架构,OU,用户等信息,这些对外公布是不安全的。
比如上面这个图,我只输入了openldap的域名,勾上匿名,就可以查到你得额Base DN,然后保存后,就可以连接看到你整个组织架构了。
怎么关闭openldap的匿名查询呢,只要在slapd.conf配置文件中加入disallow bind_anon即可(加在 allow bind_v2 这行后面)。
发现已经连接不上我们的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