使用 `pam_access` 时出现 `substack` 错误

使用 `pam_access` 时出现 `substack` 错误

我正在实施pam_duo用于 Redhat 9 系统上的 SSH 多因素身份验证,但我只想在用户在网络之外时才需要它。

该文件/etc/security/access-duo.conf包含我想要设置不同规则的 IP 地址。

+ : ALL : 192.0.2.0/24 10.0.0.0/8
- : ALL : ALL

用户正在使用 SSSD 通过 Kerberos 进行身份验证。这/etc/pam.d/password-auth是 设置的常规配置authselect

# Generated by authselect on Thu Jun 23 14:34:23 2022
# Do not modify this file manually.

auth        required                                     pam_env.so
auth        required                                     pam_faildelay.so delay=2000000
auth        [default=1 ignore=ignore success=ok]         pam_usertype.so isregular
auth        [default=1 ignore=ignore success=ok]         pam_localuser.so
auth        sufficient                                   pam_unix.so nullok try_first_pass
auth        [default=1 ignore=ignore success=ok]         pam_usertype.so isregular
auth        sufficient                                   pam_sss.so forward_pass
auth        required                                     pam_deny.so

[[Other types - account/password/session]]

我复制了这些规则并做了两处修改pam_duo

auth        required                                     pam_env.so
auth        required                                     pam_faildelay.so delay=2000000
auth        [default=1 ignore=ignore success=ok]         pam_usertype.so isregular
auth        [default=1 ignore=ignore success=ok]         pam_localuser.so
auth        sufficient                                   pam_unix.so nullok try_first_pass
auth        [default=1 ignore=ignore success=ok]         pam_usertype.so isregular
auth        requisite                                    pam_sss.so forward_pass
auth        sufficient                                   pam_duo.so
auth        required                                     pam_deny.so

pam_sss现在更改是requisite并且pam_duo已添加并且是sufficient

我修改了/etc/pam.d/sshd跳过规则pam_access

auth       [success=1 default=ignore]      pam_access.so accessfile=/etc/security/access-duo.conf
auth       substack                        password-auth-duo
auth       [success=ignore default=1]      pam_access.so accessfile=/etc/security/access-duo.conf
auth       substack                        password-auth
auth       include                         postlogin

当我尝试使用 SSH 连接时,我能够成功进行身份验证,并且仅当我从网络外部连接时才会显示 Duo 提示,但随后 SSH 连接突然关闭并且服务器记录错误/var/log/secure

sshd[94170]: fatal: PAM: pam_setcred(): The return value should be ignored by PAM dispatch

我也尝试过使用完全相同的内容/etc/pam.d/password-auth-duo,但 /etc/pam.d/password-auth仍然存在此问题,所以这与 Duo 无关。

如果我将所有规则从子堆栈复制到中/etc/pam.d/sshd,一切都会正常,但这会使文件难以读取,所以我想将它们分开。

在搜索这个错误时我发现的结果很少——大多数都很旧并且对我的情况没有明显的影响。

我遗漏了什么?这是配置问题还是 PAM 错误?

相关内容