更改密码 - ldap 更新问题

更改密码 - ldap 更新问题

我已将目录 389 和 1 台服务器设置为客户端,以测试用户的身份验证等。

对于目录的安装我使用了本教程:

在 CentOS 7 中安装并配置 LDAP 服务器

为了安装客户端,我使用了本教程: 如何为 389 目录服务器安装配置 LDAP 客户端

现在 ds-389 和客户端身份验证可以正常工作,但是当我尝试更改 ldap 用户的密码时,我收到一些奇怪的消息:

5 月 20 日 13:40:55 服务器密码:pam_unix(passwd:chauthtok):/etc/passwd 中不存在用户“test” 5 月 20 日 13:41:06 服务器密码:pam_unix(passwd:chauthtok):/etc/passwd 中不存在用户“test” 5 月 20 日 13:41:06 服务器密码:pam_ldap(passwd:chauthtok):密码更改失败:密码更改失败:需要保密;用户 = 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

答案1

好吧,就我而言,我浪费了整整一天的时间研究配置和 wireshark,才发现为了让用户能够更改密码,你需要启用 ds-389 加密,并且你的客户端需要连接到端口 636 SSL/TLS 才能“安全地”传递机密数据,在我们的例子中是密码。跳过最重要的部分后,感觉自己很愚蠢 ;D

因此,为了让系统正常运行,首先我们需要在 ds-389 上生成证书

为此,我使用了这个简短的教程: 配置 TLS SSL 389 目录服务器 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 的痛苦 ;) 干杯。

相关内容