等级保护三级中对主机的身份鉴别有一个控制项明确要求: 应采用两种或两种以上组合的鉴别技术对管理用户进行身份鉴别。
我们正常登陆操作系统都是通过账户和口令的方式,这个控制项则要求用两种或两种以上组合的鉴别技术对管理用户进行身份鉴别。在Linux系统中,Google authenticator是个不错的组件,结合手机就可以实现Linux操作系统的双因子认证功能。本文以CentOS7为例进行说明,物理机为win7 64位,内存16G,VMware Workstation12 Pro。虚拟机内存4G,硬盘20G,处理器2P2C,CentOS 版本为Linux server0 3.10.0-957.el7.x86_64。
一、安装CentOS,这个就略过吧,网上有很多帖子,就不说了。
二、安装EPEL yum源
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
三、安装Google-authenticator
yum list google-auth*,查看是否有google-authenticator组件。
yum -y install google-authenticator,安装组件。
四、配置ssh
4.1 编辑 /etc/pam.d/sshd,原来首行注释掉,重新插入下面内容:
auth required pam_google_authenticator.so
4.2编辑 /etc/ssh/sshd-config,找到“#ChallengeResponseAuthentication yes”,改成:
ChallengeResponseAuthentication yes
并把ChallengeResponseAuthentication no前面加上“#”:
4.3 重启sshd服务:
systemctl restart sshd
五、启动google-authenticator
在shell中直接输入:google-authenticator
会出来一个二维码,还有secret key,verification code,emergency scratch codes,保存好这些key和code以及二维码。
六、安装配置谷歌身份验证app
在Android手机上安装谷歌身份验证app,豌豆荚app市场里面就有。安装好之后,打开谷歌身份验证app扫描执行google-authenticator时产生的二维码即可看到一组的六位数,每30秒更新一次,这就是动态验证口令。
七、测试
在linux上执行ssh root@127.0.0.1:
Verification code的地方输入手机上的六位数字,然后输入root账户的密码就可以登录系统了。
如果想在本地登录时也实现双因子鉴别的话,这种方法也是可行的。有兴趣的话可以自己试一试。字符登录界面和图形登录界面使用的配置文件略微有所不同。