Google Authenticator SSH双重验证技术

 

 

Technology - Site OPS

Google Authenticator

SSH双重验证技术

管理手册

 

第1章引言... 1

1.1 目的... 1

1.2 说明... 1

第2章 SSH 双重验证实现... 2

2.1 基础工作... 2

2.2 配置工作... 2

第3章手机客户端配置... 4

第4章 SSH 登录验证... 6

4.1XSHELL 登录验证... 6

4.2 跳板机登录... 7

4.3 总结... 8

第1章 引言

1.1 目的

SSH 安全隐患,在这我不多阐述,基于安全考虑,Linux系统服务器采用Googleauthenticator 身份验证,实现SSH双重验证技术,保证业务正常运行

1.2 说明

谷歌验证(GoogleAuthenticator)通过两个验证步骤,在登录时为用户的谷歌帐号提供一层额外的安全保护。使用谷歌验证可以直接在用户的设备上生成动态密码,无需网络连接。特点:自动生成QR码;支持多帐户;支持通过time-based和counter-based生成

当用户在Google帐号中启用“两步验证”功能后,就可以使用Google Authenticator来防止陌生人通过盗取的密码访问用户的帐户。通过两步验证流程登录时,用户需要同时使用密码和通过手机产生的动态密码来验证用户的身份。也就是说,即使可能的入侵者窃取或猜出了用户的密码,也会因不能使用用户的手机而无法登录帐户

验证登录必须保证SSH 服务器时间与手机终端时间同步

第2章 SSH双重验证实现

默认情况下,SSH已经在远程机器之间使用安全的数据通信;但是如果你想为自己的SSH连接添加另外某种安全层,可以添加谷歌身份验证器(Google Authenticator)双因子验证模块,该模块让你可以在连接到SSH服务器时,输入一个随机的一次性密码(TOTP)验证码。你在连接时,就得从智能手机或个人电脑输入这个验证码。

谷歌身份验证器是一种开源模块,实施了由谷歌开发的一次性通行码(TOTP)验证令牌。除了PAM(可插入验证模块)外,它还支持几种移动平台。这些一次性通行码是使用OATH(开放验证组织)制定的开放标准生成的。

2.1 基础工作

1)   安装相关依赖包

a)     yum install pam-devel makegcc-c++ wget

2)   安装Google PAM

a)     wget https://google-authenticator.googlecode.com/files/libpam-google-authenticator-1.0-source.tar.bz2

b)    tar -xvflibpam-google-authenticator-1.0-source.tar.bz2

c)     cdlibpam-google-authenticator-1.0

d)    make;make install

2.2 配置工作

编译安装完成之后将会生成‘google-authenticator’工具,该工具用于生成key和code

1)执行Google-authenticator命令

[[email protected] ~]# google-authenticator

Do you want authentication tokens to be time-based (y/n) y

https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/[email protected]%3Fsecret%3DFEEJORGN5BMHRUN3

Your new secret key is: FEEJORGN5BMHRUN3

Your verification code is 357438

Your emergency scratch codes are:

47557618

80178077

46913492

98551493

84544589

Do you want me to update your"/root/.google_authenticator" file (y/n) y

Do you want to disallow multiple uses of the same authentication

token? This restricts you to one login about every 30s, but itincreases

your chances to notice or even prevent man-in-the-middle attacks(y/n) y

By default, tokens are good for 30 seconds and in order tocompensate for

possible time-skew between the client and the server, we allow anextra

token before and after the current time. If you experience problemswith poor

time synchronization, you can increase the window from its default

size of 1:30min to about 4min. Do you want to do so (y/n) y

If the computer that you are logging into isn‘t hardened againstbrute-force

login attempts, you can enable rate-limiting for the authenticationmodule.

By default, this limits attackers to no more than 3 login attemptsevery 30s.

Do you want to enable rate-limiting(y/n) y

2)SSH 配置工作

a)     ChallengeResponseAuthenticationyes

b)    UsePAM yes

c)     PubkeyAuthentication no

3)添加认证

a)     /etc/pam.d/sshd

auth      required     pam_google_authenticator.sosecret=${HOME}/.google_authenticator

4)重启服务

a)     Service sshd restart

第3章 手机客户端配置

1)手机安装Google authenticator

a)     iPhone 安装

i.         http://itunes.apple.com/app/google-authenticator/id388497605?mt=8

b)    Android 安装

i.         https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator

2)添加账号

a)     URL 扫描

i.         通过浏览器,打开URL,利用Google authenticator 扫描工具扫描,立即获取账号验证

b)    手动添加账号

i.         手动输入code 和 key

ii.         Your new secret key is: FEEJORGN5BMHRUN3

iii.         Your verification code is 357438

3)iPhone Google authenticator图解

4)Android Google 身份验证图解

第4章  SSH 登录验证

4.1 XSHELL 登录验证

a)     打开XSHELL,登录服务器,选择keyboard Interactive

b)    输入框中输入code

c)     输入框中输入服务器密码

d)    进入服务器

e)    查看ssh登录日志信息

4.2  跳板机登录

1)    Ssh connection 192.168.6.9

[[email protected] ~]# ssh 192.168.6.9 -p10000

The authenticity of host ‘[192.168.6.9]:10000([192.168.6.9]:10000)‘ can‘t be established.

RSA key fingerprint is51:b0:98:85:05:6e:4d:b5:8b:b4:a2:7e:d1:d2:a2:b5.

Are you sure you want to continue connecting (yes/no)? yes

2)   根据提示输入code

Warning: Permanently added ‘[192.168.6.9]:10000‘ (RSA)to the list of known hosts.

Address 192.168.6.9 maps to localhost, but this doesnot map back to the address –

POSSIBLE BREAK-IN ATTEMPT!

Verification code:

3)   输入密码

Password:

Last login: Thu Sep 11 13:16:41 2014 from 192.168.8.88

[[email protected]~]# ifconfig eth0

eth0      Link encap:Ethernet  HWaddr FA:16:3E:FD:22:2A

inet addr:192.168.6.9  Bcast:192.168.15.255  Mask:255.255.240.0

UP BROADCAST RUNNING MULTICAST  MTU:1500 Metric:1

RX packets:71714432 errors:0dropped:0 overruns:0 frame:0

TX packets:149214 errors:0 dropped:0overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:5170948024 (4.8 GiB)  TX bytes:10248495 (9.7 MiB)

[[email protected] ~]#

4)   登录成功

4.3 总结

支持多key 集群,允许多台机器统一key管理,根据权限划分,不同的部门所生产不同的key,对应的用户所登录的key,规范用户登录权限管理

注意/root/google_authenticator文件权限,400 权限

时间: 2024-10-23 10:15:08

Google Authenticator SSH双重验证技术的相关文章

SSH使用Google Authenticator二次验证

基本的原理如上图: 客户端在输入code码之后,才可以输入服务器的密码,进行账户验证,方可进入服务器. 实现方式如下: 1. 安装所需组件 # yum -y install mercurial pam-devel 2.  安装qrencode,在Linux上,有一个名为 QrenCode 的命令行工具可以很容易帮我们生成二维码,google authenticator命令行生成二维码就是调用它. # wgethttp://fukuchi.org/works/qrencode/qrencode-3

Google authenticator 谷歌身份验证,实现动态口令

google authenticator php 服务端 使用PHP类 require_once '../PHPGangsta/GoogleAuthenticator.php'; $ga = new PHPGangsta_GoogleAuthenticator(); //创建一个新的"安全密匙SecretKey" //把本次的"安全密匙SecretKey" 入库,和账户关系绑定,客户端也是绑定这同一个"安全密匙SecretKey" $secret

google authenticator 谷歌身份验证器

How to add extra security to your MVC web application, using two factor authentication. Download source code - 2.8 MB What is Two Factor Authentication? Two Factor Authentication is a way to authenticate users using two of the three valid authenticat

谷歌上google authenticator二次验证

参考: GA安装: https://www.cnblogs.com/hanyifeng/p/kevin4real.html https://shenyu.me/2016/09/05/centos-google-authenticator.html https://www.howtoing.com/secure-ssh-with-google-authenticator-on-centos-7 原理: https://en.wikipedia.org/wiki/Google_Authenticat

使用Google Authenticator给ssh进行登录验证

普通情况下的服务器登录,是"服务器+密码"这种直白的验证方式,但是这种方式太过简单,一旦密码泄露,服务器就有危险,于是为了安全我们就要在登录上再加一把锁,那就是使用Google Authenticator(谷歌身份验证器)这个工具,在登录的时候进行一次验证,只有"验证通过了"+"密码正确"才能登陆服务器. 安装前准备: 1)关闭Selinux :#setenforce 0 2)安装依赖:#yum -y install gcc make pam-d

Linux实现ssh双因子登陆,with Google Authenticator

之前听别人说,用了XX家的云,安装一个手机APP,每次登陆需要先验证动态密码,再输入密码,安全性大大提高,实现了传说中的双因子登陆,当时觉得好洋气. 因为之前关注的角度不同,我更多的是从登陆统计以及报警来观察,毕竟让你直接登陆的堡垒机或者跳板机并不多,是我太out,听说过双因子登陆却一直没有去行动,于是心血来潮详细百度谷歌了一些文章,更多的都是通过添加第三方模块增加二次验证,于是几个较为出名的就来了:谷歌认证google-authenticator,freeotp,洋葱令牌,对比了一下名字,发现

CentOS 使用 Google Authenticator 登录验证

手机上安装Google身份验证器 安装地址:http://www.wandoujia.com/apps/com.google.android.apps.authenticator2 注意:机器上一定要关闭selinux 1.安装依赖: yum -y install gcc make pam-devel libpng-devel libtool wget git 2.开启EPEL源 yum –enablerepo=epel 3.或者直接安装EPEL源RPM包 # CentOS 6 rpm -Uvh

【Linux】使用Google Authenticator 实现ssh登录双因素认证

一般来说,使用ssh远程登录服务器,只需要输入账号和密码,显然这种方式不是很安全.为了安全着想,可以使用GoogleAuthenticator(谷歌身份验证器),以便在账号和密码之间再增加一个验证码,只有输入正确的验证码之后,再输入密码才能登录.这样就增强了ssh登录的安全性.账号.验证码.密码三者缺一个都不能登录,即使账号和密码正确,验证码错误,同样登录失败.其中,验证码是动态验证码,并且是通过手机客户端自动获取(默认每隔30秒失效一次) Google Authenticator开源版主页 h

谷歌验证 (Google Authenticator) 的实现原理是什么?

著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:徐小花链接:http://www.zhihu.com/question/20462696/answer/18731073来源:知乎 开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码. 实现Google Authenticator功能需要服务器端和客户端的支持.服务器端负责密钥的生成.验证一次性密码是否正确.客户端记录密钥后生成一次性密码.