SH 安全加固篇 通过“运维密码”小程序实现 SSH 双因子认证 ..,小程序中心

来源:未知 浏览 129次 时间 2021-06-14 08:15

背景

近来很多知名企业都出现了密码泄露通过单一的密码对敏感和重要信息进行保护已经面临越来越多的挑战因此业内对多重认证的呼声也越来越高优化论坛因此业内对多重认证的呼声也越来越高而其中的双因子认证得到了业界的普遍认可。

什么是双因子认证

双因子认证Two-factor authentication(即 2FA)是一种通过组合两种不同的验证方式进行用户身份验证的机制。

在这种多重认证的系统中用户需要通过两种不同的认证程序:

提供他们知道的信息(如用户名/密码)

再借助其他工具提供用户所不知道的信息(如用手机生成的一次性密码)

SSH 双因子认证实现思路

在 SSH 服务器端安装 Google 身份验证器服务器端组件这样在使用密码或密钥登录 SSH 服务器时同时通过与 Google 身份验证器相匹配的客户端所提供的验证信息来确认登录者的身份和权限。这里的客户端可以使用Google 身份验证器Google Authenticator应用也可以使用我们开发的、采用同一个 RFC 规范的“运维密码”微信小程序。

Google 身份验证器所采用的算法规范基于 TOTP RFC 草案。

(题外话RSA 硬件令牌北京网页制作公司RSA 硬件令牌也是采用了类似的机制只不过客户端是硬件的;而最近 Apple 公司的一些服务所需要的双因子认证也是一样的但是其用于呈现验证信息的是手机或平板上的 iOS 内部组件非独立应用。)

关于Google 身份验证器

为了鼓励广泛采用双因子认证的方式Google 公司发布了Google 身份验证器Google Authenticator这是一款开源的、可基于开放规则(如 HMAP/ 基于时间)生成一次性密码的软件。它是一款跨平台软件可运行在 Linux、Android、iOS 上。Google 公司同时也支持插件式鉴别模块pluggable authentication module PAM 使其能和其它适用于 PAM 进行验证的工具(如 OpenSSH)协同工作。

Google 身份验证器分为两个部分分别是服务器端组件和客户端应用都称之为“Google 身份验证器”这里我们为了澄清起见会在说明时指明。

关于运维密码

Google 公司所开发的身份验证器以简洁著称但也因此缺乏一些必要的特性比如备份功能——这使得使用该身份验证器的人时时处于手机丢失的恐慌之中。(虽然 Google 提供的服务器端和自身的服务也提供了紧急验证码以用于这种情况下的自救但是很多采用 Google 身份验证器的服务并不支持和提供紧急验证码)

作为一家紧密关注于运维安全、积极倡导信息安全的技术社区Linux 中国 久已有开发一个新的替代品的想法。恰逢微信推出小程序平台我们感觉到这正是一个良机可以充分利用到微信和小程序的便利之处又适合小程序的使用情境。因此由 Linux 中国旗下的 LCTT 技术组的白宦成同学独立开发了一款旨在移动互联网场景中提供更好的多因子认证体验的小程序:运维密码。

顺便说一句在产品初步成熟之后我们已经将该小程序开源给社区代码托管于 GitHub:LCTT/WeApp-Password 希望更多的人能够受益和共同完善它有什么功能需求、错误反馈请到 GitHub 上提出 issue北京网页制作公司有什么功能需求、错误反馈请到 GitHub 上提出 issue也欢迎发送拉取请求给我们。

此外北京网页制作公司也欢迎发送拉取请求给我们。

此外大家在使用过程中发现什么问题或需要帮助也可以加入微信体验群:

或添加开发者的微信号:ixiqin_com 添加备注:“运维密码”直接与开发者沟通。

言归正传我们来看看如何使用“运维密码”来为你的 SSH 服务提供双因子认证支持。

如何开始

首先我们需要一些准备工作:

一台运行着 OpenSSH 服务(版本大于 6.2)的 Linux 主机

一台能运行微信的智能手机

一台支持 SSH 登录的终端

在 Linux 系统中安装 Google 身份验证器服务器端组件

第一步需要在运行着 OpenSSH 服务的 Linux 主机上安装 Google 身份验证器服务器端组件。按照如下步骤安装 Google 身份验证器及其 PAM 模块。

用安装包安装 Google 身份验证器服务器端组件

如果你不想自己构建 Google 身份验证器服务器端组件在几个主流 Linux 发行版上有已经编译好的安装包。安装包里面包含 Google 身份验证器服务器端组件的二进制程序和 PAM 模块。

在 Ubuntu 上安装 Google 身份验证器服务器端组件:

sudo apt-get install libpam-google-authenticator

在 Fedora 上安装 Google 身份验证器服务器端组件:

sudo dnf install google-authenticator

在 CentOS 上安装 Google 身份验证器服务器端组件需要首先启用 EPEL 软件库然后运行如下命令:

sudo yum install google-authenticator

编译安装 Google 身份验证器服务器端组件

首先安装构建 Google 身份验证器所需的软件包。

在 Debian、 Ubuntu 或 Linux Mint 上:

sudo apt-get install wget make gcc libpam0g-dev

在 CentOS、 Fedora 或 RHEL 上:

sudo yum install wget make gcc pam-devel

然后下载 Google 身份验证器服务器端组件的源代码:

git clone https://github.com/google/google-authenticator.git

编译安装 Google 身份验证器服务器端组件:

cd google-authenticator/libpam./bootstrap.sh./configuremake

如果构建成功你会在目录中看到 pam_google_authenticator.so 和 google-authenticator 两个二进制文件。

标签: 身份服务器验证Google