分享好友 最新动态首页 最新动态分类 切换频道
进一步部署 Google Authenticator:Apache 模块
2024-12-29 09:18

Google Authenticator 是个好东西。它不仅可以增强 Google 账户登录的安全性,更因为它开源的特性,被部署到别的地方使用。比如 Linux PAM、WordPress 等,使用户可以借助 Google 的这套 OTP 方案,增强自己的服务器、网站和个人电脑的安全性。笔者之前就写过一篇详细的教程《用 Google Authenticator 加强 VPS 及 WordPress 甚至桌面电脑的安全性》,介绍如何把 Google Authenticator 部署到服务器、WordPress 和个人电脑上。如果你觉得这还不够安全的话,本文将会教会你如何把它部署到 Apache 里。

进一步部署 Google Authenticator:Apache 模块

一、Google Authenticator 的 Apache 模块的优势

如何增强服务器的安全性?这个问题向来都是站长们的讨论焦点。从 SSH 登录方面来说,可以限制 IP 地址登录,可以禁用密码登录(仅用公钥登录,可以用 Fail2ban 来对付它们,甚至可以把尝试暴力破解的 IP 加到 iptables 黑名单中等。但是,Web 前端怎么办?总不能限制 IP 地址访问吧?比如 WordPress 的管理后台和 phpMyAdmin 的登录页面,就是很容易遭到攻击的地方。为了防御这种人肉攻击,简单点地做法是用mod_auth_basic 或 mod_auth_digest 来进行验证,高档一点的话,可以用 mod_ssl 中的双向 TLS 认证。但是前者太简单,如果页面是 http:// 的话,密码是明文传输的,对攻击者来说十分方便的,而后者相对来说比较复杂,要自己建立并维护一个 CA,或者需要花钱去请第三方 CA 签名证书。而 Google Authenticator 的 Apache 模块 mod_authn_google 则提供一种经济、方便、简洁、有效的认证方式:动态密码认证。

相对 mod_auth_basic 来说,mod_authn_google 的密码是动态的,更不易被猜解;相对 mod_ssl 的双向 TLS 认证来说,mod_authn_google 免去了额外请第三方 CA 签名的资金和复杂的配置 CA 证书的过程的痛苦。

二、安装 mod_authn_google

由于这不是官方模块,所以必然是要我们自己来下载安装的。这个项目的主页在这里,但是它的下载列表中提供的模块是有 Bug 的,如果不想自己修复 Bug 的话,可以在这里下载到 Bug 修复后的 mod_authn_google。

注意,这个模块是在 64 位 Linux 下编译的,如果你用的是 32 位的系统,请下载源码后自行编译。

下载得到的是一个 .so 的库文件,可以使用 apxs2 脚本来安装,以 Ubuntu 等基于 APT 和 dpkg 的发行版为例,这个脚本可以通过安装 apache2-prefork-dev 包得到。

接下来便可使用 apxs2 来安装模块

各参数含义

-i
安装
-a
自动添加 LoadModule 语句,方便加载
-n authn_google
安装后模块的名字
mod_authn_google.so
刚才下载得到的模块的文件名

由于这是一个已经编译好的模块了,所以除了用脚本来自动安装,也可以手工安装

三、配置 mod_authn_google

首先要建一个供它存放认证信息的地方,比如 /etc/apache2/ga_auth,接下来编辑 /etc/apache2/mods-available/authn_google.conf 文件,以下是范例

保存退出之后,再

即可,如果没有报错的话,现在现在 mod_authn_google 应该已经在工作了,访问 /secret 的话会提示输入用户名密码,但是我们没有添加用户,所以输啥都是错的。

四、添加认证用户

认证用户是通过 Google Authenticator 提供的工具来生成认证文件的,将生成的认证文件复制到 GoogleAuthUserPath 所对应的目录即可,比如/etc/apache2/ga_auth。

如何使用 Google Authenticator 生成新用户的说明,在这篇文章中已经很清楚了,这里再提一下

  1. 使用包管理器安装 libpam-google-authenticator 这个包。以 Ubuntu Server 为例
  2. 如果之前用过 Google Authenticator,请先将 ~/.google_authenticator 文件改名备份一下。
  3. 运行

    命令,把屏幕上的 QR 码扫描到装有 Google Authenticator 的手机中,并按照提示回答几个问题,生成新的 ~/.google_authenticator 文件。

这样便生成了一个有效的用户。将家目录中新生成的 .google_authenticator 文件复制到 /etc/apache2/ga_auth 目录下,文件名为用户名,并使用

(把 wzyboy 更换为相应的用户名)更改文件权限,以确保 Apache 能读取它,便完成了一个用户的添加。如需更多用户访问,重复这些步骤即可。最后记得把家目录里的 .google_authenticator 文件改回来。

五、调试与侦错

建议在浏览器的隐身窗口中进行调试以排除 Cookies 的干扰。如果出错,可从 /var/log/apache2/error.log 中找答案。

补充:该模块在 Google Code 上的预编译文件有 Bug,不读取 Cookies,导致提示找不到 /etc/apache2/ga_auth/(null) 文件。这时一个比较搞笑的 wordaround 就是把你的用户认证信息文件重命名为 (null),然后就可以配合这个 Bug 继续工作了。此时用户名输什么都可以,密码则是要保持正确的。这倒也别有一番风味……

原文发布时间为:2014-03-06

最新文章
梦幻西游:盘点游戏中的热门召唤兽——灵兽系
前面我们介绍了比较热门鬼魂系和水系召唤兽,今天小编和大家聊一聊出场率较高的几种灵兽系召唤兽。本次即将登场的召唤兽有狸、大蝙蝠、狼、白熊、古代瑞兽、凤凰。  一、狸  别称:干脆面;  携带等级:5级;  自带技能:招架、必
神马搜索营销平台如何为游戏、电商行业,打造信息流广告?
“你的广告能够打动用户的心吗?”对于好的营销来说,答案自然是肯定的。在存量时代,信息流作为当前广告主引流与获客的重要方式之一,已经不再靠量取胜,而是要看质——精准、高效的高品质信息流广告投放需求不断提升,尤其在信息流广告占
百度收录高的平台有哪些❝高权重收录好/进来❞网站收录那几个
下一篇文章内容预览:B2B为无数的梦想家提供了一次又一次的商机,因此受到了各界人士的青睐。然而很多人在B2B网站上发布新内容后,都会疑惑如何才能更好的让百度收录自己的网页呢?今天启汇网的小编就来和大家简单分享一下!01/选择产品推
湖南衡阳:商品房实行按套内建筑面积计价销售
  新京报财经讯 12月12日,据“衡阳发布”官方公众号披露,湖南省衡阳市自然资源和规划局、市住房和城乡建设局、市发展和改革委员会近日联合发布《关于全市商品房销售实行套内建筑面积计价的通知》,自2025年1月1日起衡阳市行政区域内商
竟爆!尚扬电商app做任务诈骗事件详情介绍,多人被骗无法提现欲哭无泪?
〖→被骗请点击进入帮助平台提现追款〗〖→被骗请点击进入帮助平台提现追款〗希望阅读此文的读者能够及时采取措施以减少损失;请及时与团队联系提供解决方案(文章上方点击添加技术员咨询快速追回)若想追回损失资产,务必仔细阅读以下内容
有什么值得用的AI生成PPT免费工具?首推这五款AI生成PPT的工具
❁上手难易度评分❁:★★★★☆——迅捷PPT支持在网页端进行PPT制作,且操作流程经过不断简化,即便是大家第一次接触PPT制作也能快速掌握操作流程。☁Presentations☁【以下是它的使用优势分析】智能编辑:自动调整PPT中的字体大小、颜色
第三、利用微信等其他第三方社交平台
商家关键词优化,主要围绕以下这几点就可以:①高点击率词:对于高点击率的词,看下曝光是否足够,如果曝光率小,就可适当加价;②低点击率词:当有低点击率的词,你就要思考是否是由于这些导致的,如:主图、商品价格、标题,或选择的词与
阿里云服务器ECS安装WordPress,搭建自己的博客网站(详解)
本人系统是Mac系统1.购买阿里云的虚拟机重点:warning_selector::购买ECS的使用选择公共镜像吗?我们可以在这一步就选择镜像市场,然后在搜索框输入关键词:LAMP环境(Ubuntu16.04 Apache PHP7.1)1.2.设置安全组,授权策略选择允许,授权
探寻普洱茶世界:揭秘十大独特香型之美
探寻普洱茶世界:揭秘十大独特香型之美普洱茶作为中国六大茶类之一以其独到的魅力和丰富的文化内涵吸引了无数茶友的目光。普洱茶的魅力不仅在于其陈年后的独有风味更在于其丰富的香气类型。从陈清香、陈浓香到陈醇香普洱茶的香气变化万千每
相关文章
推荐文章
发表评论
0评