• 谷歌身份验证器加强Linux帐户安全


    1. 下载 Google的身份验证模块
    1. 安装相关依赖包

    yum -y install wget gcc make pam-devel libpng-devel

    1. 解压缩并编译安装

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

    # cd libpam-google-authenticator-1.0

    # make

    # make install

    1.  添加验证机制

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

    [lw@localhost ~]$ google-authenticator

     

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

    首先会提示你,是否要基于时间生成令牌,选择Y,然后它会生成密钥,以及紧急状态使用的验证码(有5个,谨当无法获取验证码时使用,注意这些紧急验证码用一次就少一个的哟,所以这几个紧急验证码一定要保存好,关键时刻要派上大用场的),详细信息如下:

    https://www.google.com/chart?chs=200x200&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

    默认情况下,令牌只在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服务:

    当再次使用lw用户ssh登录服务器的时候,就会提示输入验证码:

    [lw@linuxtl ~]$ ssh -p52113 10.51.76.191

    Verification code:

    1. 手机添加验证码客户端

    在手机上安装一款名叫:Google身份验证器的应用(或者有一款叫做洋葱的软件)。在打开的应用界面中新增帐户,然后会出现两个选择:扫描条形码(二维码),或者选择输出提供的密钥,任选其一即可。

     

    这两项信息从哪里来呢?前面执行google-authenticator命令后首先输出的信息,那个HTTP的网址,打开你就会发现,原来它是个图片二维码,扫描即可。若网址打不开也没关系,选择密钥就OK了。

     

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

    1. 使用crt等工具连接服务器

    1、如果命使用SecureCRT客户端登录时,需要在 连接——属性——连接——ssh2——"鉴权/authenicaion" 中将 "键盘交互/keyboard Interactive" 调到第一位。不然连接会出错。

    2、以上安全配置对于ssh密钥认证方式进行的登录无效——即在pam配置中增加上面的配置后,通过密钥认证时不会要求输入验证码 。

  • 相关阅读:
    力扣学习计划图床01
    一篇文章带你初步了解C++重载机制
    解决Github Gist无法访问问题
    VScode解决文件乱码问题,调整文件编码
    六、angular 生成二维码
    五、angularjs在进入界面前加载数据
    四、angularjs 如何在页面没有登录的情况下阻止用户通过更改url进入页面--$stateChangeStart
    三、angularjs上传图片
    二、单页应用如何调用微信接口和手机端的一些方法?
    二、Flex 布局教程:实例篇
  • 原文地址:https://www.cnblogs.com/liang-wei/p/5848804.html
Copyright © 2020-2023  润新知