使用谷歌身份验证器增强SSH安全推荐

一般大家都是使用账号和密码远程SSH登录管理服务器。但SSH账号和密码很容易泄露,或者经常遭遇暴力破解。咨询过前同事赛赛,他们目前使用了谷歌身份验证器。查看了谷歌身份验证器的github网址和其它网上文档,重新整理归纳。

谷歌身份验证器生成的是动态验证码,默认30秒更新。修改配置,SSH登录必须在输入密码之前输入动态验证码。即使账号和密码泄露,验证码输入错误,仍然无法登录。苹果或者安卓手机端可以安装身份验证器App读取验证码。

1.禁用并关闭selinux

sed-i's/SELINUX=enforcing/SELINUX=disabled/'/etc/selinux/configsetenforce0

2.安装依赖软件包

yum-yinstallgccmakepam-devellibpng-devellibtoolwgetgit

3.添加阿里云epel源

RHEL 6/CentOS 6系列

wget-O/etc/yum.repos.d/epel.repohttp://mirrors.aliyun.com/repo/epel-6.repo

RHEL 7/CentOS 7系列

wget-O/etc/yum.repos.d/epel.repohttp://mirrors.aliyun.com/repo/epel-7.repo

4.安装Qrencode,谷歌身份验证器需要调用该程序以便终端生成并显示二维码

yum-yinstallqrencode

5.安装谷歌身份验证器

mkdir-p/App/srccd/App/srcgitclonecdgoogle-authenticator/libpam/./bootstrap.sh./configuremakeinstallcp.libs/pam_google_authenticator.so/lib64/security/

6./etc/pam.d/sshd第一行后添加谷歌身份验证器PAM模块配置

authrequiredpam_google_authenticator.so

7.修改SSH服务配置/etc/ssh/sshd_config

sed-i's#^ChallengeResponseAuthenticationno#ChallengeResponseAuthenticationyes#'/etc/ssh/sshd_config

8.重启SSH服务

RHEL 6/CentOS 6系列

servicesshdrestart

RHEL 7/CentOS 7系列

systemctlrestartsshd.service

9.终端切换至需要二次验证的系统用户后运行验证器程序google-authenticator,遇到(y/n)可以都输入y,为需要远程SSH登录的每个用户生成动态口令

Doyouwantauthenticationtokenstobetime-based(y/n)yhttps://www.google.com/chart?chs=200x200 chld=M|0 cht=qr chl=otpauth://totp/songsong@localhost.localdomain%3Fsecret%3DX3PYDDGPI4BF3DMIVTZ33IRQI4%26issuer%3Dlocalhost.localdomainYournewsecretkeyis:X3PYDDGPI4BF3DMIVTZ33IRQI4Yourverificationcodeis318806Youremergencyscratchcodesare:3418184733327793543071633690175621117069Doyouwantmetoupdateyour"/home/songsong/.google_authenticator"file(y/n)yDoyouwanttodisallowmultipleusesofthesameauthenticationtoken?Thisrestrictsyoutooneloginaboutevery30s,butitincreasesyourchancestonoticeorevenpreventman-in-the-middleattacks(y/n)yBydefault,tokensaregoodfor30seconds.Inordertocompensateforpossibletime-skewbetweentheclientandtheserver,weallowanextratokenbeforeandafterthecurrenttime.Ifyouexperienceproblemswithpoortimesynchronization,youcanincreasethewindowfromitsdefaultsizeof+-1min(windowsizeof3)toabout+-4min(windowsizeof17acceptabletokens).Doyouwanttodoso?(y/n)yIfthecomputerthatyouareloggingintoisn'thardenedagainstbrute-forceloginattempts,youcanenablerate-limitingfortheauthenticationmodule.Bydefault,thislimitsattackerstonomorethan3loginattemptsevery30s.Doyouwanttoenablerate-limiting(y/n)y

10.苹果手机打开App Store搜索Google Authenticator,安卓手机打开应用商店搜索身份验证器,安装对应App

苹果手机

安卓手机

11.手机打开安装的App后点击开始设置

12.点击扫描条形码,扫描终端显示的二维码。需要安装专用条码扫描器,微信和QQ的扫描二维码不起作用

13.修改SecureCRT的连接属性,右键选择已有主机连接的Properties,在新弹窗点选SSH2,将Authentication选项中的Keyboard Interactive顺序调整至首行

终端运行验证器程序google-authenticator内容说明:

Doyouwantauthenticationtokenstobetime-based(y/n)

输入y基于时间方式生成验证口令,输入n使用计数器方式生成验证口令。

https://www.google.com/chart?chs=200x200 chld=M|0 cht=qr chl=otpauth://totp/songsong@localhost.localdomain%3Fsecret%3DX3PYDDGPI4BF3DMIVTZ33IRQI4%26issuer%3Dlocalhost.localdomain

显示二维码图片的地址,需要设法能够访问到谷歌,可以使用翻墙,或者寻找暂未被中国长城防火墙屏蔽的谷歌公网IP地址,然后修改系统hosts文件地址映射。

二维码

若未安装Qrencode,则不会显示二维码。

Yournewsecretkeyis:X3PYDDGPI4BF3DMIVTZ33IRQI4

若未显示二维码,生成的谷歌二维码图片地址亦无法访问,则进入手机端身份验证器设置后点选输入提供的密钥,填写运行google-authenticator程序的账户名及符号:之后的密钥也能达到同样的效果。

Yourverificationcodeis318806

临时生成的6位数字验证码,默认30秒到期。

Youremergencyscratchcodesare:3418184733327793543071633690175621117069

生成的5组应急备用验证码,每个验证码只能使用一次,使用后立即失效。当多次使用手机App端显示的验证码无效时使用,保存备用。

注意事项:

若使用默认基于时间方式生成动态口令,确保安装谷歌身份验证器的服务器和手机系统时间一致,否则无法登录系统。所以服务器和手机系统定期同步公网公开的时间服务器,这样可以确保两者时间一致。

坦然接受生活给你的馈赠吧,不管是好的还是坏的。

使用谷歌身份验证器增强SSH安全推荐

相关文章:

你感兴趣的文章:

标签云: