LDAP环境搭建 OpenLDAP和phpLDAPadmin -- yum版
前言:
前两天公司要求做一个使用LDAP和Kerberos做一个认证授权系统,然后开始学习LDAP相关知识,期间找了不少博客按照步骤来安装,可是很多博客在配置的时候,都会遇到安装过程中一两个问题卡住了,然后就无法进行下去了,坑了我不少时间,其实我只是想先搭建好环境然后来深入浅出的学习,总结这两天的坑,便有了这篇博文,本次主要是快速上手篇,大部分会采用yum方式安装 力求快速上手,尽量少修改官方配置 最小化的环境,为了详细,文章中图片可能会多一点
正式使用还是要基于源码安装,如果你喜欢源码安装,可以等我后续的源码安装的博文.我也是在学习阶段如果遇到问题希望在留言板提出,我会定时查看,一起共同学习,发现我疏忽的地方.
为了确保文章的正确性,在写这篇文章的时候我有重新安装了一遍!好了话不多说,开始了!
环境要求
系统版本:CentOS-6.5-x86_64-minimal
虚拟机版本:VMware10
SSH客户端版本:Xshell 4 Bulid 0131
虚拟机实验环境:
| 名称 | 服务器名 | ip | 网址 | 用途 |
| OpenLDAP服务器 | Cos6.5_x64_ldap_01 | 192.168.18.142 | yf01.oyf.xyz | openLDAP服务端 |
| Cos6.5_x64_ldap_02 | 192.168.18.137 | yf02.oyf.xyz | ||
| 客户机 | Cos6.5_x64_ldap_03 | 192.168.18.130 | yf03.oyf.xyz | phpLDAPadmin客户端 |
| Cos6.5_x64_ldap_04 | 192.168.18.140 | yf02.oyf.xyz |
注: Cos6.5_x64_ldap_02是为Kerberos预留的,
oyf.xyz是我之前申请的一个域名,你们可以根据自己的域名修改.
例如 example.com
yf01配置(OpenLDAP)
修改配置文件和主机名
echo '
127.0.0.1 localhost.localdomain yf01.oyf.xyz yf01 oyf.xyz
192.168.18.137 yf02.oyf.xyz yf02
192.168.18.130 yf03.oyf.xyz yf03
192.168.18.140 yf04.oyf.xyz yf04
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
' > /etc/hosts sed -i -e'2c\HOSTNAME=yf01' /etc/sysconfig/network
关闭防火墙并重启 让主机名生效
service iptables stop
chkconfig iptables off
reboot
yum 安装openldap
yum install -y openldap-servers openldap-clients
启用日志记录
mkdir /var/log/slapd ; chmod 755 /var/log/slapd/ ;chown ldap:ldap /var/log/slapd/
echo 'local4.* /var/log/slapd.log' >> /etc/rsyslog.conf
service rsyslog restart
创建证书
Country Name = 国家名
State or Province Name = 州或省名
Locality Name = 城市名
Organization Name = 单位名(oyf)
Organizational Unit Name = YFLDAP
Common Name = 主机名(yf01)
Email Address = 电子邮件
cd /etc/pki/tls/certs
make slapd.pem /*---输出内容start---
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:CHENGDU
Locality Name (eg, city) [Default City]:CHENGHUA
Organization Name (eg, company) [Default Company Ltd]:oyf
Organizational Unit Name (eg, section) []:YFLDAP
Common Name (eg, your name or your server's hostname) []:yf01
Email Address []:admin@oyf.xyz PS: 这里输错了如果按住退格键删除会有奇奇怪怪的符号(^H),不能直接按退格键删除,可以按住ctrl+退格键强制删除!! ---输出内容END---*/ //这条命令可以用来查看生成后的证书的信息
openssl x509 -in /etc/pki/tls/certs/slapd.pem -noout -text /*---输出内容start---
Issuer: C=CN, ST=CHENGDU, L=CHENGHUA, O=oyf, OU=YFLDAP, CN=yf01/emailAddress=admin@oyf.xyz
---输出内容END---*/ chmod 640 /etc/pki/tls/certs/slapd.pem
chown :ldap /etc/pki/tls/certs/slapd.pem
ln -s /etc/pki/tls/certs/slapd.pem /etc/openldap/certs/slapd.pem
slappasswd加密密码
slappasswd
New password:
Re-enter new password: {SSHA}WQ52ZbS9g6iwIe+ubvnTIXWkxHAvhBdQ
复制配置文件
cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
修改slapd.conf配置文件
vim /etc/openldap/slapd.conf


画框的都是被修改部分
需要注意的是 这里的配置参数前面不能有空格,不然会出莫名其妙的问题,例如 rootpw 前面一定一定不能有空格
所有 dc=my-domain 这个等于自己的主机名 如dc=oyf
TLSCACertificateFile /etc/pki/tls/certs/ca-bundle.crt
TLSCertificateFile /etc/pki/tls/certs/slapd.pem
TLSCertificateKeyFile /etc/pki/tls/certs/slapd.pem database monitor
access to *
by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read
by dn.exact="cn=Manager,dc=oyf,dc=xyz" read
by * none #######################################################################
# database definitions
####################################################################### database bdb
suffix "dc=oyf,dc=xyz"
checkpoint 1024 15
rootdn "cn=Manager,dc=oyf,dc=xyz"
开启加密支持
vim /etc/sysconfig/ldap
//修改
SLAPD_LDAPS=yes
修改ldap配置文件
vim /etc/openldap/ldap.conf
这几个粘贴到最后几行
vim /etc/openldap/ldap.conf //这几个粘贴到最后几行
BASE dc=oyf,dc=xyz
URI ldap://localhost
TLS_REQCERT never
导入用户配置文件
rm -rf /etc/openldap/slapd.d/*
vim /tmp/root.ldif
/*---插入start--- dn: dc=oyf,dc=xyz
dc: oyf
objectClass: dcObject
objectClass: organizationalUnit
ou: oyf.xyz dn: ou=yafei,dc=oyf,dc=xyz
ou: yafei
objectClass: organizationalUnit dn: ou=groups,dc=oyf,dc=xyz
ou: groups
objectClass: organizationalUnit dn: ou=php,dc=oyf,dc=xyz
ou: php
objectClass: organizationalUnit ---插入end---*/
slapadd -v -n 2 -l /tmp/root.ldif
//插入成功后会有下图提示 chown -R ldap:ldap /var/lib/ldap
chown -R ldap:ldap /etc/openldap/slapd.d
正常情况下会出现下面的提示:

slapadd 这个主要用于 ldap服务没有启动的时候导入
添加一次就够了 第二次会出错
测试LDAP配置
rm -rf /etc/openldap/slapd.d/*
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
chown -R ldap:ldap /etc/openldap/slapd.d
执行第二条命令会返回
config file testing succeeded
设置SLAPD服务
chkconfig --level 235 slapd on
service slapd restart
测试 LDAP
ldapsearch -x -ZZ -h localhost
ldapsearch -x -H ldaps://localhost
ldapsearch -x -H ldaps://192.168.18.142 //这个是你自己的ip
会有如下提示

yf03配置(phpLDAPadmin)
修改配置文件和主机名
cp /etc/hosts /etc/hosts.bak20141203 echo '
192.168.18.142 localhost.localdomain yf01.oyf.xyz yf01 oyf.xyz
192.168.18.137 yf02.oyf.xyz yf02
127.0.0.1 yf03.oyf.xyz yf03
192.168.18.140 yf04.oyf.xyz yf04
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
' > /etc/hosts sed -i -e'2c\HOSTNAME=yf03' /etc/sysconfig/network
关闭selinux
cp /etc/sysconfig/selinux /etc/sysconfig/selinux.bak20141203
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux
关闭防火墙并重启 让主机名和selinux生效
service iptables stop
chkconfig iptables off
reboot
phpLDAPadmin安装
安装EPEL仓库
rpm -ivh http://mirrors.ukfast.co.uk/sites/dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
安装phpLDAPadmin
yum install -y phpldapadmin
修改 phpldapadmin配置文件 添加访问权限
vim /etc/httpd/conf.d/phpldapadmin.conf
在这行后面添加
Allow from ::1
Allow from 192.168.18 //这里修改为你自己的ip段
这个样子的

修改php配置文件 禁止自动登录和php登录配置
vim /etc/phpldapadmin/config.php
//目前这个参数在389行
//$servers->setValue('login','attr','uid');
$servers->setValue('server','host','yf01');
$servers->setValue('server','port',389);
$servers->setValue('server','base',array('dc=oyf,dc=xyz'));
$servers->setValue('login','auth_type','cookie');
$servers->setValue('login','bind_id','cn=Manager,dc=oyf,dc=xyz');
$servers->setValue('login','bind_pass',' ');
完成后开启apache
chkconfig httpd on
service httpd start
网址进入 phpLDAPadmin客户端 就有如下界面
http://192.168.18.130/ldapadmin
上面的ip 换成你自己机器的ip

输入之前slappasswd 设置的密码,然后就登录成功了!

如果觉得文本可以请点击下面的好文要顶!让更多人看到.
本文地址:http://www.cnblogs.com/yafei236/p/4141897.html
好了就写到这里,睡觉觉去了!
参考资料
[1]CentOS 6安装配置LDAP
http://www.zhukun.net/archives/7548
[2]在 CentOS 6 初始化 LDAP Server
http://jamyy.us.to/blog/2012/01/3506.html
[3]【備忘】在 CentOS 6 安裝 phpMyAdmin 與 phpLDAPAdmin
http://jamyy.us.to/blog/2012/10/4172.html
[4]LDAP 入門
http://www.l-penguin.idv.tw/article/ldap-1.htm
[5][翻译]OpenLDAP管理员指南(仅前七章)
http://bbs.chinaunix.net/forum.php?mod=viewthread&action=printable&tid=422726
LDAP环境搭建 OpenLDAP和phpLDAPadmin -- yum版的更多相关文章
- 【Spark机器学习速成宝典】基础篇01Windows下spark开发环境搭建+sbt+idea(Scala版)
注意: spark用2.1.1 scala用2.11.11 材料准备 spark安装包 JDK 8 IDEA开发工具 scala 2.11.8 (注:spark2.1.0环境于scala2.11环境开 ...
- linux中python环境搭建及升级后yum不可用解决方案
1.1 LinuxCentOS 为例.1.1.1 升级 Python(1) 下载 Python 版本$ wget https://www.python.org/ftp/python/2.7.11/Py ...
- go 版本 gRPC 环境搭建(3.0正式版)
之前装过 gRPC 的各个测试版本,有些残余的文件,正式版的安装和之前残留的清除整理如下: 安装 go 版本的 gRPC go 的安装略过.需要 go 1.5 以上版本. $ go version ...
- 授权管理-LDAP-介绍与环境搭建
LDAP介绍 转自:https://blog.csdn.net/tanshizhen119/article/details/79942315 还是先来百度百科介绍. LDAP是轻量目录访问协议,英文全 ...
- MITM Proxy环境搭建
MITM_Proxy环境搭建 环境要求 系统环境要求: Ubuntu 14.04 x64,CentOS 7 x64以上版本系统(建议使用xubuntu 14.04 x64,稳定硬件要求低) Pytho ...
- 基于CentOS7.x gitlab环境搭建,卸载,汉化 --搭建篇
gitlab环境搭建,卸载,汉化 --搭建篇 环境搭建 安装依赖软件 yum -y install policycoreutils openssh-server openssh-clients pos ...
- OpenLDAP与phpldapadmin的搭建
最近一直在看LDAP的东西,把自己的记录下来,以后可以看看. 1:环境 1):关闭防火墙 service iptables stop 2):setenforce 0 vim /etc/sysconfi ...
- openLDAP环境搭建
OpenLDAP搭建 PS:本次实验是基于centos7,OpenLDAP使用2.4.44版本. 一.初始化环境 1.初始化环境 命令如下: ntpdate -u ntp.api.bz & ...
- OpenStack-Ocata版+CentOS7.6 云平台环境搭建 — 8.仪表盘 Dashboard(horizon)安装配置
仪表盘Dashboard(horizon)是一个web接口,使得云平台管理员以及用户可以管理不同的Openstack资源以及服务.这个部署示例使用的是 Apache Web 服务器. 节点配置信息说明 ...
随机推荐
- Pandoc+markdown生成slides
Pandoc+markdown生成slides 参考:http://blog.csdn.net/pizi0475/article/details/50955900 1.安装 http://pandoc ...
- python爬虫实战(2)--爬取百度贴吧
本篇目标 1.对百度贴吧的任意帖子进行抓取 2.指定是否只抓取楼主发帖内容 3.将抓取到的内容分析并保存到文件 1.URL格式的确定 先观察百度贴吧url格式,以中南财经政法大学迎新帖为例,URL我们 ...
- bzoj 1568 李超线段树
博客:http://www.cnblogs.com/mangoyang/p/9979465.html 李超线段树支持两种操作:1:插入一条直线.2:询问在x = c与这些直线的交点中最大的y坐标. 插 ...
- POJ 2176 Folding(区间DP)
题意:给你一个字符串,请把字符串压缩的尽量短,并且输出最短的方案. 例如:AAAAA可压缩为5(A), NEERCYESYESYESNEERCYESYESYES可压缩为2(NEERC3(YES)). ...
- javax.swing.Timer
javax.swing 类 Timer java.lang.Object javax.swing.Timer 所有已实现的接口: Serializable public class Timerexte ...
- Linux-shell实现阳历转农历(序)
好些天没有登陆邮箱,前几天上班打开一看垃圾箱中有一封邮件让我好激动,还是国外友人的英文邮件.^_^大概内容是我早些时候写的一个阳历转农历的shell小程序,他在用的时候发现了bug,但是这个bug我在 ...
- Python程序设计4——控制语句
1 print和import的更多信息 1.1 使用逗号输出 前面已经讲解过如何使用print来打印表达式,可以使用都好来打印多个表达式,只要用逗号隔开即可. >>> print ' ...
- C++的运算符重载 (转)
C++中预定义的运算符的操作对象只能是基本数据类型.但实际上,对于许多用户自定义类型(例如类),也需要类似的运算操作.这时就必须在C++中重新定义这些运算符,赋予已有运算符新的功能,使它能够用于特 ...
- Linux系统命令Top/free的使用及参数详解
1.作用 top命令用来显示执行中的程序进程,使用权限是所有用户. 2.格式 top [-] [d delay] [q] [c] [S] [s] [i] [n] 3.主要参数 d:指定更新的间隔,以秒 ...
- DjVu、PDF中的隐藏文本
作者:马健邮箱:stronghorse_mj@hotmail.com发布:2012.06.11 目录一.背景二.DjVu中的隐藏文本三.PDF中的隐藏文本 一.背景 目前对于扫描电子文档,网上比较流行 ...