【51CTO.com快译】双因子验证应该是一项必用技术。本文作者介绍了为Linux台式机和服务器添加这个安全层的新方法。
如果你是Linux管理员,期望尽可能严加保护你的Linux服务器和桌面,那就应该使用双因子验证。并将它视为“不二的选择”,原因何在?因为添加双因子验证后,恶意用户访问你的机器要难得多。你可以组建这样的一台Linux机器:要是没有与这台机器关联的双因子验证代码,你无法登录到控制台或桌面,或者无法通过安全外壳来登录。
下面我要介绍在Ubuntu Server 16.04上搭建这个系统的过程。如果你之前尝试过这个过程,就知道步骤有了变化,之前详述的方法再也不管用。
准备工作
添加双因子验证时要记住一点:一旦搭建完毕,要是没有第三方生成的代码,你无法进入自己的机器。每当你想要登录,就需要智能手机或紧急代码(安装必要工具时生成的)。
需要的东西
显然,你需要一台Linux服务器或台式机。确保它已全面更新,数据已作好备份。还需要第三方应用软件(比如Authy或Google Authenticator)来生成双因子代码。我本人使用Authy完成这项任务。安装Authy或Google Authenticator应用软件的过程就不作介绍了,因为这个过程不需要加以说明。
好了,咱们开始搭建吧。
安装
登录到Linux机器,遵循这些步骤:
1. 打开终端窗口
2. 执行命令sudo apt install libpam-google-authenticator
3. 输入sudo密码后,按回车键
4. 看到提示后,输入y,按回车键
5. 让安装完成
现在可以针对双因子验证来配置机器了。
配置
回到终端窗口,执行命令sudo nano /etc/pam.d/common-auth。将下面这一行添加到文件末尾:
- auth required pam_google_authenticator.so nullok
保存并关闭该文件。
现在我们要为需要登录到该机器的每个用户安装Google-authenticator。我将演示只有一个用户的情况。回到终端窗口,以该用户的身份执行命令command google-authenticator。需要回答一系列问题。第一个问题是:你希望验证令牌基于时间(y/n)y吗?回答y,会看到一个二维码(图A)。在手机上打开双因子应用,添加一个新帐户,扫描该代码。
图A:扫描二维码,将帐户添加到你的第三方应用软件
一旦添加好代码,回答剩余的问题:
- 希望我更新你的“/home/jlwallen/.google_authenticator”文件(y/n) 吗?
- 希望禁止多次使用同一个验证令牌(y/n)吗?这将限制你在大概每30秒登录一次,但提高了发觉或甚至防止中间人攻击的机会。
- 默认情况下,令牌有效时间是30秒,为了补偿客户端与服务器可能出现的时间偏差,我们允许当前时间前后有一个额外的令牌。如果你遇到了时间同步糟糕的问题,可以将时间窗口由默认的1分30秒调大到约4分钟。你希望这么做(y/n)吗?
- 如果你登录的计算机没有加固、因而防范不了蛮力登录,可以对验证模块启用速率进行限制。默认情况下,这将攻击者限制在每30秒最多只能登录3次。你希望启用速率限制(y/n)吗?
输入y后按回车键,回答每个问题。
配置SSH
接下来,我们配置ssh以便允许双因子验证,不然你无法通过ssh登录。步骤如下:
先启用PAM模块。为此,执行命令sudo nano /etc/pam.d/sshd。文件打开后,将下面这一行添加到文件末尾:
- auth required pam_google_authenticator.so nullok
保存该文件,然后执行命令sudo nano /etc/ssh/sshd_config。在该文件中,寻找:
- ChallengeResponseAuthentication no
找到后,改成:
- ChallengeResponseAuthentication yes
保存该文件,用命令sudo systemctl restart sshd重启sshd。
登录
从当前的工作终端窗口退出服务器之前,强烈建议你打开新的窗口,试着通过安全外壳登录机器。要是无法登录,回头查一遍步骤,确保没有漏掉哪个环节。一旦以这种方式成功登录,就可以安全地退出当前的会话、重新登录了。
恭喜多了一道新的安全防线
以上就是为你的Linux机器添加另外一道安全防线的所有步骤。切记:要是没有那个第三方双因子验证应用软件,你就无法登录刚配置的机器,所以确保手机随时在身边。
Authy的下载地址:
https://play.google.com/store/apps/details?id=com.authy.authy
Google Authenticato的下载地址:
https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2
原文标题:How to set up two-factor authentication in Linux,作者:Jack Wallen
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】