freeradius双因素无因子连接

我有一个Cisco路由器,提供一个SSL VPN服务器,与freeradius通信,freeradius又使用pam和两个pam模块(sss&yubico)为VPN提供双因素身份validation。

一切都是在世界上很好,它的工作, 除了这个工作,我需要连接用户的密码和yubikey令牌一起成为一个响应。 我的用户更喜欢两个阶段的密码和挑战反应(主要是因为“太混乱”)。 可以这样做吗?

目前我有一个radiusauthenticationconfiguration部分,指定使用pam radius模块作为后端。 我对radius 陌生,但是我认为我可以在两个单独的“阶段”中两次使用pam模块,并且每次给出不同的pam_auth,以便使用两个不同的pamconfiguration文件,每个configuration文件都备份到一个pam模块IPA上的一个,yubikey上)? 我会依靠两次pam,因为freeradius既不支持yubikey也不支持sss(我知道它支持ldap,但是我希望获得DNS SRVlogging故障转移等)。

我不确定这是否有可能,而且我还没有find有logging的地方的运气。

freeradius显然有很多configuration文件,但如果有任何关键的知道我可以发布。

在试图获得一个yubikey安装程序做了一段时间(虽然没有OpenVPN),我得出的结论是,如果这是工作,它必须由应用程序 PAM支持。 也就是说,应用程序必须知道需要三件事情(而不是通常的两件事情) 底层的PAM库必须知道有三件事要传递给它(并适当地使用它们)。

yubikey PAM库似乎没有这种支持,或者至less在我还在努力完成这项工作的时候,它没有可靠的支持。

相反,我决定更改为在OATH模式下使用我的yubikey,并且发现适当的三阶段身份validation通过sshd和基础pam_oath库处理得更好。

我不能说OpenVPN是否支持这个更好,因为我还没有尝试过,但是如果你不能得到yubikey模式,你可能希望作为一个选项进行调查。 它有另外的好处,如果你的任何用户由于某种原因不能使用yubikey(例如,没有USB端口的端点的OpenVPN),还有许多其他的OATH实现可以用于例如在智能手机上保释这些特定用户无需彻底检修双重基础设施。

如果您感兴趣的话,可以在这里find关于sshd / yubikey / OATH /双因素/三相身份validation的书面报告。

编辑 :不,应用程序,我的意思是OpenVPN。 OpenVPN必须知道要(有效地)要求两个单独的密码和一个用户名,并且支持PAM模块必须知道期望这三个令牌,并且以适合于FreeRADIUS的方式组合它们。 只要令牌得到validation,那么一致同意的方法就几乎是无关紧要的; 最重要的是整个authentication引擎的面向客户端的知道如何请求以及如何处理三种不同的令牌。

试图通过抛弃PAM来调用RADIUS插件两次,每次都有不同的参数,并希望它会以某种方式神奇地出现在洗涤中,似乎注定要失败(以及充满潜在的安全漏洞) 。

我的更全面的观点是,你更可能find一个使用OATH的devise解决scheme,而不是yubikey特定的令牌处理程序,因为我知道我所尝试的yubikey特定的处理程序似乎不喜欢三令牌方法,宁愿链接密码和OTP方法(我也不喜欢)。

RADIUS提供挑战响应 。 也就是说,您可以先将密码提供给RADIUS服务器,RADIUS服务器将检查密码,如果密码正确,则不会使用Access-Accept进行响应,而是使用Access-Challenge进行响应。 然后,Radius客户端(pam_module)将要求进行第二次authentication,并且可以将OTP值发送到RADIUS服务器。 如果第二部分(OTP值)正确,则RADIUS服务器最终将用ACCESS-Accept来回答。

privacyIDEA为多个OTP令牌(HOTP,Yubikey)和支持挑战响应的FreeRADIUS模块提供挑战性响应。

查看freeradius代码,它看起来像pam_radius_auth也支持挑战的响应,但我还没有testing它。