Linux Token Auth 一次性密码认证

Linux Token Auth 一次性密码认证

http://netkiller.github.io/journal/token.html

目录

  • 1. 什么是Token
  • 2. 为什么使用令牌
  • 3. 什么时候能用到令牌技术
  • 4. 本文的Token应用在什么地方
  • 5. 谁来部署
  • 6. 手机端配置
    • 6.1. 设置密码
    • 6.2. 查看服务器密码
    • 6.3. 设置刷新时间

1. 什么是Token

Token(令牌)是一个身份认证标识,token还有一个特点,那就是存在过期时间的。也就是令牌不是长久有效的。

2. 为什么使用令牌

我们通常需要临时或者一次性使用的身份认证

3. 什么时候能用到令牌技术

例如我们去餐厅就餐,向前台获取Wifi密码,然后可以享受30分钟的上网服务。30分钟过后密码将失效。

我们公司有很多服务器,密码的管理非常麻烦,有时还会有人事变动,一旦人员发生变动,所有的服务器密码都需要修改一次,非常麻烦,偶尔会有漏改情况,使用堡垒机可以更好的管理密码,但成本非常昂贵。

于是我便想起了Token技术,但购买Token硬件成本也要花费不少钱。Token的原理我很清楚,通过对称算法算出相同对等密钥,我们可以不购买硬件设备,自己开发,手机设备随身携带,所以开发移动版Token最好不过。

4. 本文的Token应用在什么地方

我采用Token技术实现Linux指定用户的密码周期变化,以时间为基准,手机同步算出服务器上的密码。为了防止密码被穷举,我增加了4个干扰字符。

如果对密码算法强度感到不安全,你可以自行修改复杂度。

你还可以远程修改密码,不多讲。

5. 谁来部署

首先由管理员部署密码修改程序 chpasswd.sh 然后加入到crontab 中定时运行。

由于考虑到读者的水平参差不齐,所以我使用shell完成,这样绝大多数读者都能看懂。

# cat chpasswd.sh 
		
#!/bin/bash
datetime=`date +%Y-%m-%d" "%H":"%M`
email="neo.chan@live.com"
#password=$(cat /dev/urandom | tr -cd [:alnum:] | fold -w30 | head -n 1)
string=$(date -u "+%Y$1%m$2%d$3%H$4%M")
password=$(echo $string | md5sum | cut -c 2-9 | base64 | tr -d "=" | cut -c 1-32)
echo $password > ~/.lastpasswd
echo $password | passwd www --stdin > /dev/null		

~/.lastpasswd 中保存最后一次密码

crontab 设置,每分钟修改一次密码。

# crontab -l
*/1 * * * * /root/chpasswd.sh a b c d		

a b c d 自行设定,设定与手机端相同即可

至此服务器端配置完成

6. 手机端配置

安装Token.apk文件到你的手机

https://github.com/oscm/Token

原文发布于微信公众号 - Netkiller(netkiller-ebook)

原文发表时间:2016-05-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏一“技”之长

自己动手设计一款iOS自动构建发布工具 原

    本篇博客就是基于上面的想法,给大家介绍编写一个简洁的自动化工具的具体步骤与核心要点。在编写本博客时,我也基于这样的想法开发了一款Mac上的iOS自动构建...

652
来自专栏喵了个咪的博客空间

[Golang软件推荐] Frp内网穿透

在一个IP紧缺的时代,连电信也不分配固定IP给到你用,一条专网专用线路贵的不行,那么作为软件开发人员常常要使用到外网,比如和微信调试程序,给到不在同一网段的朋友...

4024
来自专栏FreeBuf

评测告诉你:那些免费代理悄悄做的龌蹉事儿

笔者2013年曾发表过一篇文章《免费代理服务器为何免费?》——文中提及代理服务器之所以免费,是因为其可以轻松浸染用户的上网行为并收集数据。而最新上线的Proxy...

1985
来自专栏极乐技术社区

微信小程序开发需要注意的30个坑

1、小程序名称可以由中文、数字、英文。长度在3-20个字符之间,一个中文字等于2个字符。 2、小程序名称不得与公众平台已有的订阅号、服务号重复。如提示重名,请更...

2828
来自专栏大史住在大前端

webpack4.0各个击破(9)—— karma篇

webpack对应的关键词是模块化,它的主要任务就是打包和管理模块,所以首先需要明确的概念就是webpack之所以关联自动化测试,是因为它能够为测试脚本提供模块...

872
来自专栏Timhbw博客

小白搭建博客教程-购买虚拟主机并搭建(2)

2016-06-1011:03:08 发表评论 18℃热度 一键部署工具选择 系统选择 连接虚拟主机 开始一键部署 目录 上一回说道:小白搭建博客教程...

4486
来自专栏Laoqi's Linux运维专列

大白话Docker入门(二)

1565
来自专栏云计算教程系列

如何在Ubuntu 14.04上使用双因素身份验证保护您的WordPress帐户登录

安全性是运行WordPress网站最重要的方面之一。我们中的许多人都倾向于认为黑客不会打扰我们的网站,但实际上,未经授权的登录尝试是在公共互联网上运行服务器的常...

160
来自专栏企鹅号快讯

GoAhead服务器 远程命令执行漏洞 分析报告

安全通告 1 GoAhead Web Server是为嵌入式实时操作系统(RTOS)量身定制的开源Web服务器。很多国际一线大厂商,包括IBM、HP、Oracl...

20610
来自专栏逸鹏说道

亿级Web系统搭建:单机到分布式集群

当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题。为了解决这些性能...

3377

扫码关注云+社区