Ldap

更改密碼 - ldap 更新問題

  • November 4, 2019

我已將目錄 389 和 1 個伺服器設置為客戶端,用於測試使用者的身份驗證等。

對於目錄的安裝,我使用了本教程:

在 CentOS 7 中安裝和配置 LDAP 伺服器

對於安裝客戶端,我使用了本教程: 如何為 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的折磨;)乾杯。

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