阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

通过Google身份验证器加强Linux帐户安全

85次阅读
没有评论

共计 5067 个字符,预计需要花费 13 分钟才能阅读完成。

近期接连爆出的多起重大且具深远影响的安全门事件,使得信息安全越来越受重视,个人隐私保护是一方面,考虑到国情,个人隐私不是丢失多少的问题,而是还能保留多少,很多情况下无法左右,所以多数人都是抱着无所谓的心态。不过做为系统管理员,就不能也这样想喽,自己所管理的服务器的安全可是不容小视,若有丢失,那影响可就大了。
 
同样是基于国情,我们知道国内金融等领域推出的硬件验证码颇具实效,每次使用网银时,必须要插入一个小设备,并且需要将这个设备中生成的随机验证码,做为登录的重要条件输入成功之后,才能正常使用系统功能。
 
对于屌丝管理员,我们不太可能为我们管理的服务器申请这类设备,不过,通过一些技术应用,我们可以将手机也变成一个类似随机验证码生成器 (感谢 Google),每次登录系统时,除了常规的用户 / 密码验证外,还需要绑定了指定密钥的手机上生成的验证码,才能顺利登录系统。若有此机制的话,那么即使密钥泄露,除非获取到密码的那个人,同时也拿到你的手机,否则因为它没有验证码,仍然无法登录执行破坏,系统就是安全的。同学们,动心了没有,如果好奇心没有完全泯灭的话,就继续往下看吧。

如何从 Web 浏览器远程监视 Linux 服务器和桌面 http://www.linuxidc.com/Linux/2014-05/101790.htm
 
以我手边的某台 Linux 服务器为例。下载 Google 的身份验证模块:

# wget https://google-authenticator.googlecode.com/files/libpam-google-authenticator-1.0-source.tar.bz2
 
解压缩并编译安装,操作步骤如下:

# tar xvf libpam-google-authenticator-1.0-source.tar.bz2 

# cd libpam-google-authenticator-1.0

# make

# make install

而后,google 的验证模块就会被复制到 /lib64/security 目录下,而用来生成密钥的可执行程序:google-authenticator,则复制到 /usr/local/bin 目录下,方便调用。
 
提示:编译安装 google-authenticator 需要 pam-devel 依赖包,如果没有的话,请首先安装该依赖包哟。

比如,我们想为 jss 用户增加一层额外的验证机制,则先通过 google-authenticator 生成密钥:

[www.linuxidc.com@localhost ~]$ google-authenticator 

 

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

首先会提示你,是否要基于时间生成令牌,选择 Y,然后它会生成密钥,以及紧急状态使用的验证码 (有 5 个,谨当无法获取验证码时使用,注意这些紧急验证码用一次就少一个的哟,所以这几个紧急验证码一定要保存好,关键时刻要派上大用场的),详细信息如下:
 
https://www.google.com/chart?chs=200×200&chld=M|0&cht=qr&chl=otpauth://totp/jss@localhost.localdomain%3Fsecret%3D3V7K2ONO55DE56SD
 
Your new secret key is: 3V7K2ONO55DE56SD

Your verification code is 424380

Your emergency scratch codes are:

  96307775

  87311306

  56915688

  84694809

  27875014

然后会提示你是否要更新验证文件,必须更新啊:

Do you want me to update your “/home/jss/.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 it increases

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

更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2014-05/101791p2.htm

默认情况下,令牌只在 30 秒内有效,由于客户端和服务器时间不完全一致的因素,可以将时间窗口加大到最长 4 分钟,是否要这么做:

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

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

token before and after the current time. If you experience problems with 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

是否限制尝试次数,每 30 秒只能尝试最多 3 次:

If the computer that you are logging into isn’t hardened against brute-force

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

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

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

密钥生成好之后,下面修改 PAM 中关于 ssh 的配置,编辑 /etc/pam.d/sshd 文件:

# vim /etc/pam.d/sshd

增加一行:

auth required pam_google_authenticator.so

接下来再修改 ssh 的配置文件,编辑 /etc/ssh/sshd_config 文件:

# vim /etc/ssh/sshd_config

将 ChallengeResponseAuthentication no 修改为 ChallengeResponseAuthentication yes

然后重新启动 ssh 服务:

 

当再次使用 jss 用户以 SSH 方式登录时,就会提示输出验证码:

[root@mysqldb02 ~]# ssh jss@192.168.30.249

Verification code:

那么,验证码从哪里来呢,朋友,您这算是问到点儿上了。拿出你的手机,安装一款名叫:Google 身份验证器的应用。在打开的应用界面中新增帐户,然后会出现两个选择:扫描条形码 (二维码),或者选择输出提供的密钥,任选其一即可。

有同学可能会问,这两项信息从哪里来呢,同学,请你再仔细看下,执行 google-authenticator 命令后首先输出的信息,那个 HTTP 的网址,打开你就会发现,原来它是个图片二维码,扫描即可。若网址打不开也没关系,选择密钥就是了嘛。

帐户添加完成后,您应该就能在手机上看到它生成的验证码了,先输入验证码,然后再输入密码,只有验证码和密码都输入正确,才能正常登录。

Password:

Last login: Tue Jan 14 10:14:33 2014 from 192.168.30.246

注意哟,输入验证码的时间最长只有 30 秒钟,超时之后该验证码就失效,需要到手机端获取新的验证码才行。

近期接连爆出的多起重大且具深远影响的安全门事件,使得信息安全越来越受重视,个人隐私保护是一方面,考虑到国情,个人隐私不是丢失多少的问题,而是还能保留多少,很多情况下无法左右,所以多数人都是抱着无所谓的心态。不过做为系统管理员,就不能也这样想喽,自己所管理的服务器的安全可是不容小视,若有丢失,那影响可就大了。
 
同样是基于国情,我们知道国内金融等领域推出的硬件验证码颇具实效,每次使用网银时,必须要插入一个小设备,并且需要将这个设备中生成的随机验证码,做为登录的重要条件输入成功之后,才能正常使用系统功能。
 
对于屌丝管理员,我们不太可能为我们管理的服务器申请这类设备,不过,通过一些技术应用,我们可以将手机也变成一个类似随机验证码生成器 (感谢 Google),每次登录系统时,除了常规的用户 / 密码验证外,还需要绑定了指定密钥的手机上生成的验证码,才能顺利登录系统。若有此机制的话,那么即使密钥泄露,除非获取到密码的那个人,同时也拿到你的手机,否则因为它没有验证码,仍然无法登录执行破坏,系统就是安全的。同学们,动心了没有,如果好奇心没有完全泯灭的话,就继续往下看吧。

如何从 Web 浏览器远程监视 Linux 服务器和桌面 http://www.linuxidc.com/Linux/2014-05/101790.htm
 
以我手边的某台 Linux 服务器为例。下载 Google 的身份验证模块:

# wget https://google-authenticator.googlecode.com/files/libpam-google-authenticator-1.0-source.tar.bz2
 
解压缩并编译安装,操作步骤如下:

# tar xvf libpam-google-authenticator-1.0-source.tar.bz2 

# cd libpam-google-authenticator-1.0

# make

# make install

而后,google 的验证模块就会被复制到 /lib64/security 目录下,而用来生成密钥的可执行程序:google-authenticator,则复制到 /usr/local/bin 目录下,方便调用。
 
提示:编译安装 google-authenticator 需要 pam-devel 依赖包,如果没有的话,请首先安装该依赖包哟。

比如,我们想为 jss 用户增加一层额外的验证机制,则先通过 google-authenticator 生成密钥:

[www.linuxidc.com@localhost ~]$ google-authenticator 

 

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

首先会提示你,是否要基于时间生成令牌,选择 Y,然后它会生成密钥,以及紧急状态使用的验证码 (有 5 个,谨当无法获取验证码时使用,注意这些紧急验证码用一次就少一个的哟,所以这几个紧急验证码一定要保存好,关键时刻要派上大用场的),详细信息如下:
 
https://www.google.com/chart?chs=200×200&chld=M|0&cht=qr&chl=otpauth://totp/jss@localhost.localdomain%3Fsecret%3D3V7K2ONO55DE56SD
 
Your new secret key is: 3V7K2ONO55DE56SD

Your verification code is 424380

Your emergency scratch codes are:

  96307775

  87311306

  56915688

  84694809

  27875014

然后会提示你是否要更新验证文件,必须更新啊:

Do you want me to update your “/home/jss/.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 it increases

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

更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2014-05/101791p2.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-20发表,共计5067字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中