如何添加双因素身份验证到phpBB

如何向phpBB添加双因素身份验证

本文档介绍了如何使用mod_auth_xradius通过Apache向phpBB添加WiKID双因素身份验证。 鉴于最近对phpBB的攻击和用户密码的暴露 ,我们认为双因素认证可能是及时的。

我们的配置如下:

  • Fedora Core 10
  • Apache 2.2.2-10
  • mod_auth_xradius。 我们建议使用mod_auth_xradius而不是mod_auth_radius。 mod_auth_xradius的文档可以在README文件中找到
  • 对于双因素认证,我们使用WiKID,在这种情况下是商业版本。
  • 我们使用最新版本的phpBB可用,3.0.4。

以下是它的工作原理,当用户点击双因素保护的链接时,系统将提示输入用户名和密码。 用户在其WiKID令牌上生成一次性密码,并将其输入密码提示。 Apache将通过mod_auth_xradius将用户名和一次性密码路由到WiKID服务器。 如果用户名和一次性密码与WiKID期望的一致,服务器将告诉Apache授予访问权限。 首先,我们将Apache作为网络客户端添加到WiKID强认证服务器,然后向Apache添加半径。 我假设你已经有一个WiKID域和用户设置。

因此,首先,为您的Web服务器的WiKID服务器添加一个新的Radius网络客户端:

  • 登录WiKID服务器Web界面( http:// yourwikidserver / WiKIDAdim )。
  • 选择网络客户端选项卡。
  • 单击创建新的网络客户端。
  • 填写所需信息。
    • 对于IP地址,请使用Web服务器IP地址
    • 对于协议,选择半径
    • 点击添加按钮,然后在下一页输入共享密码
    • 不要在返回属性框中输入任何内容
  • 从终端或通过ssh,运行'停止',然后'开始'将网络客户端加载到内置的WiKID半径服务器

那就是WiKID服务器。

现在让Apache准备好双因素身份验证。 我们需要为Apache 2.x获取并安装mod_auth_xradius。 首先我们需要安装httpd-devel,所以我们可以编译mod_auth_xradius:

# yum install httpd-devel
# wget http://www.outoforder.cc/downloads/mod_auth_xradius/mod_auth_xradius-0.4.6.tar.bz2
# bunzip2 mod_auth_xradius-0.4.6.tar.bz2
# tar -xvf mod_auth_xradius-0.4.6.tar
# cd mod_auth_xradius-0.4.6
# ./configure --with-apxs=/sbin/apxs
# make
# make install

一定要检查apxs的位置。

现在你需要再添加两件事情给你的httpd.conf 。 先添加

# using mod_auth_xradius:
LoadModule auth_xradius_module modules/mod_auth_xradius.so
AuthXRadiusCache dbm conf/authxcache
AuthXRadiusCacheTimeout 60

查看xradius文档以了解其他选项 。 缓存认证结果很重要。 如果没有,每个http请求将生成一个认证请求,每次尝试验证一次性密码,除了第一次尝试将失败。

 
<directory "/phpBB3">
   AuthType Basic
   AuthBasicProvider xradius
   AuthName "Please enter your username and WiKID one-time passcode for entry to this site."
   AuthXRadiusAddServer "wikid_server_address:1812" "wikidserver_shared_secret"
   AuthXRadiusTimeout 7
   AuthXRadiusRetries 2
   require valid-user
</directory>

您将要将wikid_server_address更改为WiKID服务器的IP地址,将wikidserver_shared_secret更改为WiKID服务器中配置的共享密钥。

这个设置有限制。 主要的一个是phpBB apache认证假定用户已经在mysql数据库中,所以用户名必须在phpBB和WiKID中是一样的。 使用WiKID PHP wAuth网络客户端API的更强大的集成可以解决这个问题。 此外,使用PHP wAuth网络客户端API或mod_ldap将允许完全开源的解决方案。

链接

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏