更改密碼 - ldap 更新問題
我已將目錄 389 和 1 個伺服器設置為客戶端,用於測試使用者的身份驗證等。
對於目錄的安裝,我使用了本教程:
對於安裝客戶端,我使用了本教程: 如何為 389 目錄伺服器安裝配置 LDAP 客戶端
現在 ds-389 和客戶端身份驗證工作,但是當我嘗試更改 ldap 使用者的密碼時,我收到一些奇怪的消息:
5 月 20 日 13:40:55 伺服器密碼:pam_unix(passwd:chauthtok):使用者“test”在 /etc/passwd 中不存在 5 月 20 日 13:41:06 伺服器密碼:pam_unix(passwd:chauthtok):使用者“test”在 /etc/passwd 中不存在 5 月 20 日 13:41:06 伺服器密碼:pam_ldap(passwd:chauthtok):密碼更改失敗:密碼更改失敗:需要保密;user=test 5 月 20 日 13:41:06 伺服器密碼:gkr-pam:無法更改登錄密鑰環的密碼:密碼不匹配。5 月 20 日 13:41:06 伺服器密碼:gkr-pam:停止守護程序
有誰知道可能是什麼問題?我的 pam 配置如下所示:
密碼驗證:
#%PAM-1.0 # This file is auto-generated. # User changes will be destroyed the next time authconfig is run. auth required pam_env.so auth required pam_faildelay.so delay=2000000 auth sufficient pam_unix.so nullok try_first_pass auth sufficient pam_ldap.so use_first_pass auth required pam_deny.so account required pam_access.so account required pam_unix.so broken_shadow account sufficient pam_localuser.so account sufficient pam_succeed_if.so uid < 1000 quiet account [default=bad success=ok user_unknown=ignore] pam_ldap.so account required pam_permit.so password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok password sufficient pam_ldap.so use_authtok password required pam_deny.so session optional pam_keyinit.so revoke session required pam_limits.so -session optional pam_systemd.so session optional pam_oddjob_mkhomedir.so skel=/etc/skel umask=0077 session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid session required pam_unix.so session optional pam_ldap.so
系統認證
#%PAM-1.0 # This file is auto-generated. # User changes will be destroyed the next time authconfig is run. auth required pam_env.so auth required pam_faildelay.so delay=2000000 auth sufficient pam_fprintd.so auth sufficient pam_unix.so nullok try_first_pass auth sufficient pam_ldap.so use_first_pass auth required pam_deny.so account required pam_access.so account required pam_unix.so broken_shadow account sufficient pam_localuser.so account sufficient pam_succeed_if.so uid < 1000 quiet account [default=bad success=ok user_unknown=ignore] pam_ldap.so account required pam_permit.so password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok password sufficient pam_ldap.so use_authtok password required pam_deny.so session optional pam_keyinit.so revoke session required pam_limits.so -session optional pam_systemd.so session optional pam_oddjob_mkhomedir.so skel=/etc/skel umask=0077 session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid session required pam_unix.so session optional pam_ldap.so
好的,就我而言,我浪費了一整天的時間來配置和使用wireshark,發現為了讓使用者能夠更改密碼,您需要啟用 ds-389 加密,並且您的客戶端需要連接到埠 636 SSL/TLS 以“安全”傳遞機密數據,在我們的例子中是密碼。跳過最重要的部分後有點傻;D
所以為了讓系統正常執行,首先我們需要在ds-389上生成證書
為此,我使用了這個簡短的教程: Configure TLS SSL 389 Directory Server CentOS
請注意為您的 ds-389 設置 PIN 並重新啟動服務,當然……所以在您設置好 ds-389 上的所有內容後,下一步就是讓客戶端連接到特定埠。作為先決條件,您需要使用以下命令將 crt 導出到 pem:
openssl x509 -in ca-cert.crt -out ca-cert.pem -outform PEM
將該 ca-cert.pem 複製到您的(客戶端),例如從您 scp ca-cert.pem 的主文件夾(或您複製該文件的任何位置)
mv (scp-cert-path)/ca-cert.pem /etc/openldap/cacerts/
作為最後一步,使用 authconfig-tui 將您的客戶端設置為使用 TLS 而不是純文字的 389 埠…
您可以從此連結執行以下步驟: 如何為 389 目錄伺服器安裝配置 LDAP 客戶端
我希望我能幫助某人節省一些時間和Google的折磨;)乾杯。