openldap+phpadmin的搭建安装

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 加密通信的

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配置

nameserver 8.8.8.8
nameserver 8.8.4.4

  • selinux配置

当然生产环境建议还是开启,我这里偷懒下先关掉。

setenforce

  • 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

默认情况下,在/etc/openldap/slapd.d/目录下,有一些默认的配置文件,要删掉重新建立,这一步很重要

修改slapd.conf配置cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.confrm -rf /etc/openldap/slapd.d/*
chown ldap:ldap /var/lib/ldap/ 

/etc/init.d/slapd restart
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
chown -R ldap:ldap /etc/openldap/slapd.d
vi /etc/openldap/slapd.conf 我这里列出要修改的项

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

114 database bdb

115 suffix "dc=ldap,dc=54im,dc=com"
116 checkpoint 1024 15
117 rootdn "cn=Manager,dc=openldap,dc=54im,dc=com"
118 # Cleartext passwords, especially for the rootdn, should
119 # be avoided. See slappasswd(8) and slapd.conf(5) for details.
120 # Use of strong authentication encouraged.
121 # rootpw secret
122 # rootpw {crypt}ijFYNcSNctBYg
123 rootpw {SSHA}hHZMkvQ3bj07PYOb6emsZHZfGtXvd5g8 //这里用上面产生的密码
  • 测试下配置文件是否修改成功
[root@openldap-master openldap]# slaptest -u -f slapd.conf
config file testing succeeded

这里有个日志级别的问题

[root@openldap-master ~]# slapd -d ?
Installed log subsystems:

        Any                            (-1, 0xffffffff)记录所有的信息
        Trace                          (1, 0x1)跟踪功能调用的信息
        Packets                        (2, 0x2)包处理的debug信息
        Args                           (4, 0x4)丰富的debug信息
        Conns                          (8, 0x8)连接管理信息
        BER                            (16, 0x10)包的收发信息
        Filter                         (32, 0x20)搜索过滤的处理过程
        Config                         (64, 0x40)配置文件的处理过程
        ACL                            (128, 0x80)访问控制列表处理过程
        Stats                          (256, 0x100)连接、操作及其结果的统计数据
        Stats2                         (512, 0x200)向客户端返回的结果的统计信息
        Shell                          (1024, 0x400)与shell后端的通信信息
        Parse                          (2048, 0x800)显示记录条目的分析信息
        Sync                           (16384, 0x4000)从服务器数据同步资源消耗处理信息
        None                           (32768, 0x8000)

NOTE: custom log subsystems may be later installed by specific code
 

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

loglevel 257

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

  • 创建数据库文件(从模版复制)生成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 <dc=openldap,dc=54im,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# search result
search: 2
result: 32 No such object

# numResponses: 1
  • 数据录入

服务器正常运作后,就可以录入信息了。信息的录入有三种方法,一种是手工录入,一种是.ldif文件格式录入,一种是web界面录入(下面会介绍phpldapadmin录入)。信息录入用到ldapadd这个程序。这里我们介绍用.ldif方式录入

  • 创建待认证的用户 
[root@openldap-master openldap]# mkdir /54im_home
[root@openldap-master openldap]# useradd -u 8001 -d /54im_home/ivon01 ivon01
[root@openldap-master openldap]# useradd -u 8002 -d /54im_home/ivon02 ivon02
[root@openldap-master openldap]# useradd -u 8003 -d /54im_home/ivon03 ivon03
[root@openldap-master openldap]# echo "54im.com" |passwd --stdin ivon01
更改用户 ivon01 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
[root@openldap-master openldap]# echo "54im.com" |passwd --stdin ivon02
更改用户 ivon02 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
[root@openldap-master openldap]# echo "54im.com" |passwd --stdin ivon03
更改用户 ivon03 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
  •  安装及配置迁移工具
[root@openldap-master openldap]# yum install migrationtools -y
[root@openldap-master openldap]# cd /usr/share/migrationtools/
[root@openldap-master 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个

[root@openldap-master migrationtools]# ./migrate_base.pl >base.ldif
[root@openldap-master 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

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

[root@openldap-master migrationtools]# grep ivon /etc/passwd >user.txt
[root@openldap-master migrationtools]# ./migrate_passwd.pl user.txt ./user.ldif
[root@openldap-master migrationtools]# grep ivon /etc/group >group.txt
[root@openldap-master migrationtools]# ./migrate_group.pl group.txt ./group.ldif
[root@openldap-master 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
[root@openldap-master 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:(输入你刚才设置的密码),正确之后会显示:

[root@openldap-master migrationtools]# ldapsearch -x -b  "dc=openldap,dc=54im,dc=com"
# extended LDIF
#
# LDAPv3
# base <dc=openldap,dc=54im,dc=com> 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

4. phpldapadmin安装

yum安装apache+php环境

yum install httpd php php-bcmath php-gd php-mbstring php-xml php-ldap
yum install phpldapadmin  #要有epel源

修改httpd.conf配置文件,最文件最后新增

vi /etc/httpd/conf/httpd.conf 
ServerName openldap.54im.com
Alias /phpldapadmin /usr/share/phpldapadmin/htdocs
Alias /ldapadmin /usr/share/phpldapadmin/htdocs

<Directory /usr/share/phpldapadmin/htdocs>
  Order Deny,Allow
  Deny from all
  Allow from 127.0.0.1 192.168.1.0/24
  Allow from ::1
</Directory>

但是我看见/etc/httpd/conf.d下面有一个文件叫ldapphpadmin.conf文件内容何其是一样的,还有就是这个phpadmin在web访问的时候默认是80端口,你要查一下当前是否有80端口被占用,修改一下自己的端口,或者是另外一个端口

修改phpldapadmin配置文件

[root@openldap-master ~]# vi /etc/phpldapadmin/config.php
# line 397: uncomment, line 398: make it comment
$servers->setValue(‘login‘,‘attr‘,‘dn‘);
// $servers->setValue(‘login‘,‘attr‘,‘uid‘);    给他注释掉

然后就是重启http服务了,登陆访问注意这里的域名解析,假如说你是在虚拟机里面操作的话,要在本地的hosts文件添加一下

这里的登陆账号就是你前面设置的我这里是cn=Manager,dc=openldap,dc=bigbao,dc=com

登陆进去之后的样子是这样的,有我们刚刚创建的组合刚刚加入的用户


文章参考:http://www.tuicool.com/articles/BVjqE3http://www.tuicool.com/articles/f6zIjyhttp://www.tuicool.com/articles/JNBFBvhttp://www.tuicool.com/articles/32myUr
				
时间: 2024-10-23 22:55:51

openldap+phpadmin的搭建安装的相关文章

史上最详细Windows版本搭建安装React Native环境配置 转载,比官网的靠谱亲测可用

史上最详细Windows版本搭建安装React Native环境配置 2016/01/29 |  React Native技术文章 |  Sky丶清|  95条评论 |  33530 views 编辑推荐:稀土掘金 是一个高质量的技术社区,从 React Native 到 RxJava,性能优化到优秀开源库,让你不错过移动开发的每一个技术干货.各大应用市场搜索「掘金」,技术干货尽在掌握中. 说在前面的话: 感谢同事金晓冰倾情奉献本环境搭建教程 之前我们已经讲解了React Native的OS X

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

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

【转】android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)

原文网址:http://www.cnblogs.com/zdz8207/archive/2012/11/27/android-ndk-install.html android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创) 一直想搞NDK开发却一直给其他事情耽搁了,参考了些网上的资料今天终于把环境搭建起来了,把过程记录下来分享给大家. 内容目录: 1.默认基础环境 2.NDK下载与配置 3.安装Cygwin 4.用NDK编译 5.安装

基于Workstation8、CentOS6.5实现12C RAC搭建安装

基于Workstation8.CentOS6.5实现12C RAC搭建安装 作者:HopToad 地点:杭州滨江 邮箱:[email protected] 微信公众号:HopToad 欢迎各界交流 2014年12月 1 准备条件 1.1 硬件版本 家用PC机一台,硬盘空间150G以上,内存8G以上. 每个虚拟机(理论要求)配置4G内存 1.2 软件版本 虚拟化软件:VMware Workstation8 以上版本 操作系统: CentOS6.5/REHL6.5/OEL6.5以上 数据库版本:12

h5棋牌游戏为何火爆?最新h5房卡棋牌搭建安装

不管承不承认,H5受到了关注.它并不像一款月流水过亿的爆款手游,或者风靡一时的app让人印象深刻.但当你打开微信朋友圈,看好友刷各式各样的动态,最新h5房卡棋牌搭建安装Q-2189563389从厂商的PR新闻,到创业鸡汤,再到个人的生活足迹,H5页面一直没有缺位过,从一开始的眼前一亮,到现在几乎成为各大门户的标配,似乎也不到半年的时间.H5游戏的便捷性,碎片化的特点迎合了移动端用户的使用习惯,并且能够通过微信朋友圈等社交平台快速传播.这种基于HTML5技术的游戏是否已经成为行业的风向标.它的历史

BLAST(2004版)本地化永利国际平台搭建安装与使用,生成PSSM打分矩阵

一.软件永利国际平台搭建安装论坛:haozbbs.com Q1446595067 1.软件下载:该软件目前已更新到2.3.0+(ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/2.3.0/),我使用的是师姐给的2004年2.2.9版(ftp://ftp.ncbi.nlm.nih.gov/blast/executables/release/2.2.9/)大家可以根据自己的需求来下载.两个软件在Dos环境下的命令还是不一样的,我个人感觉2004

北京赛车彩票网站源码下载平台一条龙搭建安装过程详解

1. 系统需求需要最新源码,二次开发的联系202-101-8216=========================================== 1) 操作系统:Windows XP+IIS5.1 / Windows 2003+IIS6.0 / Windows 2008+IIS7.5 2) 数 据 库:SQL Server 2008 / SQL Server 2008 / SQL Server 2008 3) 其 他:FSO(FileSystemObject) 4) 使用Email功能,

redhat5.5 openldap server 配置搭建

目录服务其实也是一种数据库系统,只是这种数据库是一种树形结构,而不是通常使用的关系数据库.目录服务与关系数据库之间的主要区别在于:二者都允许对存储数据进行访问,只是目录主要用于读取,其查询的效率很高,而关系数据库则是为读写而设计的. LDAP属于轻量级的目录服务,目录服务主要是为了解决账号的管理问题,如网络登录.电子邮件服务.FTP服务.WEB服务.代理服务和办公自动化等,因为各种应用系统是基于不同的开发商,各个系统都有自己的认证方式,不好统一管理. 具体的配置过程如下: 1.确保计算机中防火墙

史上最详细Windows版本搭建安装React Native环境配置

说在前面的话: 感谢同事金晓冰倾情奉献本环境搭建教程 之前我们已经讲解了React Native的OS X系统的环境搭建以及配置,鉴于各大群里有很多人反应在Windows环境搭建出现各种问题,今天就特意更新一贴来说明.关于os x环境搭建以及react native入门学习资料请移步:http://www.lcode.org/react-native/ 刚创建的React Native技术交流3群(496508742),欢迎各位大牛,React Native技术爱好者加入交流!同时博客右侧欢迎微