LDAP 系列:
網路上的教學有很多說要去修改 slapd.conf 檔案,基本上這是一種過時的說法。
在OpenLDAP 新版,修改這份檔案並沒有用處(而且也沒有這個檔案給你改),你必須要修改 slapd.d/ 資料夾裡的東西才能達到你想要的結果,或者是使用 ldapmodify 指令。
Slapd.conf
官方建議使用命令列或是 ldif 檔方式來進行修改,所以不提供slapd.conf檔了。但是有保留導入slapd.conf的方式,所以可以自行建立 slapd.conf如果你是透過 apt 來安裝的話,你可以在 /usr/share/slapd/slapd.conf 拿到一個 slapd.conf 的範例檔案。
注意,這個檔案無法直接匯入設定,必須要做一點修改才能拿來用。
slapd.conf 檔案格式
範例檔案長的大概像這樣,稍微說明一下該怎麼修改這份檔案。同樣,為了不誤人子弟,只說明我理解的部份。
Include
檔案的開頭 include 指定你會匯入什麼樣的 objectClass。因此若是你發現新增的時候,LDAP 告訴你沒有這個 ObjectClass 時,很有可能就是這邊沒有匯入你指定的 ObjectClass。
# Schema and objectClass definitions
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema
pidfile 與 argsfile 不知道所以跳過。
loglevel
# Read slapd.conf(5) for possible values
loglevel none
你可以在這裡指定你要的 log 等級,在 Openldap Doc 的 6.2.1.5. loglevel 可以查 logLevel
可以直接寫數字,數字的大小就是你要的 loglevel 數字相加。
# 假設要 sync (16384) 跟 config (64) 的 log 資訊,那 loglevel 就是 16384 + 64 = 16448
loglevel 16448
# 也可以直接寫 keyword
loglevel sync
loglevel config
moduleload
# Where the dynamically loaded modules are stored
modulepath /usr/lib/ldap
moduleload back_mdb.la
moduleload syncprov.la
這邊會載入你所需要的 module ,因為我後面會作 Replication ,所以這邊額外載入了 syncprov 的 module
你可以在 /usr/lib/ldap 的路徑下看到你能載入的 module
順帶一提 back_mdb.la 是官方所推薦的 database 格式,但是先前的版本是不支援這個格式的,有碰到 database 錯誤的話,可能要注意一下。
backend
我們 module 載入 mdb ,沒道理這邊改用別的,填 mdb !backend mdb
DIT
再下去就是建立一個 DIT 所需的資訊了。database 同樣是 mdb
databse mdb
suffix 填你的 rootdn
suffix "dc=example,dc=com"
rootdn 就是登入 LDAP 操作所需的 root Acc
rootdn "cn=admin,dc=example,dc=com"
rootpw {SSHA}17/XQ0vmwCwP2RI1f9UnuwSoQYxNm0e+
rootdn的註解拿掉,填你要的帳號,admin or Manager 都可以,不要忘記就好。
這個帳號之後就是用來修改有關資料庫的資料 or 設定
那密碼是怎麼來的呢?
你必須執行 slappasswd,然後輸入兩次你要的密碼,它會吐一串字串回來給你,將這個字串貼到 rootpw 後,密碼就設定完成。
directory
放你的 database 檔案的地方,沒事的話就別動。
註解掉所有 dbconfig,不要問我為什麼~
似乎是 mdb 不適用於這些設定吧?
改掉接下來的所有 "@ADMIN@",改為你設定的 rootdn
這些都改完之後,就差不多要進入到下一步,讓 LDAP 吃進你的 slapd.conf 的設定。
以下步驟就是讓 LDAP 重新生成一個 slapd.d 的設定檔,堪稱是殺手鐧的絕招。
凡舉操作不順、資料錯誤、胸口鬱悶,此招一出通通清潔溜溜!
反正練習的時候弄壞了就可以這樣搞,正式環境可要三思一下
$ rm -rf /etc/ldap/slapd.d/*
$ slaptest -f /etc/ldap/slapd.conf -F /etc/ldap/slapd.d/
# 會出現 rootdn is always granted unlimited privileges. 的警告,無須理會
# 有 config file testing succeeded 即是成功,並確認 slapd.d 裡面有生成資料即可。
$ chown -R openldap:openldap /etc/ldap/*
$ service slapd start
結束後,下個 ldapsearch 來看看有沒有執行正常吧!
$ ldapsearch -xWD cn=admin,dc=example,dc=com
有跑出東西基本上就算成功了!
下一篇預計說一些有關 OpenLDAP 的指令操作~
LDAP 系列:
0 comments:
張貼留言