风信网(ithov.com)原创文章:本文介绍了如何在 Ubuntu 12.04 中使用 mod_auth_radius 添加 WiKID two-factor authentication 双因素身份认证到 Apache 2.x的操作方法。
我们建议您使用Web应用程序的相互HTTPS验证(mutual https authentication)的双因素身份认证。强相互验证是有针对性的网站在某些加密安全的方式对用户进行身份验证,从而阻碍中间人的攻击,因此使用密码是关键。虽然一些网站在尝试使用图像验证服务器,应该要注意中间人可以简单地重放这样的图像。
WiKID 软件token进行相互认证,是通过从 WiKID 服务器检索网站SSL证书的哈希值,和比较下载SSL证书的哈希值。通过这两个相比较,token 将为用户启动默认的浏览器到目标站点。如果他们不匹配,将显示一个错误,就像SSH。本教程介绍了如何为Web应用程序配置相互认证。
详细配置操作如下:
• Ubuntu 12.04
• Apache 2.2.22-1
• libapache2-mod-auth-radius 1.5.8-1
• For two-factor authentication, we were using WiKID, in this case, the commercial version.
• 双因素身份认证,我们使用商业版本的WiKID。
这里介绍双因素身份认证是如何工作的,当用户点击一个双因素保护链路时,系统提示输入一个用户名和密码。用户在其 WiKID software token 上生成一次性密码,并进入到密码提示。Apache 通过 mod_auth_radius 将用户名和一次性密码转入到 WiKID 服务器。如果用户名和一次性密码匹配 WiKID,该服务器将告诉 Apache 同意访问权限。首先,我们添加 Apache 到 WiKID 强认证服务器作为一个网络客户端,然后添加 radius 到 Apache 。这里我们假设你已经有了一个WiKID域名和用户设置。
于是,开始为您的Web服务器添加一个新的 Radius 网络客户端到 WiKID 服务器:
• 登录到 WiKID 服务器的web界面(http://yourwikidserver/WiKIDAdmin)
• 选择 Network Clients 网络客户端的选项卡
• 点击 Create New Network Client 创建新的网络客户端
• 填写所要求的信息
• 使用Web服务器的IP地址
• 选择 Radius 协议
• 点击“Add 添加”按钮,到下一个页面,输入一个共享密钥。
• 在返回属性框中不需要输入任何内容
• 从终端或者通过ssh,先运行“stop停止”,然后“start开始”来加载网络客户端到内置的WiKIDR radius 服务器。
现在让 Apache 准备好进行双因素身份验证。我们开始从一个全新的 Ubuntu 12.04的安装开始,所以需要安装 Apache 和mod_auth_radius。
$ sudo apt-get install libapache2-mod-auth-radius
现在,你需要添加两个信息到 apache2.conf 和 httpd.conf。首先创建一个受到双因素认证保护的目录,让整个站点都受保护。输入以下命令到你的 apache2.conf :
<Directory /var/www> Options Indexes FollowSymlinks AuthType Basic AuthName "WiKID Two-factor authentication" AuthBasicAuthoritative Off AuthBasicProvider radius AuthRadiusAuthoritative on AuthRadiusActive On Require valid-user </Directory>
需注意“AuthBasicProvider radius”指令,从重新提交缓存凭据到WiKID服务器来停止浏览器,不支持一次性密码。
现在,在 httpd.conf 中输入:
AddRadiusAuth wikid_server_address:1812 wikidserver_shared_secret 5 AuthRadius
CookieValid 60
你需要更改 wikid_server_address 到 WiKID 服务器 和 wikidserver_shared_secret 的IP地址,再到WiKID服务器中已配置的共享密钥。请注意,AddRadiusAuth 行 5 的结尾不是 5:3。在后面设置为3的次数是尝试的密码使用,对于一次性密码,我们只是试用一次,因此我们保留它为空。5是指5秒的暂停时间,AuthRadiusCookieValid 指令设置为60分钟。
以上就是配置WiKID双因素身份验证的操作方法,我们不赞成使用 .htaccess 文件,目录的操作方法更安全。
使用 radius 允许你通过 NPS on Windows/AD 或 Freeradius for OpenLDAP 目录运行 authentication ,该配置可以禁用在一个地方的用户,操作更安全。