如何使用2因素验证进一步保护我的系统?


16

标题几乎说明了这一点。我已经听到了更多有关2因子身份验证,一次性密码,硬令牌和其他改进的安全功能的信息。随着仅使用密码的安全性下降,我想知道如何在Ubuntu上提高安全性。我在Unity中使用14.04 LTS。

Answers:


30

您可以使用由Google创建的开源可插拔身份验证模块(PAM),称为Google Authenticator。该模块在标准存储库以及GitHub中都可用,因此您可以从源代码构建。与同名的Android,iOS或Blackberry App结合使用,它会创建基于时间的,对时间敏感的代码以进行身份​​验证以及您的密码。由于它是PAM模块,因此几乎可以放在任何地方。让我们开始吧!

正在安装

首先,您可以使用以下命令安装PAM:

sudo apt-get install libpam-google-authenticator

简单!

设置:

安装后,您还需要安装适用于Android,iOS或Blackberry的相应移动应用程序(取决于您的移动平台)。每个人没有另一个就没有用。在拥有移动设备所需的应用程序之后,请在终端中运行以下命令:

google-authenticator

首先,向您询问几个问题。第一个问题是您必须回答“是”的唯一问题,它询问您是否希望代码基于时间。之后,阅读每个问题并做出最适合您的选择。

完成初始设置后,您将在终端中看到一个非常大的QR码以及一些其他信息。如果您不想使用QR码与设备配对,那么“您的新密钥为:”这一行是非常需要的行,因此,在您完成设置之前,请不要关闭此窗口!这为您提供的“便签代码”也很重要,因为如果您丢失了移动设备,则将使用它们来登录。把它们写下来并存放在安全的地方。

现在,在您的移动设备上,打开Goog​​le Authenticator应用程序,然后选择“设置帐户”。您可以扫描生成的QR码,或选择“使用提供的密钥”。如果您扫描QR码,所有内容将自动保存在名为“ your_user @ your_host”的帐户下。但是,如果选择“使用提供的密钥”,则必须手动输入名称,密钥和令牌类型。名称可以是您想要的任何名称。该密钥将是先前生成的秘密密钥。该类型将是默认的基于时间的。设置完毕后,您将在Google Authenticator应用的主窗格上看到该帐户,并在其旁边看到一个圆形计时器。该计时器每30秒耗尽一次,并生成一个新代码。

启用它!

魔术来了。由于这是PAM模块,因此可以在许多地方使用。我将逐步介绍如何向sudo请求,SSH登录和lightdm登录添加身份验证。但是,阅读完本教程后,您将可以基于相同的技术在其他地方启用它。

SSH协议

我首先这样做是因为还有一个额外的步骤。您需要做的第一件事是编辑SSH配置文件:

gksudo gedit /etc/ssh/sshd_config

搜索显示以下内容的行:

ChallengeResponseAuthentication no

并将“否”更改为“是”。

现在,您需要为ssh编辑PAM模块:

gksudo gedit /etc/pam.d/sshd

在此文件的最后,添加以下行:

auth required pam_google_authenticator.so nullok

“ nullok”自变量告诉系统如果用户未设置两因素身份验证,则系统请求验证码。完成该编辑后,继续并重新启动ssh服务:

sudo service ssh restart

sudo 要求

编辑以下内容的PAM文件sudo

gksudo gedit /etc/pam.d/sudo

在最后添加以下行:

auth required pam_google_authenticator.so nullok

现在,每个sudo请求都将要求输入验证码和密码。

LightDM(GUI登录)

编辑LightDM的PAM文件:

gksudo gedit /etc/pam.d/lightdm

在最后添加以下行:

auth required pam_google_authenticator.so nullok

而已!每次您通过GUI登录时,都会要求您输入密码后输入验证码。

全系统和TTY登录

即使启用了上述方法,如果您使用CTRL+ ALT+ 切换到TTY,它仍然不会要求输入验证码F#。要解决此问题,请编辑common-authPAM文件:

gksudo gedit /etc/pam.d/common-auth

并在最后添加以下行:

auth required pam_google_authenticator.so nullok

注意:由于此公共身份验证文件包含在所有其他身份验证类型文件中,因此您需要从其他文件中删除需要身份验证的行。否则,它将要求您输入两次验证码,并且之后您将无法登录。

包起来

如您所见,添加此身份验证非常容易。如果使用除LightDM以外的显示管理器,则可以轻松地相应地更改上面的lightdm行。由于您的移动设备和系统已经共享了此密钥,因此它们应始终保持同步。此设置没有与Google服务器或任何其他互联网资源的交互。即使两个设备都完全脱机,应用程序中显示的验证码也将是正确的。每当您需要通过已启用的一种方法登录时,只需确保打开您的移动应用程序并获取当前的验证码即可。

玩得开心!!


评论以备后用。写得很好!+1 =)
Terrance

+1-这既酷又写得很好。
内森·奥斯曼

1
然后,您的手机决定它不再有电源,并希望关机。:) +1
Rinzwind '16

这就是暂存代码的用途,@ Rinzwind:D

在启用TTY的两因素的说明中添加。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.