如何使用双因素身份validation进一步保护我的系统?

标题几乎说得好。 我一直在听到更多关于2因素身份validation,一次性密码,难以获得以及其他改进的安全function的信息。 随着使用密码的安全性降低,我想知道如何提高我在Ubuntu上的安全性。 我在Unity中使用14.04 LTS。

您可以使用由Google创建的开源可插入身份validation模块(PAM),称为Google身份validation器 。 此模块可在标准存储库以及GitHub中使用,以便您可以从源代码构建。 与同名的Android,iOS或Blackberry App配合使用,它可以创建基于时间,时间敏感的身份validation代码以及密码。 由于它是一个PAM模块,它几乎可以放在任何地方 。 让我们开始吧!

安装

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

sudo apt-get install libpam-google-authenticator 

简单!

设置:

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

 google-authenticator 

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

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

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

启用它!

这就是魔术。 由于这是一个PAM模块,因此可以在各种场所使用。 我将逐步向sudo请求,SSH登录和lightdm登录添加身份validation。 但是,在阅读本教程后,您将能够基于相同的技术在其他地方启用它。

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”参数告诉系统如果用户尚未设置双因素身份validation,则不会请求validation码。 完成编辑后,继续并重新启动ssh服务:

 sudo service ssh restart 

sudo请求

编辑sudo的PAM文件:

 gksudo gedit /etc/pam.d/sudo 

在最后添加以下行:

 auth required pam_google_authenticator.so nullok 

现在每个sudo请求都会要求输入validation码和密码。

LightDM(GUI登录)

编辑LightDM的PAM文件:

 gksudo gedit /etc/pam.d/lightdm 

在最后添加以下行:

 auth required pam_google_authenticator.so nullok 

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

系统范围和TTY登录

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

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

并在最后添加以下行:

 auth required pam_google_authenticator.so nullok 

注意:由于此common-auth文件包含在所有其他auth类型文件中,因此您需要从其他文件中删除auth required行。 否则,它会要求两次validation码,不允许您在登录后登录。

包起来

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

玩得开心!!

FreeOTP是Google Play上Google Authenticator Android应用程序的开源替代品(其当前代码不是开源代码)。 FreeOTP可在F-Droid (和Google Play )上使用。

Interesting Posts