蚊章汇 - 运维密码
type: channel
link: https://linuxcn.bwsl.wang/tag/%E8%BF%90%E7%BB%B4%E5%AF%86%E7%A0%81/
items: 开源啦！「运维密码」小程序携全新 UI 开源啦！
items: SSH 安全加固篇：通过“运维密码”小程序实现 SSH 双因子认证
items: Linux 中国发布的第一款小程序：「运维密码」，你的好帮手

开源啦！「运维密码」小程序携全新 UI 开源啦！
type: item
date: 2017-04-14T17:33:00+08:00
description: 继前一段时间 Linux 中国推出了“运维密码”微信小程序之后，经过开发团队的努力，重构了代码和使用了全新的现代 UI 后，同时在 GitHub 上开源了！“运维密码”小程序是一款工作在微信环境中的小程序，主要的功能是提供一款方便、可靠、美观的 TOTP 密钥管理工具。TOTP 是基于时间的一次性密钥方案，可以为用户认证提供双因子认证（2FA）的支持，即在通常的密码之外，还额外通过另外一种方式来交叉认证以提升安全。TOTP 认证，或者说双因子认证，在得到 Google 的大力推进之后，得到了广泛的互联网业界的支持，包括 Google、GitHub 等重视互联网安全的大型网站，也包括各类比特币网站，均支持 TOTP RFC 草案所规定的 TOTP 算法，并且 Google 还开源了其服务器端实现和客户端代码。除此之外，TOTP 还广泛应用于 Apple 、QQ、微博等各种需要双因子认证的场景中。除了网站之外，对于我们运维人员来说，TOTP 还可以应用与服务器的远程管理上，为 SSH、SFTP、FTP 等提供安全、简单、可靠的保障！新版本介绍好了，言归正传，我们来介绍一下本次新版本发布的情况。本次版本迭代，我们毫不谦虚的将版本定位到 1.0.x，我们认为“运维密码”的第一阶段功能目标已经达成，目前主要有：添加 TOTP 场景查看 TOTP 密钥修改和删除 TOTP 场景生成场景二维码分享（克隆） TOTP 场景给朋友本地备份 TOTP 场景信息本地恢复 TOTP 场景信息新的版本，采用了现代化的 UI 设计，看起来会更专业一点。场景列表场景列表会列出你已经添加的所有场景，最上方是时间进度条会显示场景密钥要更新的时间。在列表最下方，可以点击“添加场景”，调出摄像头来扫描密钥二维码来添加场景。点击场景列表中的场景密钥，会复制该密钥，以备手机上使用。场景详情点击场景列表中的场景（非密钥区域），可以查看场景具体详情，在此可以“分享”、“生成二维码”、“编辑”乃至于“删除”场景。分享：请点击页面右上角的菜单，可以将该场景分享给你的朋友，这样你的朋友就会得到一份该场景的完全复制品。切记！分享该场景会导致别人一直拥有该场景信息，并随时生成密钥（和你的场景生成相同的密钥）。如果这不是你希望的结果，切勿分享。生成二维码：可以生成一份该场景特定的二维码，将其打印出来贴于服务器等物理环境处，使用时直接用微信扫描即可调出“运维密码”小程序添加该场景。（注：该场景二维码不同于用于添加场景的种子二维码）编辑和删除：也可以对此场景进行编辑，尤其是你在添加场景时输入的信息不够明确时。也可以在此修改该场景的地点（我们后继的版本会推出地点感知功能）。生成的场景二维码场景备份与恢复场景备份信息，请截屏安全保存最重要的，“运维密码”小程序提供了备份和恢复功能，这是 Google 所开源的 Google 身份验证器所缺乏的最重要功能。有了备份功能，你就不用担心手机丢失或更换手机的麻烦了。目前我们提供了本地备份功能。限于微信小程序的限制，我们不能保存文件，只能将备份信息以二维码的方式备份出来。您可以将该二维码截屏，保存到安全可靠的地方，以备以后需要时恢复。现阶段没有提供远程云端备份功能的主要原因是用户可能忧虑云端备份的隐私保障，因此，我们在没有办法提供一个可靠备份，连服务提供方也不能破解的方法之前，不会提供云端备份功能。开源啦！作为一家倡导开源的社区，我们一定要亲自践行开源才算得上名至实归。因此，我们在代码重构稳定之后，第一时间就将“运维密码”开源了出来。开源地址在：https://github.com/LCTT/WeApp-Password本项目采用 AGPL 3.0 协议开源。欢迎大家复刻和提交拉取请求，有什么错误和功能建议，也非常欢迎大家给我们提出 issue。欢迎体验我们还开设了“运维密码”小程序体验群，欢迎大家到群内发表意见，以及寻求帮助。加入本群也可以及时体验我们发布前的体验版本，第一时刻尝鲜。运维密码体验群扫描识别添加上面的好友，验证信息：“运维密码”，可获得入群邀请。使用参考要在 OpenSSH 上使用 TOTP，请参考 netb2c 写的《SSH 安全加固篇：通过“运维密码”小程序实现 SSH 双因子认证》。我们还会陆续推出更多使用 “运维密码”的文章，也欢迎大家给我们投稿。哦，好像我没有说到如何找到“运维密码”——我想这一定难不倒你，不过假如你不知道的话，你可以如此这般：在微信中“发现”->“小程序”中搜索“运维密码”即可。什么，你的“发现”中没有“小程序”，那你可以扫描下面这个二维码，来尝鲜你的第一个小程序：运维密码致谢感谢开发团队的 @Bestony、betty、wxy；感谢撰写使用“运维密码”的文章的同学：netb2c；感谢“运维密码”体验群的诸位…

SSH 安全加固篇：通过“运维密码”小程序实现 SSH 双因子认证
type: item
date: 2017-03-30T16:30:00+08:00
description: 本文讲述了如何通过 Linux中国 所开发的微信小程序“运维密码”实现在 Linux 系统上 OpenSSH 双因子认证，从而对 SSH 进行安全加固。背景近来很多知名企业都出现了密码泄露，通过单一的密码对敏感和重要信息进行保护已经面临越来越多的挑战，因此业内对多重认证的呼声也越来越高，而其中的双因子认证得到了业界的普遍认可。什么是双因子认证 双因子认证 （ Two-factor authentication ） （即 2FA），是一种通过组合两种不同的验证方式进行用户身份验证的机制。在这种多重认证的系统中，用户需要通过两种不同的认证程序：提供他们知道的信息（如用户名/密码）再借助其他工具提供用户所不知道的信息（如用手机生成的一次性密码）SSH 双因子认证实现思路在 SSH 服务器端安装 Google 身份验证器服务器端组件，这样，在使用密码或密钥登录 SSH 服务器时，同时通过与 Google 身份验证器相匹配的客户端所提供的验证信息来确认登录者的身份和权限。这里的客户端可以使用 Google 身份验证器 （ Google Authenticator ） 应用，也可以使用我们开发的、采用同一个 RFC 规范的“运维密码”微信小程序。Google 身份验证器所采用的算法规范基于 TOTP RFC 草案。（题外话，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：https://github.com/LCTT/WeApp-Password ，希望更多的人能够受益和共同完善它，有什么功能需求、错误反馈请到 GitHub 上提出 issue，也欢迎发送拉取请求给我们。此外，大家在使用过程中，发现什么问题或需要帮助，也可以加入微信体验群：扫描识别添加上面的好友，验证信息：“运维密码”，可获得入群邀请。言归正传，我们来看看如何使用“运维密码”来为你的 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 上安…

Linux 中国发布的第一款小程序：「运维密码」，你的好帮手
type: item
date: 2017-03-20T16:55:00+08:00
description: 运维密码是什么？这是我们 Linux 中国旗下的 LCTT 技术组开发的第一款小程序，基于微信平台提供 OTP 口令管理功能。想必绝大部分系统管理员都知道 OTP ，OTP 即 一次性口令 （ One-Time Password ） ，最常见的一次性口令是 基于时间的一次性口令 （ Time-based One-time Password ） （TOTP），即每隔一段时间（如 60 秒）就生成一个一次性的六位数字的密码。这种一次性口令可以用于各种登录验证系统，比如 SSH、网站登录等等，只要验证系统和验证者持有相同的 OTP 种子，并采用一致的算法即可。最常见的方式是采用 Google 身份验证器 （ Google Authenticator ） 来提供基于时间的一次性口令（TOTP），也有采用 RSA 等公司提供的硬件 OTP 令牌进行一次性口令管理的。而我们这次推出的“运维密码”，即是一款采用和 Google 身份验证器 Google Authenticator 相同的算法的微信小程序。为什么要开发这样的一款小程序呢，请听我道来~缘起为什么要做这样一款小程序？ 大概是因为 Google 身份验证器 Google Authenticator 无法满足我的需要，没有办法备份场景。这让我很是担心，假如我丢失了手机，我可能再也无法登录到我的服务器上去了。 而且本身这个工具不是一个高频的应用，所以我们在考虑，能不能有这样的一种可能，让我们可以很方便地使用，同时也不会像App 一样过于侵扰我们的生活。 微信小程序出现后，其随用随走的理念深得我们的喜爱。其强大的线上线下融合能力，也非常适合我们的需求。所以在微信小程序出现后，我们就一直在关注，看我们的想法能不能在微信小程序上得以实现。为什么选择微信小程序微信小程序在某些方面的理念和我们对于这款工具的理念是一致的。随用随走：我们希望我们的产品不会给用户产生过多的困扰，而是很方便就可以使用它。作为一款安全工具，我们不希望它对用户的生活产生太多的麻烦。线上线下融合：微信小程序的形式让我们的用户只需要打开微信，扫一扫线下的二维码，就可以快捷、方便的拿到自己需要的动态密码。“运维密码”的优势备份功能由于我们对于云服务的安全和隐私的担忧，所以我们将备份的功能做在了本地。当然，后续我们也会根据用户的不同偏好而推出基于云端的备份。资源占用小“运维密码”小程序不超过 200K，你只需要花费很少的流量，就可以实现和 Google 身份验证器 Google Authenticator 的全部功能。产品无感知迭代我们会对“运维密码”不断的更新，当然，你可以无需担心更新带来的数据问题。我们的小程序会自动帮你做好升级的事情。开始使用你可以直接在微信小程序中的搜索框内搜索：或者，在微信公众号“运维伙伴”的详情页中也有“运维密码”的入口：或者，扫描下方二维码，添加运维密码小程序：我还制作了一个简单的视频：如何加入自己的场景？打开“运维密码”，点击右下角的“扫描二维码”的按钮：扫描服务商给你的“种子二维码”（这里包含了场景相关的信息），会自动识别，并且跳转到添加信息的界面： 确认信息无误后，点击添加。添加成功后，即可跳转到到运维密码的详情页： 视频操作如下：如何获取密码？在“运维密码”的首页，你可以看到你所添加的场景的列表，从中可以直接看到当前的一次性密码。也可以用下述的场景二维码来获取。生成场景二维码点击某个场景，可以查看该场景的详情，在此可以生成该场景的场景二维码（不同于之前的服务商所提供的“种子二维码”）。将此二维码打印出来，贴于所应用的场景附近，如服务器或终端旁边，这样你可以在该服务器或终端旁边直接用微信扫描即可马上显示该场景当前的一次性密码。备份与恢复作为最重要的差异性功能，“运维密码”提供了场景的备份和恢复功能，从此再也不怕丢失了手机后无法登入。备份首先进入“设置”，点击“本地场景备份”，会显示你的所有场景：确认后，会显示一个二维码图片，这个图片就是你的场景备份信息，千万保存好，也不要随意给别人。视你所保存的场景多寡，这个二维码图片也尺寸和信息密度也有所不同。生成该备份信息会稍微有一些慢。对此备份，可以截屏保存到本地，妥善保管即可。下一步我们还会推出加密保存，需要使用密码才能解开。恢复如果因为某种原因，删除了场景或丢失了场景，你可以通过之前备份信息进行恢复，只需要选择你的备份二维码即可。重复的场景并不会覆盖。下一步，我们也会推出基于公有云或私有云的云端备份功能。更多功能更多使用细节，您可以亲自试试。我们也有一大波新的功能增强正在赶来~入群体验对此小程序感兴趣的同学，欢迎加入专属体验群，提出您的建议和反馈：扫描上述二维码并添加好友后，验证信息：“运维密码”，即可获得加群邀请。寄语我们希望运维密码能够给你带来更加…