Authentication

OpenBSD 上的 LDAP 身份驗證

  • September 27, 2019

我正在嘗試讓 OpenBSD 伺服器使用與我的家庭網路的其餘部分相同的 LDAP 伺服器對使用者進行身份驗證。雖然“getent 密碼”按預期列出了 LDAP 伺服器中的使用者,但我無法以其中任何一個身份登錄。

我有以下我的/etc/login.conf:

#
# ldap
#
ldap:\
       :auth=-ldap:\
       :x-ldap-server=kaitain.cory.albrecht.name,389,plain:\
       :x-ldap-basedn=ou=People,dc=cory,dc=albrecht,dc=name:\
       :x-ldap-filter=(&(objectclass=posixAccount)(uid=%u)):\
       :tc=default:

但是當我嘗試測試使用者時,我得到以下資訊:

root@opensecrets:/etc# /usr/libexec/auth/login_-ldap -d -s login cory ldap
Password: 
load_ssl_certs says:
       cacert none
       cacertdir none
       usercert none
       userkey none
parse_server_line buf = host
parse_server_line port == NULL, will use default
parse_server_line mode == NULL, will use default
host host, port 389, version 3
setting cert info
clearing ssl set
ldap_open(host, 389) failed
host failed, trying alternates
ldap_open failed
reject

加上日誌中的這些行

Dec 17 15:30:19 <auth.warn> opensecrets.cory.albrecht.name opensecrets login_ldap: ldap_open(host, 389) failed
Dec 17 15:30:19 <auth.warn> opensecrets.cory.albrecht.name opensecrets login_ldap: ldap_open failed

讓我想想 /etc/login.conf 的 ldap 部分是如何未被閱讀的。在 login.conf 中將埠的 389 更改為 38389 不會更改偽造/測試登錄的輸出。

我完全不知道該怎麼做才能確定導致 login.conf 沒有被完全解析的原因,我有點希望這是一件容易的事情,我會因為忘記它而感到非常尷尬。

事實證明,幾乎所有的網頁都會引導您完成安裝 login_ldap、ypldap 和 ypind 以完成此操作,而遺漏了一件事。因為 /etc/login.conf 是一個 termcap 格式的文件,您需要為 login_ldap 常式執行 ‘cap_mkdb login.conf’ 才能在生成的 /etc/login.conf.db 文件中實際看到您的配置。這與其他使用 termcap 格式但不需要將其編譯到數據庫文件中的程序不同,例如 rtadvd。

唯一包含此步驟的網頁是來自 Talmasca的網頁(連結現已失效),而幾乎所有其他演練似乎都源自Helion Prime 的這一網頁(連結現已失效),其中沒有提到您需要使用 cap_mkdb .

引用自:https://unix.stackexchange.com/questions/174744