Linux

LDAP:為什麼將 root 密碼儲存在 ldap conf 文件中?

  • October 20, 2010

我有工作 LDAP + SSH 解決方案,但我想問一下,為什麼我必須將 ldap root 密碼儲存在 libnss_ldap.secret 和 pam_ldap.secret 中?這似乎是不安全的,有人可以破解一台 ldap 客戶端機器並擁有整個 ldap 的密碼?

我怎樣才能避免這種情況,驗證使用者是否真的需要 ldap 管理員通行證?

謝謝你,馬丁

正如 sysadmin1138 所說,您確實需要對 LDAP 數據庫的讀取權限。您可以通過添加對每個屬性(除了 userPassword)具有讀取權限的特殊 ldap 使用者來實現此目的。

dn: cn=admin,dc=example,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword:: <some sha1 hash> 

然後在訪問控製文件中(假設這裡是 OpenLDAP):

access to *
       by dn.regex="cn=admin,dc=example,dc=com" read
       by * read

您還可以授予匿名使用者讀取權限(僅限制 userPassword)。然後你需要一個特殊的管理員使用者,你可以刪除 libnss_ldap.secret 和 pam_ldap.secret。這同樣適用,並且使用者數據庫的 uid 和 gecos 欄位無論如何都是秘密。這是我通常做的。您可能希望設置大小限制並將對郵件屬性的訪問限制為經過身份驗證的使用者:

sizelimit 100
timelimit 60

access to attrs=userPassword
       by anonymous auth
       by * none

access to attrs=mail
   by self read
   by users read
   by * none

access to *
       by * read

希望有幫助!

引用自:https://serverfault.com/questions/183642