LDAP环境搭建 OpenLDAP和phpLDAPadmin -- yum版
前言:
前两天公司要求做一个使用LDAP和Kerberos做一个认证授权系统,然后开始学习LDAP相关知识,期间找了不少博客按照步骤来安装,可是很多博客在配置的时候,都会遇到安装过程中一两个问题卡住了,然后就无法进行下去了,坑了我不少时间,其实我只是想先搭建好环境然后来深入浅出的学习,总结这两天的坑,便有了这篇博文,本次主要是快速上手篇,大部分会采用yum方式安装 力求快速上手,尽量少修改官方配置 最小化的环境,为了详细,文章中图片可能会多一点
正式使用还是要基于源码安装,如果你喜欢源码安装,可以等我后续的源码安装的博文.我也是在学习阶段如果遇到问题希望在留言板提出,我会定时查看,一起共同学习,发现我疏忽的地方.
为了确保文章的正确性,在写这篇文章的时候我有重新安装了一遍!好了话不多说,开始了!
环境要求
系统版本:CentOS-6.5-x86_64-minimal
虚拟机版本:VMware10
SSH客户端版本:Xshell 4 Bulid 0131
虚拟机实验环境:
名称 | 服务器名 | ip | 网址 | 用途 |
OpenLDAP服务器 | LDAP_Cos6.5_64_01 | 192.168.1.142 | yf01.oyf.xyz | openLDAP授权 |
客户机 | Cos6.5_x64_ldap_03 | 192.168.18.130 | yf02.oyf.xyz | phpLDAPadmin客户端 |
注:LDAP_Cos6.5_64_02 是为Kerberos预留的,
oyf.xyz是我之前申请的一个域名,你们可以根据自己的域名修改.
例如 example.com
yf01配置(OpenLDAP)
复制hosts文件备份 cp /etc/hosts /etc/hosts.bak20141203 生成配置文件 echo ‘ 127.0.0.1 localhost.localdomain yf01.oyf.xyz yf01 oyf.xyz 192.168.1.130 yf02.oyf.xyz yf02 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 ‘ > /etc/hosts 查看配置文件是否正确 cat /etc/hosts 修改主机名 sed -i -e‘2c\HOSTNAME=yf01‘ /etc/sysconfig/network 查看主机名是否正确 cat /etc/sysconfig/network 关闭防火墙 service iptables stop chkconfig iptables off 重启服务器 让selinux 生效 reboot
查看状态 sestatus 返回 SELinux status: disabled 显示软件仓库的配置 yum repolist 仓库标识 仓库名称 状态 base CentOS-6 - Base - mirrors.ustc.edu.cn 6,518 extras CentOS-6 - Extras - mirrors.ustc.edu.cn 35 updates CentOS-6 - Updates - mirrors.ustc.edu.cn 405 repolist: 6,958 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 创建证书 cd /etc/pki/tls/certs make slapd.pem
括号里是我填写的值 红色字体
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 []:[email protected] 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 []:[email protected]
PS: 这里输错了如果按住退格键删除会有奇奇怪怪的符号(^H),不能直接按退格键删除,可以按住ctrl+退格键强制删除!!
这条命令可以用来查看生成后的证书的信息
openssl x509 -in /etc/pki/tls/certs/slapd.pem -noout -text Issuer: C=CN, ST=CHENGDU, L=CHENGHUA, O=oyf, OU=YFLDAP, CN=yf01/emailAddress=[email protected] chmod 640 slapd.pem chown :ldap slapd.pem ln -s /etc/pki/tls/certs/slapd.pem /etc/openldap/certs/slapd.pem 创建LDAP加密密码 slappasswd New password: Re-enter new password: {SSHA}fdhCKnBnOCuNh9v6cOEh3Xkm6HJbIsuS 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
70 TLSCACertificateFile /etc/pki/tls/certs/ca-bundle.crt 71 TLSCertificateFile /etc/pki/tls/certs/slapd.pem 72 TLSCertificateKeyFile /etc/pki/tls/certs/slapd.pem database monitor 110 access to * 111 by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read 112 by dn.exact="cn=Manager,dc=oyf,dc=xyz" read 113 by * none 114 115 ####################################################################### 116 # database definitions 117 ####################################################################### 118 119 database bdb 120 suffix "dc=oyf,dc=xyz" 121 checkpoint 1024 15 122 rootdn "cn=Manager,dc=oyf,dc=xyz" rootpw {SSHA}Xrb/0bdbww7pz7Jr+kVSv3LW4PSdyqgu
70 TLSCACertificateFile /etc/pki/tls/certs/ca-bundle.crt
71 TLSCertificateFile /etc/pki/tls/certs/slapd.pem
72 TLSCertificateKeyFile /etc/pki/tls/certs/slapd.pem
database monitor
110 access to *
111 by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read
112 by dn.exact="cn=Manager,dc=oyf,dc=xyz" read
113 by * none
114
115 #######################################################################
116 # database definitions
117 #######################################################################
118
119 database bdb
120 suffix "dc=oyf,dc=xyz"
121 checkpoint 1024 15
122 rootdn "cn=Manager,dc=oyf,dc=xyz"
开启加密
vim /etc/sysconfig/ldap
SLAPD_LDAPS=yes
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 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 slapadd -v -n 2 -l /tmp/root.ldif
正常情况下会出现下面的提示:
slapadd -v -n 2 -l /tmp/root.ldif
added: "dc=oyf,dc=xyz" (00000001) added: "ou=yafei,dc=oyf,dc=xyz" (00000002) added: "ou=groups,dc=oyf,dc=xyz" (00000003) added: "ou=php,dc=oyf,dc=xyz" (00000004) _#################### 100.00% eta none elapsed none fast! Closing DB...
slapadd 这个主要用于 ldap服务没有启动的时候导入
添加一次就够了 第二次会出错
chown -R ldap:ldap /var/lib/ldap chown -R ldap:ldap /etc/openldap/slapd.d 测试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 设置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
yf03配置(phpLDAPadmin)
cp /etc/hosts /etc/hosts.bak20141203 echo ‘ 127.0.0.1 localhost.localdomain yf03.oyf.xyz yf03 192.168.18.142 yf01.oyf.xyz yf01 oyf.xyz ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 ‘ > /etc/hosts cat /etc/hosts sed -i -e‘2c\HOSTNAME=yf03‘ /etc/sysconfig/network cat /etc/sysconfig/network cp /etc/sysconfig/selinux /etc/sysconfig/selinux.bak sed -i ‘s#SELINUX=enforcing#SELINUX=disabled#g‘ /etc/sysconfig/selinux cat /etc/sysconfig/selinux 关闭防火墙 service iptables stop chkconfig iptables off 重启服务器 让selinux 生效 reboot
phpLDAPadmin安装
1 安装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 Order Deny,Allow Deny from all Allow from 127.0.0.1 Allow from ::1 Allow from 192.168.18 //这里修改为你自己的ip段
修改禁止自动登录
vim /etc/phpldapadmin/config.php
目前这个参数在389行 //$servers->setValue(‘login‘,‘attr‘,‘uid‘); $servers->setValue(‘server‘,‘host‘,‘192.168.18.142‘); $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‘,‘ ‘);
输入之前slappasswd 设置的密码,然后就登录成功了!
好了就写到这里,睡觉觉去了!
参考资料
[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
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。