天天看點

Centos6 yum安裝openldap+phpldapadmin+TLS+雙主配置1.概念介紹2. 環境介紹2. 準備工作 3. yum部署ldap4. phpldapadmin安裝 5.ldap用戶端配置6.使用者目錄自動挂載7.配置TLS傳輸加密 8.配置openldap雙主實作高可用 mirrorMode9.另一個ldap管理工具 LDAP Account Manager10.windown上對openldap進行驗證 11.關閉openldap匿名查詢12.  附錄

<a href="http://54im.com/openldap/centos-6-yum-install-openldap-phpldapadmin-tls-%E5%8F%8C%E4%B8%BB%E9%85%8D%E7%BD%AE.html#1.">1.概念介紹</a>

<a href="http://54im.com/openldap/centos-6-yum-install-openldap-phpldapadmin-tls-%E5%8F%8C%E4%B8%BB%E9%85%8D%E7%BD%AE.html#2._">2. 環境介紹</a>

<a href="http://54im.com/openldap/centos-6-yum-install-openldap-phpldapadmin-tls-%E5%8F%8C%E4%B8%BB%E9%85%8D%E7%BD%AE.html#2.__1">2. 準備工作</a>

<a href="http://54im.com/openldap/centos-6-yum-install-openldap-phpldapadmin-tls-%E5%8F%8C%E4%B8%BB%E9%85%8D%E7%BD%AE.html#yumldap">3. yum部署ldap</a>

<a href="http://54im.com/openldap/centos-6-yum-install-openldap-phpldapadmin-tls-%E5%8F%8C%E4%B8%BB%E9%85%8D%E7%BD%AE.html#phpldapadmin">4. phpldapadmin安裝</a>

<a href="http://54im.com/openldap/centos-6-yum-install-openldap-phpldapadmin-tls-%E5%8F%8C%E4%B8%BB%E9%85%8D%E7%BD%AE.html#ldap">5.ldap用戶端配置</a>

<a href="http://54im.com/openldap/centos-6-yum-install-openldap-phpldapadmin-tls-%E5%8F%8C%E4%B8%BB%E9%85%8D%E7%BD%AE.html#6.">6.使用者目錄自動挂載</a>

<a href="http://54im.com/openldap/centos-6-yum-install-openldap-phpldapadmin-tls-%E5%8F%8C%E4%B8%BB%E9%85%8D%E7%BD%AE.html#6.1_">6.1 伺服器端配置</a>

<a href="http://54im.com/openldap/centos-6-yum-install-openldap-phpldapadmin-tls-%E5%8F%8C%E4%B8%BB%E9%85%8D%E7%BD%AE.html#6.2_">6.2 用戶端配置</a>

<a href="http://54im.com/openldap/centos-6-yum-install-openldap-phpldapadmin-tls-%E5%8F%8C%E4%B8%BB%E9%85%8D%E7%BD%AE.html#TLS">7.配置TLS傳輸加密</a>

<a href="http://54im.com/openldap/centos-6-yum-install-openldap-phpldapadmin-tls-%E5%8F%8C%E4%B8%BB%E9%85%8D%E7%BD%AE.html#openldap_mirrorMode">8.配置openldap雙主實作高可用 mirrorMode</a>

<a href="http://54im.com/openldap/centos-6-yum-install-openldap-phpldapadmin-tls-%E5%8F%8C%E4%B8%BB%E9%85%8D%E7%BD%AE.html#ldap_LDAP_Account_Manager">9.另一個ldap管理工具 LDAP Account Manager</a>

<a href="http://54im.com/openldap/centos-6-yum-install-openldap-phpldapadmin-tls-%E5%8F%8C%E4%B8%BB%E9%85%8D%E7%BD%AE.html#windownopenldap">10.windown上對openldap進行驗證</a>

<a href="http://54im.com/openldap/centos-6-yum-install-openldap-phpldapadmin-tls-%E5%8F%8C%E4%B8%BB%E9%85%8D%E7%BD%AE.html#openldap">11.關閉openldap匿名查詢</a>

<a href="http://54im.com/openldap/centos-6-yum-install-openldap-phpldapadmin-tls-%E5%8F%8C%E4%B8%BB%E9%85%8D%E7%BD%AE.html#12._">12.  附錄</a>

<a href="http://54im.com/openldap/centos-6-yum-install-openldap-phpldapadmin-tls-%E5%8F%8C%E4%B8%BB%E9%85%8D%E7%BD%AE.html#OpenSSL">12.1. OpenSSL相關指令:</a>

<a href="http://54im.com/openldap/centos-6-yum-install-openldap-phpldapadmin-tls-%E5%8F%8C%E4%B8%BB%E9%85%8D%E7%BD%AE.html#openldap_1">12.2 快速清除openldap配置</a>

<a href="http://54im.com/openldap/centos-6-yum-install-openldap-phpldapadmin-tls-%E5%8F%8C%E4%B8%BB%E9%85%8D%E7%BD%AE.html#12.3_">12.3 手工資料錄入</a>

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(常用名稱)

Centos6 yum安裝openldap+phpldapadmin+TLS+雙主配置1.概念介紹2. 環境介紹2. 準備工作 3. yum部署ldap4. phpldapadmin安裝 5.ldap用戶端配置6.使用者目錄自動挂載7.配置TLS傳輸加密 8.配置openldap雙主實作高可用 mirrorMode9.另一個ldap管理工具 LDAP Account Manager10.windown上對openldap進行驗證 11.關閉openldap匿名查詢12.  附錄
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

在3台伺服器上均進行如下操作。

dns配置

vi /etc/resolv.conf nameserver 8.8.8.8 nameserver 8.8.4.4

selinux配置

當然生産環境建議還是開啟,我這裡偷懶下先關掉。

<code>setenforce </code><code>0</code>

epel配置

rpm -Uvh http://mirror-fpt-telecom.fpt.net/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm

yum安裝openldap:

1

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

日志配置:

2

3

4

5

6

7

8

mkdir /var/log/slapd

chmod 755 /var/log/slapd/

chown ldap:ldap /var/log/slapd/

sed -i "/local4.*/d" /etc/rsyslog.conf

cat &gt;&gt; /etc/rsyslog.conf &lt;&lt; EOF

local4.*                        /var/log/slapd/slapd.log

EOF

service rsyslog restart

建立管理者密碼,盡量使用高強度密碼

這裡我設定的密碼為 54im.com,生存的{SSHA}DOS0VOBzmvD3beMsuFllLBOi6CAt4Kcj一會配置檔案要用

[root@openldap-master ~]# 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}

vi /etc/openldap/slapd.conf 我這裡列出要修改的項

修改suffix 和rootdn,rootpw,suffix我這裡用了二級域名,如果你想用主域名也可以,寫成dc=54im,dc=com,其中rootpw可以是明文,這裡我們經過SSHA算法加密下,

9

10

11

114 database bdb

115 suffix "dc=openldap,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

這裡有個日志級别的問題

12

13

14

15

16

17

18

19

20

[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

服務啟動後,可以看到生成了幾個資料庫檔案

[root@openldap-master 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 指定搜尋範圍起點

[root@openldap-master openldap]# ldapsearch -x -b "dc=openldap,dc=54im,dc=com"

# extended LDIF

#

# LDAPv3

# base &lt;dc=openldap,dc=54im,dc=com&gt; 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 的密碼 。

[root@openldap-master openldap]# echo "54im.com" |passwd --stdin ivon03

更改使用者 ivon03 的密碼 。

 安裝及配置遷移工具

[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 &gt;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: organizationalUnit

dn: ou=Group,dc=openldap,dc=54im,dc=com

ou: Group

建立使用者群組的資料庫檔案

21

22

23

[root@openldap-master migrationtools]# grep ivon /etc/passwd &gt;user.txt

[root@openldap-master migrationtools]# ./migrate_passwd.pl user.txt ./user.ldif

[root@openldap-master migrationtools]# grep ivon /etc/group &gt;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"

# base &lt;-L&gt; with scope subtree

# filter: dc=openldap,dc=54im,dc=com

result: 34 Invalid DN syntax

text: invalid DN

 遷移系統使用者到ldap資料庫

[root@openldap-master migrationtools]# /etc/init.d/slapd restart

停止 slapd:[确定]

正在啟動 slapd:[确定]

[root@openldap-master 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"

[root@openldap-master migrationtools]# ldapadd -D "cn=Manager,dc=openldap,dc=54im,dc=com" -W -x -f /usr/share/migrationtools/user.ldif

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"

[root@openldap-master migrationtools]# ldapadd -D "cn=Manager,dc=openldap,dc=54im,dc=com" -W -x -f /usr/share/migrationtools/group.ldif

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"

# openldap.54im.com

# People, openldap.54im.com

。。。。省略

result: 0 Success

# numResponses: 10

# numEntries: 9

如果有防火牆,記得打開389端口

yum安裝apache+php環境

yum install httpd php php-bcmath php-gd php-mbstring php-xml php-ldap

yum安裝phpldapadmin

yum install phpldapadmin  #要有epel源

我這裡是yum安裝的,是以config.d下面有phpldapadmin.conf,改下httpd.conf中的servername就可以。

注意:如果是下載下傳的phpldapadmin包接下的話需要修改httpd.conf配置檔案,最檔案最後新增

vi /etc/httpd/conf/httpd.conf 

ServerName openldap.54im.com

Alias /phpldapadmin /usr/share/phpldapadmin/htdocs

Alias /ldapadmin /usr/share/phpldapadmin/htdocs

&lt;Directory /usr/share/phpldapadmin/htdocs&gt;

  Order Deny,Allow

  Deny from all

  Allow from 127.0.0.1 192.168.1.0/24

  Allow from ::1

&lt;/Directory&gt;

修改phpldapadmin配置檔案

[root@openldap-master ~]# vi /etc/phpldapadmin/config.php

# line 397: uncomment, line 398: make it comment

$servers-&gt;setValue('login','attr','dn');

// $servers-&gt;setValue('login','attr','uid');

重新開機httpd服務後通路

Centos6 yum安裝openldap+phpldapadmin+TLS+雙主配置1.概念介紹2. 環境介紹2. 準備工作 3. yum部署ldap4. phpldapadmin安裝 5.ldap用戶端配置6.使用者目錄自動挂載7.配置TLS傳輸加密 8.配置openldap雙主實作高可用 mirrorMode9.另一個ldap管理工具 LDAP Account Manager10.windown上對openldap進行驗證 11.關閉openldap匿名查詢12.  附錄

登入ldap

Centos6 yum安裝openldap+phpldapadmin+TLS+雙主配置1.概念介紹2. 環境介紹2. 準備工作 3. yum部署ldap4. phpldapadmin安裝 5.ldap用戶端配置6.使用者目錄自動挂載7.配置TLS傳輸加密 8.配置openldap雙主實作高可用 mirrorMode9.另一個ldap管理工具 LDAP Account Manager10.windown上對openldap進行驗證 11.關閉openldap匿名查詢12.  附錄

登入後即可新增使用者群組等操作,看了到我們遷移進去的3個使用者群組

Centos6 yum安裝openldap+phpldapadmin+TLS+雙主配置1.概念介紹2. 環境介紹2. 準備工作 3. yum部署ldap4. phpldapadmin安裝 5.ldap用戶端配置6.使用者目錄自動挂載7.配置TLS傳輸加密 8.配置openldap雙主實作高可用 mirrorMode9.另一個ldap管理工具 LDAP Account Manager10.windown上對openldap進行驗證 11.關閉openldap匿名查詢12.  附錄

我這裡用戶端安裝在192.168.1.111 這台伺服器上,這台後面也會做證書伺服器。

[root@openldap-ca ~]#  yum  install openldap-clients nss-pam-ldapd

我們可以在終端使用圖像化界面配置,在crt裡面輸入  authconfig-tui

Centos6 yum安裝openldap+phpldapadmin+TLS+雙主配置1.概念介紹2. 環境介紹2. 準備工作 3. yum部署ldap4. phpldapadmin安裝 5.ldap用戶端配置6.使用者目錄自動挂載7.配置TLS傳輸加密 8.配置openldap雙主實作高可用 mirrorMode9.另一個ldap管理工具 LDAP Account Manager10.windown上對openldap進行驗證 11.關閉openldap匿名查詢12.  附錄

這裡注意,如果有dns的情況下話,可以用域名,否則要綁定hosts或者用IP,TLS這裡我們先不選,後面再介紹

Centos6 yum安裝openldap+phpldapadmin+TLS+雙主配置1.概念介紹2. 環境介紹2. 準備工作 3. yum部署ldap4. phpldapadmin安裝 5.ldap用戶端配置6.使用者目錄自動挂載7.配置TLS傳輸加密 8.配置openldap雙主實作高可用 mirrorMode9.另一個ldap管理工具 LDAP Account Manager10.windown上對openldap進行驗證 11.關閉openldap匿名查詢12.  附錄

authconfig-tui會修改很多配置檔案,先來檢查下

[root@openldap-ca ~]# grep -v "#" /etc/openldap/ldap.conf |grep -v "^$"

TLS_CACERTDIR /etc/openldap/cacerts

URI ldap://openldap.54im.com/

BASE dc=openldap,dc=54im,dc=com

[root@openldap-ca ~]# grep -v "#" /etc/nslcd.conf |grep -v "^$"

uid nslcd

gid ldap

uri ldap://openldap.54im.com/

base dc=openldap,dc=54im,dc=com

ssl no

tls_cacertdir /etc/openldap/cacerts

[root@openldap-ca ~]# grep -v "#" /etc/pam_ldap.conf |grep -v "^$"

pam_password md5

[root@openldap-ca ~]# grep -v "#" /etc/nsswitch.conf |grep -v "^$"

passwd:     files ldap

shadow:     files ldap

group:      files ldap

hosts:      files dns

bootparams: nisplus [NOTFOUND=return] files

ethers:     files

netmasks:   files

networks:   files

protocols:  files

rpc:        files

services:   files sss

netgroup:   files ldap

publickey:  nisplus

automount:  files ldap

aliases:    files nisplus

[root@openldap-ca ~]# grep -v "#" /etc/pam.d/system-auth|grep -v "^$"

auth        required      pam_env.so

auth        sufficient    pam_fprintd.so

auth        sufficient    pam_unix.so nullok try_first_pass

auth        requisite     pam_succeed_if.so uid &gt;= 500 quiet

auth        sufficient    pam_ldap.so use_first_pass

auth        required      pam_deny.so

account     required      pam_unix.so broken_shadow

account     sufficient    pam_localuser.so

account     sufficient    pam_succeed_if.so uid &lt; 500 quiet

account     [default=bad success=ok user_unknown=ignore] pam_ldap.so

account     required      pam_permit.so

password    requisite     pam_cracklib.so try_first_pass retry=3 type=

password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok

password    sufficient    pam_ldap.so use_authtok

password    required      pam_deny.so

session     optional      pam_ldap.so

session     required      pam_limits.so

session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid

session     required      pam_unix.so

session     optional      pam__mkhomedir.so skel=/etc/skel umask=077

[root@openldap-ca ~]# grep "USELDAP" /etc/sysconfig/authconfig

USELDAPAUTH=yes

USELDAP=yes

啟動nslcd服務,并設定為開機啟動

service nslcd start

chkconfig nslcd on

驗證:

[root@openldap-ca ~]# id ivon01

uid=8001(ivon01) gid=8001(ivon01) 組=8001(ivon01)

[root@openldap-ca ~]# id ivon02

uid=8002(ivon02) gid=8002(ivon02) 組=8002(ivon02)

[root@openldap-ca ~]# id ivon03

uid=8003(ivon03) gid=8003(ivon03) 組=8003(ivon03)

[root@openldap-ca ~]# su - ivon01

su: 警告:無法切換到目錄/54im_home/ivon01: 沒有那個檔案或目錄

顯示如上資訊,說明賬戶可以登入,但沒找到使用者主目錄。這需要在本地配置nfs并通過autofs自動挂載伺服器家目錄到本地用戶端

nfs在openldap伺服器上配置,預設centos 6上已經安裝了nfs

[root@openldap-master ~]# /etc/init.d/rpcbind start

[root@openldap-master ~]# /etc/init.d/nfslock start

[root@openldap-master ~]# /etc/init.d/nfs start

啟動 NFS 服務: [确定]

關掉 NFS 配額:[确定]

啟動 NFS mountd:[确定]

啟動 NFS 守護程序:[确定]

正在啟動 RPC idmapd:[确定]

[root@openldap-master ~]# chkconfig rpcbind on

[root@openldap-master ~]# chkconfig nfslock on

[root@openldap-master ~]# chkconfig nfs on

配置nfs

[root@openldap-master ~]# vi /etc/exports

/54im_home 192.168.1.0/24(rw,sync)

如果開了selinux,則需要 setsebool  -P    use_nfs_home_dirs   on

vi /etc/sysconfig/nfs,去掉一些端口的注釋符(可選,如果不取消這些端口注釋,用戶端showmount的時候會報錯,不影響挂載)

LOCKD_TCPPORT=32803

LOCKD_UDPPORT=32769

MOUNTD_PORT=892

STATD_PORT=662

重新開機nfs

配置防火牆

vi /etc/sysconfig/iptables

-A INPUT –p tcp –m state --state NEW –m tcp --dport 111 –j ACCEPT

-A INPUT –p udp –m state --state NEW –m udp --dport 111 –j ACCEPT

-A INPUT –p tcp –m state --state NEW –m tcp --dport 662 –j ACCEPT

-A INPUT –p udp –m state --state NEW –m udp --dport 662 –j ACCEPT

-A INPUT –p tcp –m state --state NEW –m tcp --dport 892 –j ACCEPT

-A INPUT –p udp –m state --state NEW –m udp --dport 892 –j ACCEPT

-A INPUT –p tcp –m state --state NEW –m tcp --dport 2049 –j ACCEPT

-A INPUT –p udp –m state --state NEW –m udp --dport 2049 –j ACCEPT

-A INPUT –p tcp –m state --state NEW –m tcp --dport 32803 –j ACCEPT

-A INPUT –p udp –m state --state NEW –m udp --dport 32769 –j ACCEPT

在用戶端檢查下nfs輸出

[root@openldap-ca ~]# showmount -e openldap.54im.com

Export list for openldap.54im.com:

/54im_home 192.168.1.0/24

預設情況下,centos 6已經安裝了nfs及autofs,如果沒有,則使用yum –y install nfs-utils autofs

(1)service rpcbind start ,chkconfig rpcbind on

(2)service rpcidmapd start ,chkconfig rpcidmapd on

(3)service nfslock start ,chkconfig nfslock on

(4)service netfs start ,chkconfig netfs on

(5)service autofs start ,chkconfig autofs on

配置autofs服務

vi /etc/auto.master ,在最後一行後面加入:

/54im_home /etc/auto.nfs

vi /etc/auto.nfs,輸入如下内容并儲存:

*       -rw,soft,intr      192.168.1.137:/54im_home/&amp;

重新開機下autofs服務:service autofs restart

用戶端測試:

[ivon01@openldap-ca ~]$ pwd

/54im_home/ivon01

[ivon01@openldap-ca ~]$ ls

[ivon01@openldap-ca ~]$ mkdir 54im.com

[root@openldap-ca ~]# su - ivon02

[ivon02@openldap-ca ~]$ df -H

Filesystem                       Size  Used Avail Use% Mounted on

/dev/mapper/VolGroup-lv_root      19G  2.6G   16G  15% /

tmpfs                            258M     0  258M   0% /dev/shm

192.168.1.137:/54im_home/ivon01   19G  2.4G   16G  14% /54im_home/ivon01

192.168.1.137:/54im_home/ivon02   19G  2.4G   16G  14% /54im_home/ivon02

然後在openldap伺服器上檢視nfs共享目錄

[root@openldap-master ~]# ls /54im_home/ivon01/

54im.com

注意事項:

  對/etc/auto.nfs檔案使用*及&amp;通配符時,則/etc/auto.master裡的挂載點必須與伺服器的挂載點同名同目錄/nfshome,否則用戶端su – 切換時會提示找不到目錄。

  不建議把ldap使用者直接建立在/home檔案夾裡。否則由于/etc/auto.nfs檔案裡的*及&amp;符号的自動比對的作用,客戶autofs會自動在記憶體中建立/home目錄,會隐藏掉實際的/home目錄

配置openldap的加密,可以用自簽名證書,也可以用CA中心簽名,這裡我的CA中心簽名,CA伺服器是 192.168.1.111

前言:

為啥要用TLS?

Openldap預設使用簡單驗證,對slapd的所有通路都使用明文密碼通過未加密通道進行。為了確定資訊安全,需要對資訊進行加密傳輸,SSL(Secure Sockets Layer)是一個可靠的解決方案。

它使用 X.509 證書,由可信任第三方(Certificate Authority (CA))進行數字簽名的一個标準格式的資料。有效的數字簽名意味着已簽名的資料沒有被篡改。如果簽名的資料被更改,将不會通過驗證

SSL/TLS 加密原理簡介

SSL/TLS 是基于 PKI 機制的加密方式,包括證書認證、密鑰交換、非對稱加密、對稱加密。SSL/TLS 采用 CA 作為服務端和用戶端都信賴的具有權威性的組織,證書的頒發和認證都依賴于 CA,并假定 CA 頒發的證書是可靠的、可信賴的,證書裡面的内容是真實的、有效的,并可用于客戶機和伺服器進行安全的可靠的通信加密。

SSL/TLS 證書用來認證伺服器和客戶機雙方的身份,并用于密鑰交換時候的非對稱加密。密鑰交換完畢之後,就可以用這個密鑰做通信資料的對稱加密了,具體的加密算法是由客戶機和伺服器互相協商得來。伺服器和客戶機由于 SSL/TLS 庫的不同以及使用者的配置不同,雙方支援的算法清單不完全相同,當雙方做 SSL/TLS 握手的時候,就需要将自己支援的算法清單及優先順序告知對方,一旦對方按照優先順序找到了第一個支援的算法,那麼協商完成,否則雙方協商失敗,SSL/TLS 連接配接斷開

安裝openssl

yum install openssl

準備工作

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

[root@openldap-ca ~]# cd /etc/pki/CA/

[root@openldap-ca CA]# ls

certs  crl  newcerts  private

[root@openldap-ca CA]# touch index.txt

[root@openldap-ca CA]# echo 01 &gt;serial

certs  crl  index.txt  newcerts  private  serial

[root@openldap-ca CA]#vi /etc/pki/tls/openssl.cnf

dir             = /etc/pki/CA           # 根目錄

certs           = $dir/certs            # 公鑰目錄

crl_dir         = $dir/crl              # 過期,吊銷證書目錄

database        = $dir/index.txt        # 證書簽名記錄檔案

#unique_subject = no                    # Set to 'no' to allow creation of

                                        # several ctificates with same subject.

new_certs_dir   = $dir/newcerts         # 新的公鑰證書目錄

certificate     = $dir/CA.crt           # CA中心的公鑰

serial          = $dir/serial           # 每次簽名序号自動+1

crlnumber       = $dir/crlnumber        # the current crl number

                                        # must be commented out to leave a V1 CRL

crl             = $dir/crl.pem          # 吊銷的證書

private_key     = $dir/private/CA.key   # 私鑰

RANDFILE        = $dir/private/.rand    # private random number file

省略若幹

default_days             = 365 證書有效期(預設一年)

default_crl_days      = 30 吊銷清單更新周期

[ policy_match ] 政策比對

countryName                              = match 必須比對(城市名)

stateOrProvinceName              = match (國家或州名)

organizationName                     = match (組織名)

organizationalUnitName          = optional可選的比對(機關名)

commonName                   = supplied使用者提供的,必須不一樣 (常用名)

emailAddress                              = optional 郵件位址,可以不填

...

[ req_distinguished_name ]

countryName_default     = CN 設定國家

stateOrProvinceName_default        = BeiJing 省

localityNmae_default      = BeiJing 城市

0.organizationName_default           = Example, Inc. 組織

 CA伺服器生存自己的私鑰,公鑰(證書)

[root@openldap-ca CA]# (umask 077;openssl genrsa -out private/CA.key)

Generating RSA private key, 1024 bit long modulus

................++++++

..............++++++

e is 65537 (0x10001)

利用剛才建立的RSA私鑰建立自簽署的根證書

[root@openldap-ca CA]# openssl req -new -x509 -key private/CA.key &gt;CA.crt

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [XX]:CN

State or Province Name (full name) []:SHANGHAI

Locality Name (eg, city) [Default City]:BAOSHAN

Organization Name (eg, company) [Default Company Ltd]:54IM

Organizational Unit Name (eg, section) []:IT

Common Name (eg, your name or your server's hostname) []:openldap-ca.54im.com

Email Address []:[email protected]

 openldap伺服器生成私鑰,并生成證書請求檔案

在192.168.1.137這台伺服器上執行,生成私鑰的時候我選擇了不要密碼,否則啟動服務的時候還要輸入次密碼

[root@openldap-master ~]# openssl genrsa -out 54im-ldap.key

....................++++++

......................++++++

[root@openldap-master ~]# openssl req -new -key 54im-ldap.key -out 54im-ldap.csr

Common Name (eg, your name or your server's hostname) []:openldap.54im.com

Please enter the following 'extra' attributes

to be sent with your certificate request

A challenge password []:

An optional company name []:

 向CA伺服器請求證書

[root@openldap-master ~]# scp 54im-ldap.csr openldap-ca.54im.com:/tmp

[email protected]'s password:

54im-ldap.csr                                                                                                                                                               100%  700     0.7KB/s   00:00

 CA伺服器頒發證書

[root@openldap-ca CA]# openssl ca -in /tmp/54im-ldap.csr -out /tmp/54im-ldap.crt

Using configuration from /etc/pki/tls/openssl.cnf

Check that the request matches the signature

Signature ok

Certificate Details:

        Serial Number: 1 (0x1)

        Validity

            Not Before: May 22 07:58:15 2014 GMT

            Not After : May 22 07:58:15 2015 GMT

        Subject:

            countryName               = CN

            stateOrProvinceName       = SHANGHAI

            organizationName          = 54IM

            organizationalUnitName    = IT

            commonName                = openldap.54im.com

            emailAddress              = [email protected]

        X509v3 extensions:

            X509v3 Basic Constraints:

                CA:FALSE

            Netscape Comment:

                OpenSSL Generated Certificate

            X509v3 Subject Key Identifier:

                7D:50:67:5B:69:36:B8:FD:9F:9B:8E:E9:EB:4D:08:C0:A1:8D:3C:FC

            X509v3 Authority Key Identifier:

                keyid:92:7C:3D:9C:5E:03:34:02:07:3B:0C:16:1A:BD:85:21:FE:53:54:39

Certificate is to be certified until May 22 07:58:15 2015 GMT (365 days)

Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y

Write out database with 1 new entries

Data Base Updated

 openldap伺服器下載下傳自己的證書

[root@openldap-ca tmp]# scp -r /tmp/54im-ldap.crt openldap.54im.com:/root

[email protected]'s password:

54im-ldap.crt          

[root@openldap-ca CA]# scp -r CA.crt openldap.54im.com:/root

CA.crt

openldap伺服器安裝證書:

[root@openldap-master ~]# vi /etc/openldap/ldap.conf

URI     ldap://127.0.0.1/

BASE    dc=openldap,dc=54im,dc=com

[root@openldap-master ~]#/etc/openldap/slapd.conf

TLSCACertificateFile /etc/openldap/cacerts/CA.crt

TLSCertificateFile /etc/openldap/cacerts/54im-ldap.crt

TLSCertificateKeyFile /etc/openldap/cacerts/54im-ldap.key

[root@openldap-master ~]# mkdir /etc/openldap/cacerts/

[root@openldap-master ~]# cp /root/CA.crt /etc/openldap/cacerts/

[root@openldap-master ~]# cp /root/54im-ldap. /etc/openldap/cacerts/

54im-ldap.crt  54im-ldap.csr  54im-ldap.key  

[root@openldap-master ~]# cp /root/54im-ldap.* /etc/openldap/cacerts/

[root@openldap-master ~]# chown ldap.ldap /etc/openldap/cacerts/

[root@openldap-master ~]# service slapd stop

這裡我們采用這種方式來啟動ldap,這樣可以監聽加密和非加密的端口,

[root@openldap-master ~]# slapd -h "ldap:/// ldaps:///"

如果隻想監聽加密的

[root@openldap-master ~]# slapd -h "ldaps:///"

[root@openldap-master ~]# netstat -ntpl |grep slapd

tcp        0      0 0.0.0.0:636                 0.0.0.0:*                   LISTEN      25671/slapd        

tcp        0      0 0.0.0.0:389                 0.0.0.0:*                   LISTEN      25671/slapd        

tcp        0      0 :::636                      :::*                        LISTEN      25671/slapd        

tcp        0      0 :::389                      :::*                        LISTEN      25671/slapd

CA伺服器釋出自己的公鑰,openldap用戶端下載下傳公鑰

用戶端有圖像界面的話可以用setup配置,運作system-config-authentication,然後勾選使用TLS,輸入證書連結(可以用ftp或者http把CA伺服器的公鑰共享出來)

我這裡直接scp過去(由于用戶端和我ca伺服器在一台,這裡我隻要複制下就可以,其他同學該rz的rz,該scp的scp吧)

cp /etc/pki/CA/private/CA.key /etc/openldap/cacerts/

openldap用戶端修改配置

之前的是ldap,現在改為ldaps

[root@openldap-ca CA]# cat /etc/openldap/ldap.conf

URI ldaps://openldap.54im.com/

然後重新開機/etc/init.d/nslcd restart

 openldap用戶端測試

[root@openldap-ca CA]# ldapwhoami -v -x -Z

ldap_initialize( &lt;DEFAULT&gt; )

ldap_start_tls: Operations error (1)

        additional info: TLS already started

anonymous

Result: Success (0)

如果遇到如下錯誤:

#ldapwhoami -v -x -Z

ldap_initialize( )

ldap_start_tls: Can’t contact LDAP server (-1)

additional info: TLS error -8172:Peer’s certificate issuer has been marked as not trusted by the user.

ldap_sasl_bind(SIMPLE): Can’t contact LDAP server (-1)

在用戶端的ldap.conf中加了“TLS_REQCERT allow”,重新開機nslcd 後出現了正常結果

 ldap驗證帳号密碼

這裡的密碼就是之前在openldap伺服器端建立的系統帳号密碼

[root@openldap-ca CA]# ldapwhoami -D "uid=ivon01,ou=People,dc=openldap,dc=54im,dc=com" -W -H ldaps://openldap.54im.com -v

ldap_initialize( ldaps://openldap.54im.com:636/??base )

dn:uid=ivon01,ou=People,dc=openldap,dc=54im,dc=com

 搜尋ldap伺服器域資訊

[root@openldap-ca CA]# ldapsearch -x -b "dc=openldap,dc=54im,dc=com" -H ldaps://openldap.54im.com

首先我們來配置一台和主一樣的openldap,保證以下條件

一、保證兩台伺服器裡都配置的一樣的根dc,比如我的是:dc=openldap,dc=54im,dc=com。

二、兩邊的管理帳戶都有cn=Manager,dc=openldap,dc=54im,dc=com,密碼都為54im.com。

三、保證目前AB兩台伺服器的資料完全一緻。如果閑麻煩可以先導出所有資料,然後删除當作全新安裝,待同步完成後從其中一台導入即可。

Openldap 2.4的同步機制已經和2.3完全不同,我這裡的同步機制采用的是鏡像模式,并且雙向鏡像。

yum安裝ldap和http php phpldapadmin

yum install openldap openldap-servers openldap-clients openldap-devel compat-openldap httpd php php-bcmath php-gd php-mbstring php-xml php-ldap phpldapadmin

 配置slapd.conf

suffix "dc=ldap,dc=54im,dc=com"

rootdn "cn=Manager,dc=openldap,dc=54im,dc=com"

rootpw {SSHA}hHZMkvQ3bj07PYOb6emsZHZfGtXvd5g8 //這裡用上面産生的密碼

配置phpldapadmin

ServerName openldap2.54im.com

最後啟動slpad服務

通路openldap2.54im.com 的phpldapadmin

Centos6 yum安裝openldap+phpldapadmin+TLS+雙主配置1.概念介紹2. 環境介紹2. 準備工作 3. yum部署ldap4. phpldapadmin安裝 5.ldap用戶端配置6.使用者目錄自動挂載7.配置TLS傳輸加密 8.配置openldap雙主實作高可用 mirrorMode9.另一個ldap管理工具 LDAP Account Manager10.windown上對openldap進行驗證 11.關閉openldap匿名查詢12.  附錄

在openldap.54im.com上導出下資料

Centos6 yum安裝openldap+phpldapadmin+TLS+雙主配置1.概念介紹2. 環境介紹2. 準備工作 3. yum部署ldap4. phpldapadmin安裝 5.ldap用戶端配置6.使用者目錄自動挂載7.配置TLS傳輸加密 8.配置openldap雙主實作高可用 mirrorMode9.另一個ldap管理工具 LDAP Account Manager10.windown上對openldap進行驗證 11.關閉openldap匿名查詢12.  附錄

導出後會是文本的形式顯示在界面上,我們把内容負責到一個檔案裡面叫 openldap.ldif

在openldap2.54im.com上導入資料

Centos6 yum安裝openldap+phpldapadmin+TLS+雙主配置1.概念介紹2. 環境介紹2. 準備工作 3. yum部署ldap4. phpldapadmin安裝 5.ldap用戶端配置6.使用者目錄自動挂載7.配置TLS傳輸加密 8.配置openldap雙主實作高可用 mirrorMode9.另一個ldap管理工具 LDAP Account Manager10.windown上對openldap進行驗證 11.關閉openldap匿名查詢12.  附錄

在openldap 節點2上我們可以看到 把openldap.54im.com 上的資料導入進去了,目前為止2邊的資料已經完全一緻了。

配置openldap.54im.com上的slapd.conf

注意先備份下原來的配置檔案

index entryCSN,entryUUID eq //新增

moduleload syncprov.la   //把前面的注釋去掉

modulepath /usr/lib/openldap //把前面的注釋去掉

modulepath /usr/lib64/openldap //把前面的注釋去掉

配置檔案末尾新增

serverID 1

overlay syncprov

syncrepl rid=001

        provider=ldap://192.168.1.137:389

        type=refreshAndPersist

        searchbase="dc=openldap,dc=54im,dc=com"

        schemachecking=on

        bindmethod=simple

        binddn="cn=Manager,dc=openldap,dc=54im,dc=com"

        credentials=54im.com

        retry="60 +"

mirrormode on

由于openldap2上我沒有配置TLS,是以這裡主主同步我用ldap 389來同步。當然我openldap上同時開了 ldap和ldaps

 這裡解釋下各參數含義

syncrepl rid=001     #和openldap2 伺服器保持一緻,告訴openldap2 現在和你是同一組。

provider=ldap://192.168.1.137:389   #B伺服器LDAP的IP及端口

type=refreshAndPersist   #設定為持續同步

searchbase="dc=openldap,dc=54im,dc=com"     #從B伺服器同步dc=openldap,dc=54im,dc=com

schemachecking=on       #schema驗證開啟

bindmethod=simple     #密碼驗證為簡單模式(即明文,此處你可以改為加密)

binddn="cn=Manager,dc=lhg,dc=com"     #使用cn=Manager,dc=openldap,dc=54im,dc=com使用者進行讀取(openldap2伺服器上必須有該使用者)

credentials=54im.com     #密碼為54im.com

retry="60 +"     #重試為60秒,60和“+”之間必須有空格

#以上幾個都是syncrepl的參數,可以考慮在一行裡完成,我這裡在最前面用一個TAB做了換行。

mirrormode              on     #開啟鏡像模式

重新開機ldap服務

killall -9 slapd slapd -h ldap:/// ldaps:///

配置openldap2.54im.com上的slapd.conf

serverID 2

        provider=ldap://192.168.1.143:389

openldap2 伺服器上我沒有配置TLS,這裡我可以直接重新開機ldap服務  /etc/init.d/slapd restart

在openldap.54im.com上新增使用者

Centos6 yum安裝openldap+phpldapadmin+TLS+雙主配置1.概念介紹2. 環境介紹2. 準備工作 3. yum部署ldap4. phpldapadmin安裝 5.ldap用戶端配置6.使用者目錄自動挂載7.配置TLS傳輸加密 8.配置openldap雙主實作高可用 mirrorMode9.另一個ldap管理工具 LDAP Account Manager10.windown上對openldap進行驗證 11.關閉openldap匿名查詢12.  附錄

這裡可以指定使用者所屬組,使用者的shell

Centos6 yum安裝openldap+phpldapadmin+TLS+雙主配置1.概念介紹2. 環境介紹2. 準備工作 3. yum部署ldap4. phpldapadmin安裝 5.ldap用戶端配置6.使用者目錄自動挂載7.配置TLS傳輸加密 8.配置openldap雙主實作高可用 mirrorMode9.另一個ldap管理工具 LDAP Account Manager10.windown上對openldap進行驗證 11.關閉openldap匿名查詢12.  附錄

确定資訊無誤,點送出就完成建立使用者

Centos6 yum安裝openldap+phpldapadmin+TLS+雙主配置1.概念介紹2. 環境介紹2. 準備工作 3. yum部署ldap4. phpldapadmin安裝 5.ldap用戶端配置6.使用者目錄自動挂載7.配置TLS傳輸加密 8.配置openldap雙主實作高可用 mirrorMode9.另一個ldap管理工具 LDAP Account Manager10.windown上對openldap進行驗證 11.關閉openldap匿名查詢12.  附錄

可以看到在People這個ou已經有我們建立的使用者了

Centos6 yum安裝openldap+phpldapadmin+TLS+雙主配置1.概念介紹2. 環境介紹2. 準備工作 3. yum部署ldap4. phpldapadmin安裝 5.ldap用戶端配置6.使用者目錄自動挂載7.配置TLS傳輸加密 8.配置openldap雙主實作高可用 mirrorMode9.另一個ldap管理工具 LDAP Account Manager10.windown上對openldap進行驗證 11.關閉openldap匿名查詢12.  附錄

在openldap2.54im.com上檢視使用者是否同步,并删掉使用者,

Centos6 yum安裝openldap+phpldapadmin+TLS+雙主配置1.概念介紹2. 環境介紹2. 準備工作 3. yum部署ldap4. phpldapadmin安裝 5.ldap用戶端配置6.使用者目錄自動挂載7.配置TLS傳輸加密 8.配置openldap雙主實作高可用 mirrorMode9.另一個ldap管理工具 LDAP Account Manager10.windown上對openldap進行驗證 11.關閉openldap匿名查詢12.  附錄
Centos6 yum安裝openldap+phpldapadmin+TLS+雙主配置1.概念介紹2. 環境介紹2. 準備工作 3. yum部署ldap4. phpldapadmin安裝 5.ldap用戶端配置6.使用者目錄自動挂載7.配置TLS傳輸加密 8.配置openldap雙主實作高可用 mirrorMode9.另一個ldap管理工具 LDAP Account Manager10.windown上對openldap進行驗證 11.關閉openldap匿名查詢12.  附錄

在openldap2.54im.com上新增組,然後看openldap.54im.com上是否也進行同步

Centos6 yum安裝openldap+phpldapadmin+TLS+雙主配置1.概念介紹2. 環境介紹2. 準備工作 3. yum部署ldap4. phpldapadmin安裝 5.ldap用戶端配置6.使用者目錄自動挂載7.配置TLS傳輸加密 8.配置openldap雙主實作高可用 mirrorMode9.另一個ldap管理工具 LDAP Account Manager10.windown上對openldap進行驗證 11.關閉openldap匿名查詢12.  附錄
Centos6 yum安裝openldap+phpldapadmin+TLS+雙主配置1.概念介紹2. 環境介紹2. 準備工作 3. yum部署ldap4. phpldapadmin安裝 5.ldap用戶端配置6.使用者目錄自動挂載7.配置TLS傳輸加密 8.配置openldap雙主實作高可用 mirrorMode9.另一個ldap管理工具 LDAP Account Manager10.windown上對openldap進行驗證 11.關閉openldap匿名查詢12.  附錄

如果平時帳号操作比較頻繁的話,推薦使用ldap account manager這個工具。

LDAPAccountManager(LAM)是一個用來管理儲存在一個LDAP目錄中的使用者的web前端應用程式,管理系統,管理者可以通過加密的方式進行操作,增強了安全性。LAM支援管理的帳号類型有Samba2/3、Unix位址簿接口和計算機需要的資訊,包括NIS映射、E-mail假名,MAC位址等。

LDAP Account Manager強大功能

1、使用LAM,可以通過Web接口較為直覺的、簡便的管理存儲在LDAP目錄裡的使用者、使用者組和計算機系統賬戶。

2、管理Unix的使用者、使用者組、主機、域名。

3、強大的過濾和排序功能。

4、帳号屬性管理。

5、多構造屬性。

6、直覺樹狀檢視模式。

7、計劃檢視模式。

9、所有帳号可導出為PDF檔案格式。

10、管理使用者、使用者組、配額和自動建立删除使用者的Home目錄。

11、支援LDAP+SSL加密模式。

12、多國語言支援,如Catalan、Chinese(Traditional)等。

安裝需求

1、PHP5語言環境和Perl語言環境。

2、OpenLDAP2.0或更高版本。

3、支援CSS的網頁浏覽器。

4、Apache WebServer,建議安裝SSL、PHP-Module(PHP-Module with ldap、Gettext、XML、Mcrypt+mhash)等子產品。

在CentOS6.5安裝LDAP Account Manager比較友善,隻用用官方提供的rpm包安裝。

下載下傳安裝:

wget http://prdownloads.sourceforge.net/lam/ldap-account-manager-4.5-0.fedora.1.noarch.rpm

rpm -ivh ldap-account-manager-4.5-0.fedora.1.noarch.rpm

這裡會自動在httpd.conf生成配置檔案,非常友善。

cat /etc/httpd/conf.d/lam.apache.conf

 配置檔案修改

[root@openldap-master config]# cat /usr/share/ldap-account-manager/config/lam.conf | egrep -v "^#|^$"

serverURL: ldap://localhost:389

admins: cn=Manager,dc=openldap,dc=54im,dc=com

passwd: {SSHA}Nbd31hSBKRDW0BqepRYsGpvzC3f26Iib

treesuffix: dc=openldap,dc=54im,dc=com

defaultLanguage: en_GB.utf8:UTF-8:English (Great Britain)

scriptPath:

scriptServer:

scriptRights: 750

cachetimeout: 5

searchLimit: 0

modules: posixAccount_minUID: 10000

modules: posixAccount_maxUID: 30000

modules: posixAccount_minMachine: 50000

modules: posixAccount_maxMachine: 60000

modules: posixGroup_minGID: 10000

modules: posixGroup_maxGID: 20000

modules: posixGroup_pwdHash: SSHA

modules: posixAccount_pwdHash: SSHA

activeTypes: user,group,host,smbDomain

types: suffix_user: ou=People,dc=openldap,dc=54im,dc=com

types: attr_user: #uid;#givenName;#sn;#uidNumber;#gidNumber

types: modules_user: inetOrgPerson,posixAccount,shadowAccount,sambaSamAccount

types: suffix_group: ou=group,dc=openldap,dc=54im,dc=com

types: attr_group: #cn;#gidNumber;#memberUID;#description

types: modules_group: posixGroup,sambaGroupMapping

types: suffix_host: ou=machines,dc=openldap,dc=54im,dc=com

types: attr_host: #cn;#description;#uidNumber;#gidNumber

types: modules_host: account,posixAccount,sambaSamAccount

types: suffix_smbDomain: dc=openldap,dc=54im,dc=com

types: attr_smbDomain: sambaDomainName:Domain name;sambaSID:Domain SID

types: modules_smbDomain: sambaDomain

lamProMailSubject: Your password was reset

lamProMailText: Dear @@givenName@@ @@sn@@,+::++::+your password was reset to: @@newPassword@@+::++::++::+Best regards+::++::+deskside support+::+

 登入:

Centos6 yum安裝openldap+phpldapadmin+TLS+雙主配置1.概念介紹2. 環境介紹2. 準備工作 3. yum部署ldap4. phpldapadmin安裝 5.ldap用戶端配置6.使用者目錄自動挂載7.配置TLS傳輸加密 8.配置openldap雙主實作高可用 mirrorMode9.另一個ldap管理工具 LDAP Account Manager10.windown上對openldap進行驗證 11.關閉openldap匿名查詢12.  附錄

配置檔案中有機器這個OU,資料庫中沒有,是以這裡提示建立machines這個OU

Centos6 yum安裝openldap+phpldapadmin+TLS+雙主配置1.概念介紹2. 環境介紹2. 準備工作 3. yum部署ldap4. phpldapadmin安裝 5.ldap用戶端配置6.使用者目錄自動挂載7.配置TLS傳輸加密 8.配置openldap雙主實作高可用 mirrorMode9.另一個ldap管理工具 LDAP Account Manager10.windown上對openldap進行驗證 11.關閉openldap匿名查詢12.  附錄
Centos6 yum安裝openldap+phpldapadmin+TLS+雙主配置1.概念介紹2. 環境介紹2. 準備工作 3. yum部署ldap4. phpldapadmin安裝 5.ldap用戶端配置6.使用者目錄自動挂載7.配置TLS傳輸加密 8.配置openldap雙主實作高可用 mirrorMode9.另一個ldap管理工具 LDAP Account Manager10.windown上對openldap進行驗證 11.關閉openldap匿名查詢12.  附錄

可以按樹形結構檢視

Centos6 yum安裝openldap+phpldapadmin+TLS+雙主配置1.概念介紹2. 環境介紹2. 準備工作 3. yum部署ldap4. phpldapadmin安裝 5.ldap用戶端配置6.使用者目錄自動挂載7.配置TLS傳輸加密 8.配置openldap雙主實作高可用 mirrorMode9.另一個ldap管理工具 LDAP Account Manager10.windown上對openldap進行驗證 11.關閉openldap匿名查詢12.  附錄

在windows想驗證自己搭建的openldap是否配置成功,有個圖像化的操作界面,首先電腦上得安裝java軟體jdk-8u5-windows-x64.exe。(不是浏覽器那個java插件)

軟體下載下傳:http://pan.baidu.com/s/1ntHQF4P

軟體解壓後,運作lbe.bat這個

Centos6 yum安裝openldap+phpldapadmin+TLS+雙主配置1.概念介紹2. 環境介紹2. 準備工作 3. yum部署ldap4. phpldapadmin安裝 5.ldap用戶端配置6.使用者目錄自動挂載7.配置TLS傳輸加密 8.配置openldap雙主實作高可用 mirrorMode9.另一個ldap管理工具 LDAP Account Manager10.windown上對openldap進行驗證 11.關閉openldap匿名查詢12.  附錄
Centos6 yum安裝openldap+phpldapadmin+TLS+雙主配置1.概念介紹2. 環境介紹2. 準備工作 3. yum部署ldap4. phpldapadmin安裝 5.ldap用戶端配置6.使用者目錄自動挂載7.配置TLS傳輸加密 8.配置openldap雙主實作高可用 mirrorMode9.另一個ldap管理工具 LDAP Account Manager10.windown上對openldap進行驗證 11.關閉openldap匿名查詢12.  附錄

預設openldap匿名查詢開了,是以隻要别人知道你的openldap伺服器ip就可以掃描到你的組織架構,OU,使用者等資訊,這些對外公布是不安全的。

Centos6 yum安裝openldap+phpldapadmin+TLS+雙主配置1.概念介紹2. 環境介紹2. 準備工作 3. yum部署ldap4. phpldapadmin安裝 5.ldap用戶端配置6.使用者目錄自動挂載7.配置TLS傳輸加密 8.配置openldap雙主實作高可用 mirrorMode9.另一個ldap管理工具 LDAP Account Manager10.windown上對openldap進行驗證 11.關閉openldap匿名查詢12.  附錄

比如上面這個圖,我隻輸入了openldap的域名,勾上匿名,就可以查到你得額Base DN,然後儲存後,就可以連接配接看到你整個組織架構了。

怎麼關閉openldap的匿名查詢呢,隻要在slapd.conf配置檔案中加入disallow bind_anon即可(加在 allow bind_v2 這行後面)。

Centos6 yum安裝openldap+phpldapadmin+TLS+雙主配置1.概念介紹2. 環境介紹2. 準備工作 3. yum部署ldap4. phpldapadmin安裝 5.ldap用戶端配置6.使用者目錄自動挂載7.配置TLS傳輸加密 8.配置openldap雙主實作高可用 mirrorMode9.另一個ldap管理工具 LDAP Account Manager10.windown上對openldap進行驗證 11.關閉openldap匿名查詢12.  附錄

發現已經連接配接不上我們的openldap了。

建立CA中心:( umask 77; openssl genrsa -out private/my-ca.key -des3 2048 )

openssl req -new -x509 -key private/my-ca.key -days 365 &gt; my-ca.crt

私鑰加密:openssl rsa -in encrypted.key -out unencrypted.key

私鑰解密:openssl rsa -in unencrypted.key -out encrypted.key

生成私鑰:( umask 77; openssl genrsa 1024 &gt; dovecot.key )

生成CSR:(umask 77; openssl req -new -key somefile.key -out somefile.csr )

可用/etc/pki/tls/certs/Makefile建立CSR

檢視CSR:openssl req -noout -in somefile.csr -text

建立CA簽名證書:openssl ca -in my.csr -out my.crt

證書吊銷:openssl ca -revoke badcert.crt

生成證書吊銷清單CRL:openssl ca -gencrl -out revoked.crl

生成DER供firefox使用:openssl crl -in revoked.crl -outform. DER -out revoked.der.crl

檢查CRL内容:openssl crl -in revoked.crl -noout -text

附:兩種快速清除配置、重新導入資料的配置指令

==================     前面五行都是相同的   =====================

service slapd stop

rm -rf /etc/openldap/slapd.d/*

rm -rf /var/lib/ldap/*

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

cd  /usr/share/migrationtools

==================     以下為第一種方法   =====================

slapadd -v -l frontend.ldif

slapadd -v -l user.ldif

slapadd -v -l groups.ldif

slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d

chown -R ldap:ldap /var/lib/ldap

chown -R ldap:ldap /etc/openldap/slapd.d

service slapd start          //使用slapadd添加完檔案後才啟動資料庫

==================     以下為第二種方法   =====================

service slapd start          //lapdadd指令必須先啟動資料庫

ldapadd -x -D cn=Manager,dc=kingmed,dc=com -W -f frontend.ldif

ldapadd -x -D cn=Manager,dc=kingmed,dc=com -W -f user.ldif

ldapadd -x -D cn=Manager,dc=kingmed,dc=com -W -f groups.ldif

手動錄入方法

第一步是要建立DN:

    # ldapadd -x -D 'cn=root,dc=openldap,dc=54im,dc=com' -W

    dn: dc=openldap,dc=54im,dc=com

    objectClass: dcObject

    objectClass: organization

    dc: openldap

    o: Corporation

    description: d Corporation

注意:如果你用複制/粘貼功能把以上内容拷貝過去,一定要注意每行後面不要有空格,建議還是手工輸入,按Ctrl+d存盤。

第二步是建立RDN:

    # ldapadd -x -D 'cn=root,dc=openldap,dc=54im,dc=com' -W        

    #-x表示用簡單驗證,-D表示指定目錄,-W表示彈出密碼輸入提示

輸入密碼,這裡的密碼是在配置檔案中rootpw項設定的密碼,不是作業系統中root使用者的密碼。驗證通過後就可輸入以下内容:

    dn: uid=qq,dc=openldap,dc=54im,dc=com

    objectClass: person

    objectClass: organizationalPerson

    objectClass: inetOrgPerson

    uid: qq

    cn: qq

    sn: qq

    telephoneNumber: 138888888

    description: openldap test

    telexNumber: tex-8888888

    street: my street

    postOfficeBox: postofficebox

    displayName: qqdisplay

    homePhone: home1111111

    mobile: mobile99999

    mail:[email protected]

輸入完所有資訊後,按Ctrl+d結束存盤。如果出現出錯資訊,請查一下對象類和屬性的對應關系有沒有錯或輸入失誤。初學者就容易出錯的地方是對象類和屬性的對應關系沒有處理好。對象類和屬性是在schema文檔中定義的。它們之間的關系是這樣的,對象類中有些屬性是必選的,有些屬性是可選的。錄入資訊的屬性必須在對象類中有定義才能用。

輸入以下指令可查詢到剛才輸入的資訊。

# ldapsearch -x -b 'dc=openldap,dc=54im,dc=com'            

-b選項是設定目錄起點,如果設定了用戶端的BASE配置參數,該項可不用。

如果按以上配置檔案設定了acl,用上面的查詢指令是查詢不到受保護的内容的。如上面的userPassword and mail。要查詢到這些受限内容,需要通過驗證才可以:

# ldapsearch -x -LLL -h openldap.54im.com -b 'dc=openldap,dc=54im,dc=com' -D 'uid=qq,dc=openldap,dc=54im,dc=com' -W 'uid=qq'

接着提示輸入密碼。輸入userPassword的密碼回車,所有資訊就都出來了。

本文參考:

http://www.server-world.info/en/note?os=CentOS_6&amp;p=ldap&amp;f=4

http://iceblood.blog.163.com/blog/static/11331322720125843938486/

http://blog.sina.com.cn/s/blog_92dc41ea0101fyh9.html

http://blog.sina.com.cn/s/blog_64aac6750101gwst.html

http://mosquito.blog.51cto.com/2973374/1098456

<a href="http://54im.com/redmine/redmine%E9%85%8D%E7%BD%AEopenldap%E8%AE%A4%E8%AF%81.html">redmine配置openldap認證</a>

<a href="http://54im.com/git/centos6-install-gitlab-ldap%E8%AE%A4%E8%AF%81.html">Centos6安裝gitlab+ldap認證</a>

<a href="http://54im.com/redmine/redmine-ldap%E9%AA%8C%E8%AF%81.html">redmine 微軟ldap驗證配置</a>

<a href="http://54im.com/life/5-23-centos-6.html">5月23日釋出CentOS 6</a>

繼續閱讀