给Linux VPS折腾上totp(两步验证)用于登录验证

之前提到过使用密钥登录SSH,这种方式禁用了密码,安全性上是没问题的。。。除非,你的私钥也泄露啦~不怕,为了应对这种极端情况,我们不妨弄个2FA组成“多重验证”。

安装Google Authenticator PAM module

我这里用的是debian系统,运行以下命令把Google Authenticator PAM module 安装进系统

apt-get update
apt-get install libpam-google-authenticator 

安装完,使用以下命令 google-authenticator --qr-mode=none开始配置过程。由于我这里制定了“–qr-mode=none”,所以整个过程李是不包含QRcode的,手机上需要手动输入secret key~图方便的话去掉“–qr-mode=none”即可

   $ google-authenticator
   Do you want authentication tokens to be time-based (y/n) y
   <这里是自动生成的二维码>
   Your new secret key is: ZVZG5UZU4D7MY4DH          (验证器配置密钥)
   Your verification code is 269371                  (输入验证器生成的验证码)
   Your emergency scratch codes are:                 (备用令牌码)
     70058954
     97277505
     99684896
     56514332
     82717798
   
   Do you want me to update your "/home/username/.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
   (是否拒绝多次重复使用相同的令牌?这将限制你每30s仅能登录一次,但会提醒/阻止中间人攻击。)
   
   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) n
   (是否将窗口时间由1分30秒增加到约4分钟?这将缓解时间同步问题。)
   
   If the computer that you are logging into is not 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
   (是否启用此模块的登录频率限制,登录者将会被限制为最多在30秒内登录3次。)

设置完成后,开始配置SSH部分

配置openssh

配置前请保持当前shell连接,避免被“反锁”的尴尬情况。我这里参考了

  • Linux服务器启用两步验证方式登录
  • 的文章,内容有删改!
    配置 /etc/pam.d/sshd 加入以下内容
    @include common-password
    auth required pam_google_authenticator.so nullok

    注释以下内容
    #@include common-auth
    配置/etc/ssh/sshd_config
    更改以下选项
    # Change to yes to enable challenge-response passwords (beware issues with
    # some PAM modules and threads)
    ChallengeResponseAuthentication yes

    添加以下内容
    UsePAM yes
    AuthenticationMethods publickey,password publickey,keyboard-interactive

    以上内容搞定后,就可以新开个ssh试试效果啦
    值得一提的是,vps的时间要和登录设备的时间相同,否者会导致登录失败,如果你的服务器不方便更新时间,可以修改 .google-authenticator ,添加以下内容
    " WINDOW_SIZE 17
    这样,单个code的过期时间将延长到4分钟。不过这样做会降低2FA的安全性,具体怎么选择全看你自己。

    参考链接:

     
             

    用Telegram 搭建图床?这个可以有

    万物皆可图床!今天来介绍用利用Telegram搭建网盘的开源项目:tgfilestream 。我这里用的是fork版,这里推荐使用这个或者这个。这里推荐“TG-Files-to-Link”这...

    推荐几个2020年可用的免费SSL证书

    推荐几个2020年可用的免费ssl证书,现在给网站上小绿锁是大势所趋,SSL证书一般价格都不菲,如果非特殊需求用免费的SSL证书就够用了~ 亚洲诚信一年域名 网...

    自建密码管理器:强烈推荐bitwarden_rs

    今天推荐个密码管理程序bitwarden的第三方版bitwarden_rs,是时候抛弃chrome自带的密码管理啦~要问我为什么转投bitwarden的怀抱?其实很简单,chrome浏览器自...

    吃螃蟹~试着在debian上使用xanmod内核,

    听说升级linux内核会有安全和性能上的加成,目前小鸡用的是Linux version 4.9.0-12-amd64内核,本着“吃螃蟹”的态度,今天试试更新到5.6.14版本的内核,看看有...

    测试-【フィクサー】呪術廻戦【MAD】

    转载自Youtube,看起来播放速度还不错~ 这个MAD制作真的很精良,结合字幕来看,歌词莫名和漫画剧情很搭233.另外说下,呪術廻戦 已经在TV筹划中啦,喜欢的可惜...

    纯ipv6 vps部署tls+ws+cdn

    这个tls+ws+cdn你肯定不陌生,很多人用这种方式部署v2,也算是烂大街了。。。不过今天稍微升点难度,如何在纯ipv6的vps 上部署呢? 这里我们不能用一键脚本模...