我已将目录 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:
将该 ca-cert.pem 复制到您的(客户端),例如从您 scp ca-cert.pem 的主文件夹(或您复制该文件的任何位置)
作为最后一步,使用 authconfig-tui 将您的客户端设置为使用 TLS 而不是纯文本的 389 端口...
您可以从此链接执行以下步骤: 如何为 389 目录服务器安装配置 LDAP 客户端
我希望我能帮助某人节省一些时间和谷歌的折磨;)干杯。