当前位置: 主页 > Linux安装教程 > 系统安装 >

Centos6 yum安装openldap+phpldapadmin+TLS+双主机器配置

时间:2016-06-08 17:33来源:未知 作者:Linux彼得 举报 点击:
很不错的openldap文档,按照文档步骤操作到使用ssl客户端加密传输的时openldap客户端验证ldapwhoami -v -x -Z 的时候出现了
技术交流:官网QQ群①:347309696

1.概念介绍

 

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.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:

 

yum install openldap openldap-servers openldap-clients openldap-devel compat-openldap

 

  • 日志配置:

 

mkdir /var/log/slapd
chmod 755 /var/log/slapd/
chown ldap:ldap /var/log/slapd/
sed -i "/local4.*/d" /etc/rsyslog.conf
cat >> /etc/rsyslog.conf << EOF
local4.*                        /var/log/slapd/slapd.log
EOF
service rsyslog restart

 

  • 创建管理员密码,尽量使用高强度密码
这里我设置的密码为 54im.com,生存的{SSHA}DOS0VOBzmvD3beMsuFllLBOi6CAt4Kcj一会配置文件要用

 

[[email protected] ~]# slappasswd 
New password: 
Re-enter new password: 
{SSHA}DOS0VOBzmvD3beMsuFllLBOi6CAt4Kcj

 

修改slapd.conf配置

cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf
mv /etc/openldap/slapd.d{,.bak}
  • 创建数据库文件(从模版复制)生成DB_CONFIG
 

 

cd /var/lib/ldap/
cp /usr/share/openldap-servers/DB_CONFIG.example ./DB_CONFIG
chown ldap.ldap DB_CONFIG

 

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

chkconfig slapd on
/etc/init.d/slapd start

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

[[email protected] ldap]# ll
总用量 11472
-rw-r--r--. 1 ldap ldap      2048 5月  22 13:42 alock
-rw-------. 1 ldap ldap     24576 5月  22 13:42 __db.001
-rw-------. 1 ldap ldap   9093120 5月  22 13:42 __db.002
-rw-------. 1 ldap ldap 335552512 5月  22 13:42 __db.003
-rw-------. 1 ldap ldap   2359296 5月  22 13:42 __db.004
-rw-------. 1 ldap ldap    753664 5月  22 13:42 __db.005
-rw-------. 1 ldap ldap     32768 5月  22 13:42 __db.006
-rw-r--r--. 1 root root       921 5月  22 13:42 DB_CONFIG
-rw-------. 1 ldap ldap      8192 5月  22 13:42 dn2id.bdb
-rw-------. 1 ldap ldap     32768 5月  22 13:42 id2entry.bdb
-rw-------. 1 ldap ldap  10485760 5月  22 13:42 log.0000000001

 

  •  检查搜索域
-x 信息排序
-b 指定搜索范围起点
[[email protected] openldap]# ldapsearch -x -b "dc=openldap,dc=54im,dc=com"
# extended LDIF
#
# LDAPv3
# base  with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
 
# search result
search: 2
result: 32 No such object
 
# numResponses: 1

 

[[email protected] openldap]# mkdir /54im_home
[[email protected] openldap]# useradd -u 8001 -d /54im_home/ivon01 ivon01
[[email protected] openldap]# useradd -u 8002 -d /54im_home/ivon02 ivon02
[[email protected] openldap]# useradd -u 8003 -d /54im_home/ivon03 ivon03
[[email protected] openldap]# echo "54im.com" |passwd --stdin ivon01
更改用户 ivon01 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
[[email protected] openldap]# echo "54im.com" |passwd --stdin ivon02
更改用户 ivon02 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
[[email protected] openldap]# echo "54im.com" |passwd --stdin ivon03
更改用户 ivon03 的密码 。
passwd: 所有的身份验证令牌已经成功更新。

 

  •  安装及配置迁移工具
[[email protected] openldap]# yum install migrationtools -y
[[email protected] openldap]# cd /usr/share/migrationtools/
[[email protected] migrationtools]# vi migrate_common.ph 
     70 # Default DNS domain
     71 $DEFAULT_MAIL_DOMAIN = "openldap.54im.com";
     72 
     73 # Default base
     74 $DEFAULT_BASE = "dc=openldap,dc=54im,dc=com";

 

  •  创建认证账户文件

主要的概念:

dn:唯一区分名

dc:所属区域

ou:所属组织

cn/uid:全名/登录ID

 

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

[[email protected] migrationtools]# ./migrate_base.pl >base.ldif
[[email protected] migrationtools]# vi base.ldif 
 
dn: dc=openldap,dc=54im,dc=com
dc: openldap
objectClass: top
objectClass: domain
 
dn: ou=People,dc=openldap,dc=54im,dc=com
ou: People
objectClass: top
objectClass: organizationalUnit
 
dn: ou=Group,dc=openldap,dc=54im,dc=com
ou: Group
objectClass: top
objectClass: organizationalUnit

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

			[[email protected] migrationtools]# grep ivon /etc/passwd >user.txt
[[email protected] migrationtools]# ./migrate_passwd.pl user.txt ./user.ldif
[[email protected] migrationtools]# grep ivon /etc/group >group.txt
[[email protected] migrationtools]# ./migrate_group.pl group.txt ./group.ldif
[[email protected] migrationtools]# ll base.ldif user.ldif group.ldif 
-rw-r--r--. 1 root root  285 5月  22 13:57 base.ldif
-rw-r--r--. 1 root root  426 5月  22 13:59 group.ldif
-rw-r--r--. 1 root root 1335 5月  22 13:58 user.ldif
[[email protected] migrationtools]# ldapsearch -x -b -L "dc=openldap,dc=54im,dc=com"
# extended LDIF
#
# LDAPv3
# base <-L> with scope subtree
# filter: dc=openldap,dc=54im,dc=com
# requesting: ALL
#
 
# search result
search: 2
result: 34 Invalid DN syntax
text: invalid DN
 
# numResponses: 1
			

 

  •  迁移系统用户到ldap数据库
[[email protected] migrationtools]# /etc/init.d/slapd restart
停止 slapd:[确定]
正在启动 slapd:[确定]
[[email protected] migrationtools]# ldapadd -D "cn=Manager,dc=openldap,dc=54im,dc=com" -W -x -f /usr/share/migrationtools/base.ldif
Enter LDAP Password: 
adding new entry "dc=openldap,dc=54im,dc=com"
adding new entry "ou=People,dc=openldap,dc=54im,dc=com"
adding new entry "ou=Group,dc=openldap,dc=54im,dc=com"
 
[[email protected] migrationtools]# ldapadd -D "cn=Manager,dc=openldap,dc=54im,dc=com" -W -x -f /usr/share/migrationtools/user.ldif
Enter LDAP Password: 
adding new entry "uid=ivon01,ou=People,dc=openldap,dc=54im,dc=com"
adding new entry "uid=ivon02,ou=People,dc=openldap,dc=54im,dc=com"
adding new entry "uid=ivon03,ou=People,dc=openldap,dc=54im,dc=com"
 
[[email protected] migrationtools]# ldapadd -D "cn=Manager,dc=openldap,dc=54im,dc=com" -W -x -f /usr/share/migrationtools/group.ldif
Enter LDAP Password: 
adding new entry "cn=ivon01,ou=Group,dc=openldap,dc=54im,dc=com"
adding new entry "cn=ivon02,ou=Group,dc=openldap,dc=54im,dc=com"
adding new entry "cn=ivon03,ou=Group,dc=openldap,dc=54im,dc=com"

如果出现错误:
ldap_bind: Invalid credentials (49)
就表示你要么给出了错误的”cn=”条目,要么给出了错误的密码
Enter LDAP Password:(输入你刚才设置的密码),正确之后会显示:
[[email protected] migrationtools]# ldapsearch -x -b  "dc=openldap,dc=54im,dc=com"
# extended LDIF
#
# LDAPv3
# base  with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
 
# openldap.54im.com
dn: dc=openldap,dc=54im,dc=com
dc: openldap
objectClass: top
objectClass: domain
 
# People, openldap.54im.com
。。。。省略
 
search: 2
result: 0 Success
 
# numResponses: 10
# numEntries: 9

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

 

 

推荐内容