GoogleAuthenticator+SSH双因子(2FA)认证登陆CentOS7系统

随笔 麋鹿 302℃ 0评论
本文最后更新于 2020年2月11日 09:36 可能会因为没有更新而失效。如已失效或需要修正,请留言!
文章目录

等级保护三级中对主机的身份鉴别有一个控制项明确要求: 应采用两种或两种以上组合的鉴别技术对管理用户进行身份鉴别。

我们正常登陆操作系统都是通过账户和口令的方式,这个控制项则要求用两种或两种以上组合的鉴别技术对管理用户进行身份鉴别。在Linux系统中,Google authenticator是个不错的组件,结合手机就可以实现Linux操作系统的双因子认证功能。

一、配置时间同步

确保  ntpd 已安装并正常运行运行

ntpdate是用来自动同步时间的程序

二、yum安装Google authenticator

yum安装与源码安装二选一。

1、安装EPEL yum源

或使用

2、安装Google-authenticator

(1)、查看yum源是否有 google-authenticator 组件

images

(2)、安装 google-authenticator 组件

images

三、源码安装Google authenticator

yum安装与源码安装二选一。

1、下载源码包

2、解压并进入目录

3、编译安装

4、复制google 身份验证器pam模块到系统下

四、配置ssh

1、编辑 /etc/pam.d/sshd

将原来首行  auth required pam_sepermit.so 注释掉,重新插入下面内容

images

2、编辑 /etc/ssh/sshd_config

找到“ #ChallengeResponseAuthentication yes ”,改成: ChallengeResponseAuthentication yes

并把 ChallengeResponseAuthentication no 前面加上“ # ”:

images

3、重启sshd服务

五、启动google-authenticator

1、交互式配置方式

切换至想要使用  Google Authenticator 来做登录验证的账号,执行下面操作

然后会出现下面一系列交互式的对话做对应的设置,并提示是否要输入app的动态码。

这里会显示一个二维码,如果你的终端不支持显示二维码,可以手动输入后面的密钥(secret key)来代替扫描二维码,之后的操作会用到这个二维码/密钥(secret key)。这里还有一个认证码(verifiction code),暂时不知道有什么用,以及 5 个紧急救助码(emergency scratch code),紧急救助码就是当你无法获取认证码时(比如手机丢了),可以当做认证码来用,每用一个少一个,但其实可以手动添加的,建议如果 root 账户使用 Google Authenticator 的话一定要把紧急救助码另外保存一份。

是否更新用户的 Google Authenticator 配置文件,选择 y 才能使上面操作对当前用户生效,其实就是在对应用户的 Home 目录下生成了一个 .google_authenticator 文件,如果你想停用这个用户的 Google Authenticator 验证,只需要删除这个用户 Home 目录下的 .google_authenticator 文件就可以了。

每次生成的认证码是否同时只允许一个人使用?这里选择  y

是否增加时间误差?这里选择  n

是否启用次数限制?这里选择  y,默认每 30 秒最多尝试登录 3 次。

2、参数式一键启动方式

上面交互式的设置也可用通过参数一次性设置(推荐)

可以看到,通过参数还可以自定义  发行商 和  标签,执行  google-authenticator -h 来查看所有的参数设置

六、设置 Google Authenticator 手机 App

手机类型 App 程序名称
IOS Google Authenticator
Android 谷歌动态口令(请在手机对应的应用商店里搜索下载)

安装完后,打开 Google Authenticator/谷歌动态口令 App,点击  开始设置,选择  扫描条形码 扫描上面  google-authenticator 命令生成的二维码,然后手机上就能看到对应的认证码了。

这里的认证码每 30 秒变化一次,认证码上面的 example.com对应的是 google-authenticator 参数 -i 设置的发行商,认证码下面的 test@example对应的是 google-authenticator 参数 -l 设置的标签,如果你没有通过 google-authenticator 的参数设置发行商和标签,默认会使用系统的 hostname 来作为发行商,标签则则使用用户名和 hostname 的组合,格式为 username@hostname,标签其实是后期可以通过手机App来修改的,而发行商则修改不了。

现在重新使用 SSH 登录服务器,就会要求输入密码和 Verification code 来验证身份。如果登陆时遇到问题,请查看日志文件 /var/log/secure。

七、配置xshell连接

1、新建连接配置完成ip地址与端口

images

2、点击左上角 用户方法验证 –> 方法 选择 Keyboard Interactive。

images

3、点击下方确认即可。

 

转载请注明:百分数 » GoogleAuthenticator+SSH双因子(2FA)认证登陆CentOS7系统
责任声明: 本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!
喜欢 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址