如何配置Apache使用Radius进行双因素身份验证
本文档描述了如何使用mod_auth_xradius或mod_ldap向Apache 2.x添加WiKID双因素身份验证 。 我们的配置如下:
- Fedora Core 5
- Apache 2.2.2-10
- mod_auth_xradius。 我们建议使用mod_auth_xradius而不是mod_auth_radius。 mod_auth_xradius的文档可以在README文件中找到 。
- 对于双因素认证,我们使用WiKID,在这种情况下是商业版本。
以下是它的工作原理,当用户点击双因素保护的链接时,系统将提示输入用户名和密码。 用户在其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
。 先添加
LoadModule auth_xradius_module modules/mod_auth_xradius.so AuthXRadiusCache dbm conf/authxcache
查看xradius文档以了解其他选项 。 缓存认证结果很重要。 如果没有,每个http请求将生成一个认证请求,每次尝试验证一次性密码,除了第一次尝试将失败。
<directory "/var/www/html/radius"> AuthType Basic 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服务器中配置
的共享密钥。
您可以在.htaccess文件或目录指令中输入相同的信息,如果您愿意,取决于您要通过双因素身份验证保护的信息的位置。 我们使用location指令将虚拟目录放在双因素身份验证之后。 有关更多信息
链接
- WiKID强认证 - 双因素认证
- OutOfOrder.cc - Mod_auth_xradius
- Apache - Apache Webserver