如何为登录和 sudo 设置双因子认证

安全就是一切。我们生活的当今世界,数据具有令人难以置信的价值,而你也一直处于数据丢失的风险之中。因此,你必须想尽办法保证你桌面系统和服务器中数据的安全。结果,管理员和用户就会创建极其复杂的密码、使用密码管理器甚至其它更复杂的东西。但是,如果我告诉你你可以只需要一步,至多两步就能登录到你的 Linux 服务器或桌面系统中呢?多亏了 Google 身份验证器,现在你可以做到了。并且,配置也极其简单。

我会给你简要介绍为登录和 sudo 设置双因子认证的步骤。我基于 Ubuntu 16.04 桌面系统进行介绍,但这些步骤也适用于其它服务器。为了实现双因子认证,我会使用 Google 身份验证器。

这里有个非常重要的警告:一旦你设置了认证,没有一个从认证器中获得的由 6 个数字组成的验证码你就不可能登录账户(或者执行 sudo 命令)。这也给你增加了一步额外的操作,因此如果你不想每次登录到 Linux 服务器(或者使用 sudo)的时候都要拿出你的智能手机,这个方案就不适合你。但你也要记住,这额外的一个步骤也给你带来一层其它方法无法给予的保护。

话不多说,开始吧。

安装必要的组件

安装 Google 身份验证器Google Authenticator,首先要解决两个问题。一是安装智能机应用。下面是如何从 Google 应用商店安装的方法:

  1. 在你的安卓设备中打开 Google 应用商店
  2. 搜索 google 身份验证器Google Authenticator
  3. 找到并点击有 Google Inc. 标识的应用
  4. 点击安装
  5. 点击“接受”
  6. 等待安装完成

接下来,我们继续在你的 Linux 机器上安装这个认证器。步骤如下:

  1. 打开一个终端窗口
  2. 输入命令 sudo apt-get install google-authenticator
  3. 输入你的 sudo 密码并敲击回车
  4. 如果有弹窗提示,输入 y 并敲击回车
  5. 等待安装完成

接下来配置使用 google-authenticator 进行登录。

配置

要为登录和 sudo 添加双因子认证只需要编辑一个文件,即 /etc/pam.d/common-auth。打开并找到如下一行:


  1. auth [success=1 default=ignore] pam_unix.so nullok_secure

在这行上面添加:


  1. auth required pam_google_authenticator.so

保存并关闭文件。

下一步就是为系统中的每个用户设置 google-authenticator(否则他们就不能登录了)。为了简单起见,我们假设你的系统中有两个用户:jack 和 olivia。首先为 jack 设置(我们假设这是我们一直使用的账户)。

打开一个终端窗口并输入命令 google-authenticator。之后会问你一系列的问题(每个问题你都应该用 y 回答)。问题包括:

  • 是否允许更新你的 "/home/jlwallen/.google_authenticator" 文件 (y/n) y
  • 是否禁止多个用户使用同一个认证令牌?这会限制你每 30 秒内只能登录一次,但能增加你注意到甚至防止中间人攻击的可能 (y/n)
  • 默认情况下令牌时长为 30 秒即可,为了补偿客户端和服务器之间可能出现的时间偏差,我们允许使用当前时间之前或之后的其它令牌。如果你无法进行时间同步,你可以把这个时间窗口由默认的 1:30 分钟增加到 4 分钟。是否希望如此 (y/n)
  • 如果你尝试登录的计算机没有针对暴力破解进行加固,你可以为验证模块启用速率限制。默认情况下,限制攻击者每 30 秒不能尝试登陆超过 3 次。是否启用速率限制 (y/n)

一旦完成了问题回答,你就会看到你的密钥、验证码以及 5 个紧急刮码emergency scratch code。把这些刮码打印出来并保存。你可以在无法使用手机的时候使用它们(每个刮码仅限使用一次)。密钥用于你在 Google 身份验证器上设置账户,验证码是你能当下就能够立即使用(如果需要)的一次性验证码。

设置应用

现在你已经配置好了用户 jack。在设置用户 olivia 之前,你需要在 Google 身份验证器应用上为 jack 添加账户(LCTT 译注:实际操作情形中,是为 jack 的手机上安装的该应用创建一个账户)。在打开应用,点击“菜单”按钮(右上角三个竖排点)。点击“添加账户”然后点击“输入提供的密钥”。在下一个窗口(图1),你需要输入你运行 google-authenticator 应用时提供的 16 个数字的密钥。给账户取个名字(以便你记住这用于哪个账户),然后点击“添加”。

图1: 在 Google Authenticator 应用上新建账户

(LCTT 译注:Google 身份验证器也可以扫描你在服务器上设置时显示的二维码,而不用手工输入密钥)

添加完账户之后,你就会看到一个 6 个数字的密码,你每次登录或者使用 sudo 的时候都会需要这个密码。

最后,在系统上设置其它账户。正如之前提到的,我们会设置一个叫 olivia 的账户。步骤如下:

  1. 打开一个终端窗口
  2. 输入命令 sudo su olivia
  3. 在智能机上打开 Google 身份验证器
  4. 在终端窗口(图2)中输入(应用提供的) 6 位数字验证码并敲击回车
  5. 输入你的 sudo 密码并敲击回车
  6. 以新用户输入命令 google-authenticator,回答问题并记录生成的密钥和验证码。

成功为 olivia 用户设置好之后,用 google-authenticator 命令,在 Google 身份验证器应用上根据用户信息(和之前为第一个用户添加账户相同)添加一个新的账户。现在你在 Google 身份验证器应用上就会有 jack 和 olivia 两个账户了。(LCTT 译注:在实际操作情形中,通常是为 jack 和 olivia 两个人的手机分别设置。)

图2: 为 sudo 输入 6位数字验证码

好了,就是这些。每次你尝试登录系统(或者使用 sudo) 的时候,在你输入用户密码之前,都会要求你输入提供的 6 位数字验证码。现在你的 Linux 机器就比添加双因子认证之前安全多了。虽然有些人会认为这非常麻烦,我仍然推荐使用,尤其是那些保存了敏感数据的机器。

原文发布时间为:2016-06-23

本文来自合作伙伴“Linux中国”

时间: 2024-09-14 08:00:03

如何为登录和 sudo 设置双因子认证的相关文章

如何对有双因子认证站点进行钓鱼攻击?

本文讲的是如何对有双因子认证站点进行钓鱼攻击?, 我们假设攻击者已经获得了一组有效的员工登录凭据,而这时如果您没有多因素身份验证(MFA),那么攻击者毫无疑问就像是中了大奖,因为他们可以快速的获得该用户名和密码下的公开资产. 但是如果你有MFA呢?比如您有一个需要认证登录的门户来作为您敏感的公共资产的守护者,并且它受到MFA的保护. 这样你就认为你的站点是安全的,对吗? 事实并非如此. 也许您的站点登录情况对于那些是使用受到破坏的凭据的站点来说是相对安全的.然而,攻击者仍然可以通过MFA进程进行

SSH 安全加固篇:通过“运维密码”小程序实现 SSH 双因子认证

背景 近来很多知名企业都出现了密码泄露,通过单一的密码对敏感和重要信息进行保护已经面临越来越多的挑战,因此业内对多重认证的呼声也越来越高,而其中的双因子认证得到了业界的普遍认可. 什么是双因子认证 双因子认证Two-factor authentication(即 2FA),是一种通过组合两种不同的验证方式进行用户身份验证的机制. 在这种多重认证的系统中,用户需要通过两种不同的认证程序: 提供他们知道的信息(如用户名/密码) 再借助其他工具提供用户所不知道的信息(如用手机生成的一次性密码) SSH

双因子认证也不可靠 警惕社会工程学攻击

当前,随着网络安全威胁的日益加深,关于用户的安全认证机制也逐步完善中.为了降低传统单因子验证(One-factor authentication,2FA)如静态密码等带来的不可靠性,目前双因子认证机制(Two-factor authentication)已成为加强用户安全性的主流. 双因子认证也不可靠 警惕社会工程学攻击 什么是双因子认证? 简单而言,双因子认证就是通过两种独立不相关的证据来证明访问者的身份. 根据密码学理论,在数字世界里,独立不相关的证据可以来自于以下三方面因素:你所知道的(如

电话验证靠谱? 双因子认证或助黑客致富

在前不久,我们刚刚了解到无孔不入的社会工程学攻击能够为双因子认证(Two-factor authentication,2FA)带来致命的打击.现在来自比利时的安全研究员Arne Swinnen又发现,利用一些大公司(如Google.微软.Instagram)提供的双因子认证里的电话语音验证服务漏洞,则能够从中赚取到高额的利润. 据悉,大多数部署了2FA的公司,当用户在其官网上注册后,都会发送短信认证码对用户的真实性验明正身.当然,用户也可以选择接收这些公司的电话呼叫,让语音机器人告诉你认证码是什

矛盾对决 看双因子如何灭掉Wi-Fi万能钥匙

几乎所有的智能手机用户都见过"Wi-Fi万能钥匙"这样类似的APP.作为一款拥有巨额下载量的手机应用,其不仅充斥着所有的手机应用商店并牢牢占据下载排行榜,还在CCTV.地铁站等广告圣地花巨资做着醒目巨幅广告.作为一款"分享"免费Wi-Fi热点的手机应用,据称其有近6亿的用户,早已是风靡全国甚至已经走向了世界. 那么,Wi-Fi万能钥匙是怎么做到分享免费热点,让其用户有免费的Wi-Fi使用呢?假如你安装了Wi-Fi万能钥匙,并用其来连接家里的Wi-Fi,在你同意分享热

登陆时做下双因子验证

问题描述 登陆时做下双因子验证 请问:登陆的时候做双因子验证,啥意思?听着很高级. 请问:登陆的时候做双因子验证,啥意思?听着很高级. 解决方案 双因子认证(2FA)是指结合密码以及实物(信用卡.SMS手机.令牌或指纹等生物标志)两种条件对用户进行认证的方法.http://baike.baidu.com/link?url=SRHAOyf0tB039nGwSDDcYPwKpQ3XK8p_LULIxnta-ohYhT2xKHYs8omFFZ6dSHyLsADQrx5y0N4V0GBsjU68Mq

如何使用双因子验证保护云服务?

你的专有通信内容(比如电子邮件和文本消息)价值多少?你的声誉价值多少?你的银行帐户价值多少?你的身份又价值多少? 这年头,除非你有意避开,否则你个人和工作生活的几乎每一个方面都离不开云服务.重要的云登录信息泄密的风险实在太大了,无法借助于单单靠密码来保护它们. 如果攻击者能访问重要的云服务.尤其是电子邮件,他就能从事间谍活动或破坏活动,或者为非作歹. 解决办法就是,启用你使用的每一种重要云服务的双因子验证(2FA),尤其是与企业帐户密切相关的那些云服务. 如果启用了云服务的双因子验证,任何人企图

《CCNP安全VPN 642-648认证考试指南(第2版)》——5.9节无客户端的SSL VPN双因子验证

5.9 无客户端的SSL VPN双因子验证CCNP安全VPN 642-648认证考试指南(第2版)关键正如前面提到的,当考虑为用户部署一个新的验证方案时,有许多选项可供使用.SSL VPN解决方案中一个最常见的部署场景就是使用双因子验证机制.ASA代码8.2引入了双因子验证的概念.如果双因子验证启动了口令管理的话,那么主和辅的验证请求都包括MS-CHAPv2的请求属性.如果其中一个验证方案包含一个不支持MS-CHAPv2协议的RADIUS服务器,这就会产生问题了.出于这个原因,你需要在ASA上配

一条短信干掉谷歌的双因子验证

显示的是有人正在尝试登录Gmail账户的短信.这完全就是个骗局,但可以想一下,这条信息暗示了什么,又在要求什么. 该信息并没有让你输口令,也没有要求你的个人信息,更没想控制你的Gmail账户.恰恰相反,它提供一种温暖贴心的安全感,以及通过暂时锁定账户来让这种安全感更加深入的能力. 这种攻击相当聪明,无疑是有成功案例的.它的上下文环境是成功的关键.该信息告诉受害者,有人正尝试登录他们的Gmail账户,并提供了有关"攻击者"的基本ID. 由此,展开两种场景: 懂点儿技术的,会意识到IP地址