已安裝系統的 /etc/openldap/slapd.conf
中包含 LDAP 服務器的完整配置文件。在此簡述了其中的各個項並說明了必要的調整。以符號 (#) 爲前綴的項處於非活動狀態。必須取消這個註釋字符才能激活這些項。html
1.用於加載schema模式的 Include 指令正則表達式
include /etc/openldap/schema/core.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/rfc2307bis.schema include /etc/openldap/schema/yast.schema
這是 slapd.conf
中的第一個指令,用於指定組織 LDAP 目錄所依據的模式。core.schema
是必需項。所需的其他模式會追加到此指令中。在包含的 OpenLDAP 文檔中查找信息。數據庫
這兩個文件包含啓動 slapd 進程所用的 PID(進程 ID)和一些參數。安全
3.訪問控制服務器
# Sample Access Control # Allow read access of root DSE # Allow self write access # Allow authenticated users read access # Allow anonymous users to authenticate # access to dn="" by * read access to * by self write by users read by anonymous auth # # if no access controls are present, the default is: # Allow read by all # # rootdn can always write!
此選項涉及如何管理服務器上的 LDAP 目錄的訪問權限。只要在數據庫特定部分沒有聲明任何自定義訪問規則,slapd.conf
的全局部分中的設置將始終有效。這些自定義聲明會重寫全局聲明。如本例所示,全部用戶均可以讀取目錄,但只有管理員 (rootdn
) 才能寫入此目錄。LDAP 中的訪問控制管理是一個很是複雜的過程。如下提示會有所幫助:app
每條訪問規則都具備以下結構:ide
access to <what> by <who> <access>
what
是一個佔位符,表示受權訪問的對象或屬性。可使用單獨的規則來明確保護各個目錄分支。還可使用正則表達式經過一條規則處理目錄樹的各個區域。slapd 按照各條規則列在配置文件中的前後順序依次評估它們。較通用的規則應列在較特定的規則以後 - 在評估 slapd 認爲有效的第一條規則以後,隨後的全部項都將被忽略。spa
who
肯定應該受權誰來訪問 what
肯定的區域。可使用正則表達式。slapd 一樣會在評估第一條有效規則以後停止對隨後的 who
的評估,因此應將較具體的規則列在較抽象的規則以前。日誌
表 用戶組及其訪問受權
標記 |
範圍 |
---|---|
|
全部用戶,無一例外 |
|
未身份驗證「匿名」用戶 |
|
已身份驗證用戶 |
|
與目標對象鏈接的用戶 |
|
與正則表達式匹配的全部用戶 |
access
指定訪問類型。請使用 上表所列的選項。
slapd 會將客戶機請求的訪問權限與 slapd.conf
中授予的權限進行對比。若是規則容許的權限等於或高於請求的權限,則能夠授予客戶機權限。若是客戶機請求的權限高於規則中聲明的權限,便會拒絕授予權限。
以下一個簡單示例,使用正則表達式能夠隨意指定這樣的簡單訪問控制。
access to dn.regex="ou=([^,]+),dc=example,dc=com" by dn.regex="cn=Administrator,ou=$1,dc=example,dc=com" write by user read by * none
此規則聲明只有各個 ou
項的管理員纔有權寫入他/她所管理的項。其餘全部經過身份驗證的用戶只有讀權限,其他人沒有任何權限。
access to
規則或匹配的
by
指令,則拒絕訪問。只有通過顯式聲明才能授予訪問權限。若是根本沒有聲明任何規則,默認規則是管理員具備寫權限,其餘全部用戶都具備讀權限。
除了可使用中央服務器配置文件 (slapd.conf
) 管理訪問權限以外,還可使用訪問控制信息 (ACI)。ACI 容許儲存 LDAP 樹中各個對象的訪問信息。
特定於數據庫的指令
database bdbsuffix "dc=example,dc=com"
checkpoint 1024 5
cachesize 10000
rootdn "cn=Administrator,dc=example,dc=com"
# Cleartext passwords, especially for the rootdn, should # be avoided. See slappasswd(8) and slapd.conf(5) for details. # Use of strong authentication encouraged. rootpw secret
# The database directory MUST exist prior to running slapd AND # should only be accessible by the slapd/tools. Mode 700 recommended. directory /var/lib/ldap
# Indices to maintain index objectClass eq
overlay ppolicy
ppolicy_default "cn=Default Password Policy,dc=example,dc=com" ppolicy_hash_cleartext ppolicy_use_lockout
數據庫類型(本案例中爲 Berkeley)是在本部分的第一行設置的(請參見例 36.6 「slapd.conf:特定於數據庫的指令」)。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
最後一個指令 |
|
|
在此爲數據庫自定義的 Access
規則將取代全局 Access
規則