<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(常用名稱)
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 >> /etc/rsyslog.conf << 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 <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 的密碼 。
[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 >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 >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"
# base <-L> 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
<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>
修改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');
重新開機httpd服務後通路
登入ldap
登入後即可新增使用者群組等操作,看了到我們遷移進去的3個使用者群組
我這裡用戶端安裝在192.168.1.111 這台伺服器上,這台後面也會做證書伺服器。
[root@openldap-ca ~]# yum install openldap-clients nss-pam-ldapd
我們可以在終端使用圖像化界面配置,在crt裡面輸入 authconfig-tui
這裡注意,如果有dns的情況下話,可以用域名,否則要綁定hosts或者用IP,TLS這裡我們先不選,後面再介紹
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 >= 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 < 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/&
重新開機下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檔案使用*及&通配符時,則/etc/auto.master裡的挂載點必須與伺服器的挂載點同名同目錄/nfshome,否則用戶端su – 切換時會提示找不到目錄。
不建議把ldap使用者直接建立在/home檔案夾裡。否則由于/etc/auto.nfs檔案裡的*及&符号的自動比對的作用,客戶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 >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 >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( <DEFAULT> )
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
在openldap.54im.com上導出下資料
導出後會是文本的形式顯示在界面上,我們把内容負責到一個檔案裡面叫 openldap.ldif
在openldap2.54im.com上導入資料
在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上新增使用者
這裡可以指定使用者所屬組,使用者的shell
确定資訊無誤,點送出就完成建立使用者
可以看到在People這個ou已經有我們建立的使用者了
在openldap2.54im.com上檢視使用者是否同步,并删掉使用者,
在openldap2.54im.com上新增組,然後看openldap.54im.com上是否也進行同步
如果平時帳号操作比較頻繁的話,推薦使用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+::+
登入:
配置檔案中有機器這個OU,資料庫中沒有,是以這裡提示建立machines這個OU
可以按樹形結構檢視
在windows想驗證自己搭建的openldap是否配置成功,有個圖像化的操作界面,首先電腦上得安裝java軟體jdk-8u5-windows-x64.exe。(不是浏覽器那個java插件)
軟體下載下傳:http://pan.baidu.com/s/1ntHQF4P
軟體解壓後,運作lbe.bat這個
預設openldap匿名查詢開了,是以隻要别人知道你的openldap伺服器ip就可以掃描到你的組織架構,OU,使用者等資訊,這些對外公布是不安全的。
比如上面這個圖,我隻輸入了openldap的域名,勾上匿名,就可以查到你得額Base DN,然後儲存後,就可以連接配接看到你整個組織架構了。
怎麼關閉openldap的匿名查詢呢,隻要在slapd.conf配置檔案中加入disallow bind_anon即可(加在 allow bind_v2 這行後面)。
發現已經連接配接不上我們的openldap了。
建立CA中心:( umask 77; openssl genrsa -out private/my-ca.key -des3 2048 )
openssl req -new -x509 -key private/my-ca.key -days 365 > my-ca.crt
私鑰加密:openssl rsa -in encrypted.key -out unencrypted.key
私鑰解密:openssl rsa -in unencrypted.key -out encrypted.key
生成私鑰:( umask 77; openssl genrsa 1024 > 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&p=ldap&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>