当 radius 服务器可用时使用的本地凭据 sshd pam_radius

当 radius 服务器可用时使用的本地凭据 sshd pam_radius

我已经设置了 pam_radius 并且它正常工作(centos6,pam_radius:1.4.0-2.el6),我可以使用 ssh 通过 radius 服务器进行身份验证。我试图实现的是,当 radius 服务器不可用时,可以返回到本地帐户。这两个密码不同(本地与 AD),因为 AD 具有更严格的密码更改策略。我尝试了一些方法:/etc/pam.d/sshd

auth adequate pam_radius_auth.so debug
auth include password-auth

现在,只要 radius 服务器(如“/etc/pam_radius.conf”中定义)不可用(在 pam_radius.conf 中使用了错误的 IP),它就可以工作。
当 radius 服务器实际可用时,挑战就开始了,我可以使用 radius 和本地身份验证凭据登录。
我有两个问题。1

. 我误解了(PAM)模块故障,故障也可能是身份验证失败,例如密码错误,或者用户在 AD 服务器上无效或不存在。模块故障是什么意思?
2. 有没有办法像我希望的那样进行设置?即,只有当 radius 服务器连接失败时才返回到本地身份验证?

或者.. 也许正常方法是不使用本地密码并使用非 AD 帐户的后备帐户,这样当所有事情都失败时就可以使用该帐户。那么问题就变成了如何在 radius 可用时阻止人们使用该帐户。

答案1

  1. 我对 (PAM) 模块故障有误解,故障也可能是身份验证失败,例如密码错误,或者用户在 AD 服务器上无效或不存在。模块故障是什么意思?

在此上下文中,失败意味着“模块返回了除 之外的任何状态success”。错误列表可以在man pam.conf或 中找到/usr/include/security/_pam_types.h

最常见的失败情况是身份验证失败。

  1. 有没有办法像我希望的那样进行设置?即当 radius 服务器连接失败时才返回到本地身份验证?

如果你想特定于某一类错误的行为,有两个要求:

  1. 您必须使用更高级的 PAM 语法。
  2. 您必须知道需要特殊处理的确切错误代码。

问题 1 很棘手,但可以克服。问题 2 需要更多研究。要么模块必须记录它将返回的确切错误以及在何种情况下返回,要么您必须自己弄清楚。后者通常需要挖掘源代码。

研究这个 PAM 模块的确切行为超出了问题的直接范围,而且我目前的时间也有点不够。:)

相关内容