FreeRadius-GoogleAuthenticator-Kerberos 密码更改异常

FreeRadius-GoogleAuthenticator-Kerberos 密码更改异常

我们使用 FreeRadius、Kerberos 和 Google Authenticator 来实现双因素身份验证。无论是从 radtest 还是从 Watchguard 防火墙,双因素身份验证都可以正常工作。要登录,用户需要输入他们的 Kerberos 密码并连接 Google Authenticator 提供的 PIN。Radius 使用 pam 与 GAuth 通信,然后与 Kerberos 通信。pam 堆栈是

/etc/pam.d/radiusd
    auth requisite pam_google_authenticator.so forward_pass
    auth required pam_krb5.so use_first_pass

forward_pass 指令告诉 pam_google_authenticator.so 去掉后面的六个字符,验证它们,然后将剩下的字符串作为密码传递到下一步。

当 Kerberos 策略的密码过期,需要重置(或在主体上设置了 +needchange)时,就会出现问题。发生这种情况时,不会通知用户。他们正常输入密码和 PIN 码,然后被允许进入。然后后台的某些东西会将 Kerberos 密码更新为旧密码加上附加的 PIN 码(例如 mypasswrd123456)。我已经验证了这个新密码确实存在于 Kerberos 数据库中,可以用于进一步的身份验证,但当然您需要意识到发生了更改并保存组合字符串。在生产中不太可能发生这种情况。

我无法找到导致更改的原因。唯一的日志消息是确认密码已更新。似乎 Kerberos 必须提醒 Radius 需要更改,Radius 看到它有一个较新的密码并将其传回。

我尝试添加

   password required deny.so 

到 /etc/pam.d/radiusd,但这没有帮助。

操作系统是 Ubuntu,软件包使用 apt-get 安装。

任何想法都值得赞赏。

相关内容