xml地图|网站地图|网站标签 [设为首页] [加入收藏]
来自 每日资讯 2019-11-16 13:36 的文章
当前位置: 新濠国际登录平台 > 每日资讯 > 正文

由于还是单一因素的身份验证方式,  公司线

  公司线上的使用机器不能让用户随意的登陆,所以就不能让开发随意的登陆到生产的机器的。于是就打算使用google-auth的验证方式呢。

身份验证对于服务器管理来说是非常重要的步骤,通过验证过程可以证明你的权力和权限,例如:你是谁?你能做什么?通常情况下,大家都采用账户和密码的方式来登录 SSH,谨慎一点的 Linux 管理员会采用密钥对的方式来验证 SSH 用户身份。

  如果google-auth的方式。

大家都知道,SSH 默认是采用密码方式来进行身份验证的,即便你使用了 SSH 密钥来代替密码。由于还是单一因素的身份验证方式,一旦密钥泄漏,同样还是会危及到服务器安全。

 搭建google-authenticator:

为了解决这一问题,本文中我们将介绍如何启用 Ubuntu Server 的 SSH 多重身份验证(MFA,Multi-factor authentication)。启用之后,在登录 SSH 时需要验证你绑定的计算机或手机等不同的验证因素才能登录成功。当然,多重身份验证的因素可以包括:

  搭建这个很简单,如下:

  • 密码或安全问题
  • 验证程序或安全令牌
  • 指纹或语音
  • ……

  git clone 下载最新的google auth 最新版。

常见的验证方式就是使用 OATH-TOTP 应用,例如 Google Authenticator(Microsoft Account 的两步验证功能就是用的它)。OATH-TOTP(基于时间的一次性开放密码)是一种开放协议,它用于生成不同的一次性使用密码,通常情况下为每 30 秒新生成一个 6 位验证码。

  cd google-authenticator-libpam/

下面我们将介绍如何使用 OATH-TOTP 应用完成 SSH 登录认证,从而取代掉系统原本的 SSH 密码或密钥验证方式,使得服务器管理更安全。

  ./bootstrap.sh

安装libpam-google-authenticator

在本步骤中我们将安装和配置 Google PAM。

熟知 Linux 身份验证体系的朋友都知道,PAM 是 Linux 系统中验证用户身份的基础架构和认证模块。Google 开发的 OATH-TOTP 应用也安全兼容 PAM,所以我们可以使用 Google Authenticator 来完成 SSH 多重身份验证。

  1. 使用如下命令更新 Ubuntu 软件仓库缓存:

    sudo apt-get update

  2. 安装 Google PAM:

    sudo apt-get install libpam-google-authenticator

新濠国际登录平台 1

libpam-google-authenticator 安装好之后,我们便需要为每个要进行重身份验证的用户生成 TOTP key。这个 Key 是在用户基础上生成的,而不是系统全局。也就是说,要使用 TOTP 认证程序登录 SSH 的用户必需单独获取和维护自己的密钥。

google-authenticator

执行上述命令后,程序会提出问题,第一个问题是询问是否生成基于时间的认证令牌。Google PAM 支持基于时间或基于序列的访问令牌。使用基于序列的令牌时,每次访问需要将令牌代码递增;基于时间的访问令牌会在一定时间内随机变化,使用起来更像是 Google Authenticator,所以我们这里选择yes。

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

新濠国际登录平台 2

在回答第一个问题之后,便会立即输出大量信息。包括:QR 码、新的安全密码、验证码及 5 个 8 位的紧急码。这些信息请务必妥善保存,相当重要。

新濠国际登录平台 3

此时请用 Google Authenticator 扫描输出的二维码将其添加到 Google 的 OATH-TOTP 应用当中,一旦添加成功,将会出现一个新的条目并每 30 秒刷新一次 6 位数令牌。

新濠国际登录平台 4

新濠国际登录平台 5

剩下的就是告诉 Google PAM 如何工作,我们一步一步来看。

Do you want me to update your “~/.google_authenticator” file (y/n) y

表示将 key 和配置选项写入 .google_authenticator 文件,我们选择yes。

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

是否将使用过的密码配置为立即过期,这里通常选择yes,以防止有人截获。

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

默认令牌有效时间为 30 秒并会自动补偿服务器与客户端之间的时间差,该选项表示是否将时间容差改为 4 分钟,我们选择No。

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

是否限制 30 秒内只能尝试 3 次登录,我们选择yes以防止人有暴力破解。

新濠国际登录平台 6

完成以上步骤后,Google PAM 的所有配置工作就已经完成了。

  ./configure && make && make install

配置OpenSSH支持MFA

接下来,我们要配置 SSH 来使用 TOTP key,这需要告诉 SSH 使用 Google PAM 进行身份验证。

  1. 在/etc/pam.d/sshd文件最后添加如下内容:

    auth required pam_google_authenticator.so nullok

新濠国际登录平台 7

最后的nullok是告诉 PAM 此种身份验证方式为可选,此时用户仍然可同时使用 SSH 密码和密钥的方式进行登录。当我们测试使用 OATH-TOTP key 能够正确无误登录时,便可将nullo删除以指明强制使用 MFA。

  1. 接下来我们需要配置 SSH 支持此种方式的身份验证。编辑/etc/ssh/sshd_config配置文件,将其中的ChallengeResponseAuthentication配置为yes,再重启 SSH 服务:

    sudo service ssh restart

至此,我们的 SSH 已经可以使用 Google Authenticator 进行验证了,是不是非常不错。最后,为了保证服务器安全,建议大家开启 SSH 密钥 + MFA 双重验证的方式,放弃对 SSH 密码验证方式的使用。

编辑/etc/ssh/sshd_config配置文件:

PasswordAuthentication no

UsePAM yes #下面增加
AuthenticationMethods publickey,keyboard-interactive

重要:在配置过程中大家务必在测试好使用 Google Authenticator 可以登录 SSH 之后再停用 SSH 密码或密钥验证方式,否则导致无法连接就 Over 了。

下面关于SSH相关的文章您也可能喜欢,不妨参考下:

Ubuntu 下配置 SSH服务全过程及问题解决 http://www.linuxidc.com/Linux/2011-09/42775.htm

Ubuntu 14.04 下安装Samba 及SSH 服务端的方法 http://www.linuxidc.com/Linux/2015-01/111971.htm

SSH服务远程访问Linux服务器登陆慢 http://www.linuxidc.com/Linux/2011-08/39742.htm

提高Ubuntu的SSH登陆认证速度的办法 http://www.linuxidc.com/Linux/2014-09/106810.htm

开启SSH服务让Android手机远程访问 Ubuntu 14.04  http://www.linuxidc.com/Linux/2014-09/106809.htm

如何为Linux系统中的SSH添加双重认证 http://www.linuxidc.com/Linux/2014-08/105998.htm

在 Linux 中为非 SSH 用户配置 SFTP 环境 http://www.linuxidc.com/Linux/2014-08/105865.htm

更多Ubuntu相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-02/128138.htm

新濠国际登录平台 8

  ln -s /usr/local/lib/security/pam_google_authenticator.so /lib64/security/pam_google_authenticator.so

  修改/etc/pam.d/sshd,

  #最上方加一行 "auth required pam_google_authenticator.so"
   #这个配置可以更复杂一些,加上一些参数,详见 libpam/README
   #注:如果遇到仍然需要输入密码的情况,改成 "auth sufficient pam_google_authenticator.so" 试试。

  修改/etc/ssh/sshd_config

  将 ChallengeResponseAuthentication 选项的 no 改成 yes

  将 UsePAM yes

  service sshd restart

   生成密钥

  $ google-authenticator    #注:运行这个命令的是需要登录的用户,不是root用户
  Do you want authentication tokens to be time-based (y/n) y  (确认:基于时间的认证token)
  【这里会显示生成二维码的地址、二维码、密钥明文、应急码】
  Do you want me to update your "/var/www/.google_authenticator" file (y/n) y (确认:更新配置文件)
新濠国际登录平台,  ......
  size of 1:30min to about 4min. Do you want to do so (y/n) n (token有效期是1.5min,选y就是4min)
  ......
  Do you want to enable rate-limiting (y/n) y (30s内只允许尝试三次)

  在app里扫二维码,或者手动输入密钥,即可看到token每隔30s更新一次了

本文由新濠国际登录平台发布于每日资讯,转载请注明出处:由于还是单一因素的身份验证方式,  公司线

关键词: