我已将目录 389 和 1 台服务器设置为客户端,以测试用户的身份验证等。
对于目录的安装我使用了本教程:
为了安装客户端,我使用了本教程: 如何为 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 的痛苦 ;) 干杯。