锦州市广厦电脑维修|上门维修电脑|上门做系统|0416-3905144热诚服务,锦州广厦维修电脑,公司IT外包服务
topFlag1 设为首页
topFlag3 收藏本站
 
maojin003 首 页 公司介绍 服务项目 服务报价 维修流程 IT外包服务 服务器维护 技术文章 常见故障
锦州市广厦电脑维修|上门维修电脑|上门做系统|0416-3905144热诚服务技术文章
通过微信小程序“运维密码”实现SSH双因子认证

作者: 佚名  日期:2017-06-11 20:05:29   来源: 本站整理

 近来,京东、优酷等多家知名企业都发生了密码泄露,造成用户隐私泄露。可见,单一密码对敏感和重要信息进行保护力量越来越弱,所面临的挑战亦是愈发严峻。因此业内对多重认证的呼声也越来越高,而其中的双因子认证得到了业界的普遍认可。本文主要介绍SSH双因子认证,结合了当下热门的微信小程序的“运维密码”,来实现认证保护。
双因子认证机制
对于网络信息系统来说,能否识别使用者的身份,是能否确保安全的基础和关键。在实际应用中,许多网络信息系统都会要求使用者在使用系统之前,提供一些相关信息用以实现对使用者的身份认证。双因子认证(2FA)弥补了传统密码认证方法的很多弊端,是指结合密码以及实物(信用卡、SMS手机、令牌或指纹等生物标志)两种条件对用户进行认证的方法。
SSH双因子认证
在实现多重认证的系统中,用户需要通过两种不同的认证程序:用户知道的信息(如用户名/密码)和用户不知道的信息(如用手机生成的一次性密码),想必绝大部分系统管理员都知道OTP,OTP即一次性口令,最常见的一次性口令是基于时间的一次性口令(TOTP),最常见的方式是采用Google身份验证器Google Authenticator来提供基于时间的一次性口令。
在SSH服务器端安装Google身份验证器服务器端组件,这样,在使用密码或密钥登录SSH服务器时,同时通过与Google身份验证器相匹配的客户端所提供的验证信息来确认登录者的身份和权限。由于Google身份验证器没有办法备份场景,这使得使用该身份验证器的人时时处于手机丢失的恐慌之中。于是Linux中国旗下的LCTT技术组开发了一款旨在移动互联网场景中提供更好的多因子认证体验的小程序:运维密码,基于微信平台提供OTP口令管理功能。
如何使用“运维密码”为SSH服务提供双因子认证支持
第一步,需要在运行着OpenSSH服务的Linux主机上安装Google身份验证器服务器端组件。
首先,安装构建Google身份验证器所需的软件包。
在CentOS、Fedora或RHEL上:

在CentOS上安装Google身份验证器服务器端组件,需要启用EPEL软件库,然后运行如下命令:

接着,下载 Google 身份验证器服务器端组件的源代码:

编译安装 Google 身份验证器服务器端组件:

如果构建成功,你会在目录中看到pam_google_authenticator.so和google-authenticator两个二进制文件。
最后,将Google身份验证器的服务器端组件安装到合适位置。其默认会安装到 /usr/local/lib/security下,根据你的系统不同,你可能需要将其符号链接到pam库的位置(比如CentOS7会在/usr/lib64/security)。如下图所示:


至此,Google身份验证器服务器端组件安装完成。
第二步,需要对Google身份验证器服务器端组件、“运维密码”、OpenSSH进行配置
先配置Google身份验证器服务器端组件
使用以下命令生成验证密钥:


这里需要输入y,选择基于时间生成验证码
之后你将看到一个代表着该“场景”密钥的二维码和密钥字符串,它使用如下二维码图形格式表示我们数字形态的密钥
在二维码和密钥字符串后面,接着显示了一个当前的校验码和几个紧急密钥。紧急密钥你可以另行保存到一个安全的地方,以防在无法使用Google身份验证器应用或“运维密码”时使用。

保存Google服务器端组件的配置文件,输入y。

禁止同一令牌多次登录,输入y。

意思是:是否要禁用同一密钥多次登录,这将限制每30秒只能使用该密钥登录一次,但这能够让你可以更多地被提醒受到了中间人攻击,甚至能够防止这种攻击。
时间容错设置,输入y。
意思是:默认情况下,密钥在30秒内有效,为了防止由于客户端与服务器时间偏移(时间相差太大)导致认证失败,google身份验证器设计了时间容错措施。可以让你使用与当前时间偏移1到4分钟的密钥。
暴力破解防护,输入y。

意思是:为了避免暴力破解,可以启用速率限制,默认情况下,每30秒只能尝试3次。
配置完成后会在home目录下生成一个权限为400的隐藏文件,如下图所示:

然后配置运维密码
打开微信小程序,输入“运维密码”并搜索:
点击“运维密码”进入应用,然后点击中间的添加场景

扫一扫配置google-authenticator时所生成的二维码,会识别出该场景信息,这样Google身份验证器就和“运维密码”匹配上了。
接着配置SSH服务
使用如下命令在/etc/pam.d/sshd文件添加认证模块:

配置挑战式密码认证:

重启sshd服务:

切记,如果你是远程登录到服务器上配置,切勿退出当前的SSH会话,而应该另外开一个会话去测试SSH登录。重启不会中断当前的SSH会话。
到这一步配置已基本完成,下面我们进行测试。
另外开一个终端窗口进行连接,不要关闭当前的SSH连接。
输入命令登录主机:

首先输入服务器的密码,接着会让输入“运维密码”生成的6位数字密钥。如下图:

我们可以看到,在登录的时候,需要配合“运维密码”才能登录服务器。
“运维密码”小程序资源占用小,不超过200K,只需要花费很少的流量,就可以实现和Google身份验证器Google Authenticator的全部功能。通过微信小程序“运维密码”实现在Linux系统上OpenSSH双因子认证,从而对SSH进行安全加固。



热门文章
  • 机械革命S1 PRO-02 开机不显示 黑...
  • 联想ThinkPad NM-C641上电掉电点不...
  • 三星一体激光打印机SCX-4521F维修...
  • 通过串口命令查看EMMC擦写次数和判...
  • IIS 8 开启 GZIP压缩来减少网络请求...
  • 索尼kd-49x7500e背光一半暗且闪烁 ...
  • 楼宇对讲门禁读卡异常维修,读卡芯...
  • 新款海信电视机始终停留在开机界面...
  • 常见打印机清零步骤
  • 安装驱动时提示不包含数字签名的解...
  • 共享打印机需要密码的解决方法
  • 图解Windows 7系统快速共享打印机的...
  • 锦州广厦电脑上门维修

    报修电话:13840665804  QQ:174984393 (联系人:毛先生)   
    E-Mail:174984393@qq.com
    维修中心地址:锦州广厦电脑城
    ICP备案/许可证号:辽ICP备2023002984号-1
    上门服务区域: 辽宁锦州市区
    主要业务: 修电脑,电脑修理,电脑维护,上门维修电脑,黑屏蓝屏死机故障排除,无线上网设置,IT服务外包,局域网组建,ADSL共享上网,路由器设置,数据恢复,密码破解,光盘刻录制作等服务

    技术支持:微软等