如何向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将允许完全开源的解决方案。
链接
- WiKID强认证 - 双因素认证
- OutOfOrder.cc - Mod_auth_xradius
- Apache - Apache Webserver