openldap slapd.conf參數


已安裝系統的 /etc/openldap/slapd.conf 中包含 LDAP 服務器的完整配置文件。在此簡述了其中的各個項並說明了必要的調整。以符號 (#) 為前綴的項處於非活動狀態。必須取消這個注釋字符才能激活這些項。

slapd.conf 中的全局指令

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 文檔中查找信息。

2.pidfile 和 argsfile

pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args

這兩個文件包含啟動 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 中的訪問控制管理是一個非常復雜的過程。以下提示會有所幫助:

  • 每條訪問規則都具有如下結構:

    access to <what> by <who> <access>
  • what 是一個占位符,表示授權訪問的對象或屬性。可以使用單獨的規則來明確保護各個目錄分支。還可以使用正則表達式通過一條規則處理目錄樹的各個區域。slapd 按照各條規則列在配置文件中的先后順序依次評估它們。較通用的規則應列在較特定的規則之后 - 在評估 slapd 認為有效的第一條規則之后,隨后的所有項都將被忽略。

  • who 確定應該授權誰來訪問 what 確定的區域。可以使用正則表達式。slapd 同樣會在評估第一條有效規則之后中止對隨后的 who 的評估,所以應將較具體的規則列在較抽象的規則之前。

    表 用戶組及其訪問授權

    標記

    范圍

    *

    所有用戶,無一例外

    anonymous

    未身份驗證“匿名”用戶

    users

    已身份驗證用戶

    self

    與目標對象連接的用戶

    dn.regex=<regex>

    與正則表達式匹配的所有用戶


  • access 指定訪問類型。請使用 上表所列的選項。

    表 訪問類型

    標記

    訪問范圍

    none

    無訪問權

    auth

    用於聯系服務器

    compare

    授予要進行比較訪問的對象

    search

    用於應用搜索過濾器

    read

    讀權限

    write

    寫權限


    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 樹中各個對象的訪問信息。

slapd.conf 中的數據庫特定指令

特定於數據庫的指令

database bdb1
suffix "dc=example,dc=com"2 
checkpoint      1024    53
cachesize       100004
rootdn "cn=Administrator,dc=example,dc=com"5 
# Cleartext passwords, especially for the rootdn, should 
# be avoided.  See slappasswd(8) and slapd.conf(5) for details. 
# Use of strong authentication encouraged.
rootpw secret6 
# The database directory MUST exist prior to running slapd AND 
# should only be accessible by the slapd/tools. Mode 700 recommended. 
directory /var/lib/ldap7 
# Indices to maintain 
index   objectClass     eq8
overlay ppolicy9
ppolicy_default "cn=Default Password Policy,dc=example,dc=com"
ppolicy_hash_cleartext
ppolicy_use_lockout

1

數據庫類型(本案例中為 Berkeley)是在本部分的第一行設置的(請參見例 36.6 “slapd.conf:特定於數據庫的指令”)。

2

suffix 確定服務器應負責的 LDAP 樹的部分。

3

checkpoint 確定寫入真實數據庫前保留在事務日志中的數據量(以 KB 為單位)以及兩次寫操作之間的時間(以分鍾為單位)。

4

cachesize 設置保留在數據庫緩存中的對象數。

5

rootdn 確定擁有此服務器的管理員權限的用戶。在此聲明的用戶不必擁有 LDAP 項,也不必是普通用戶。

6

rootpw 設置管理員密碼。在此不必使用 secret,可以輸入 slappasswd 創建的管理員密碼的哈希值。

7

directory 指令表明數據庫目錄儲存在服務器的文件系統中的哪個目錄中。

8

最后一個指令 index objectClass eq 指示對所有對象類的索引進行維護。可以在此根據經驗添加用戶最常搜索的屬性。

9

overlay ppolicy 添加一個密碼控制機制層。ppolicy_default 指定給定用戶項上未設置特定策略時要使用的 pwdPolicy 對象的 DN。如果對某項無特定策略,且未給定默認值,則不會強加任何策略。ppolicy_hash_cleartext 指定顯示在添加和修改請求中的明文密碼在儲存到數據庫中之前會執行哈希運算。使用此選項時,建議拒絕所有目錄用戶對 userPassword 屬性的比較、搜索和讀訪問,因為 ppolicy_hash_cleartext 違反了 X.500/LDAP 信息模型。當某客戶機嘗試連接鎖定帳戶時,ppolicy_use_lockout 會發送一個特定的錯誤代碼。如果您的站點對安全問題敏感,請禁用此選項,因為錯誤代碼會向攻擊者提供有用的信息。

在此為數據庫自定義的 Access 規則將取代全局 Access 規則







免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM