LDAP環境搭建 OpenLDAP和phpLDAPadmin -- yum版

 

前言:
前兩天公司要求作一個使用LDAP和Kerberos作一個認證受權系統,而後開始學習LDAP相關知識,期間找了很多博客按照步驟來安裝,但是不少博客在配置的時候,都會遇到安裝過程當中一兩個問題卡住了,而後就沒法進行下去了,坑了我很多時間,其實我只是想先搭建好環境而後來深刻淺出的學習,總結這兩天的坑,便有了這篇博文,本次主要是快速上手篇,大部分會採用yum方式安裝 力求快速上手,儘可能少修改官方配置 最小化的環境,爲了詳細,文章中圖片可能會多一點
正式使用仍是要基於源碼安裝,若是你喜歡源碼安裝,能夠等我後續的源碼安裝的博文.我也是在學習階段若是遇到問題但願在留言板提出,我會定時查看,一塊兒共同窗習,發現我疏忽的地方.php

爲了確保文章的正確性,在寫這篇文章的時候我有從新安裝了一遍!好了話很少說,開始了!html

環境要求 linux

系統版本:CentOS-6.5-x86_64-minimalshell

虛擬機版本:VMware10apache

SSH客戶端版本:Xshell 4 Bulid 0131vim

 

虛擬機實驗環境:服務器

名稱 服務器名 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預留的,cookie

oyf.xyz是我以前申請的一個域名,大家能夠根據本身的域名修改.app

例如 example.comdom

 

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

 

wps7529.tmp

wps7539.tmp

畫框的都是被修改部分

須要注意的是 這裏的配置參數前面不能有空格,否則會出莫名其妙的問題,例如 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
 

 

正常狀況下會出現下面的提示:

wps753A.tmp

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

會有以下提示

wps754B.tmp

 

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段

這個樣子的

wps754C.tmp

修改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

wps754D.tmp

輸入以前slappasswd 設置的密碼,而後就登陸成功了!

wps754E.tmp

 

 

 

若是以爲文本能夠請點擊下面的好文要頂!讓更多人看到.

本文地址: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

相關文章
相關標籤/搜索