Authentication
OpenBSD 上的 LDAP 身份驗證
我正在嘗試讓 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 .