Linux下CentOS7使用OTPW实现双因子密码本登录

otpw优点:
1、前缀密码+一次性随机码,相当于双重加密。就算随机码列表泄露,没有前缀密码也是无法登录.
2、如果一次没登录成功,会启用三重随机码.
3、用户目录下保存密码的文件可通用,适合批量部署.

安装:

cd /home
wget –no-check-certificate https://www.cl.cam.ac.uk/~mgk25/download/otpw-1.5.tar.gz
cd otpw-1.5

编辑Makefile 文件,修改以“PAMLIB=”开头的那行配置:
64位系统将其改为:

PAMLIB=/lib64/security

32位系统将其改为:

PAMLIB=/lib/security

如果不确定要放在哪个目录,可以打开/etc/pam.d/sshd,用find查找一下里面的so文件在哪个目录,上面就填哪个目录。
修改后,进行编译:

make
make install

注意:编译完成后,SSH会自动断开,需要重新连接,请在无任何其他操作的情况下编译!

启用otpw:

编辑/etc/pam.d/sshd文件,添加如下两行:

auth required pam_otpw.so
session optional pam_otpw.so

配置sshd_config:
编辑/etc/ssh/sshd_config文件,先查询是否存在UsePAM yes这条,存在的话添加如下两行:

UsePrivilegeSeparation yes
ChallengeResponseAuthentication yes

如果不存在或者是其他状态,请修改为UsePAM yes,并添加两行:

UsePrivilegeSeparation yes
ChallengeResponseAuthentication yes

修改完成后,重启下SSH服务:

service sshd restart

生成双因子密码本:

cd /home/otpw-1.5
chmod +x otpw-gen
./otpw-gen >passwd_list

执行此条记录时,会有以下提示:

Enter new prefix password:
Reenter prefix password:

在这里,需要两次输入自定义密码前缀,务必需要记住此密码,以后登录的时候,需要先加入此前缀,然后输入密码本密码才能进行登录。
生成密码后,我们可以使用cat passwd_lis预览下内容:

OTPW list generated 2019-05-24 10:22 on localhost
000 WC3k IGgU 056 8EGn KmRQ 112 bbab XybR 168 J4Lb iAuU 224 ypM6 EKkr
001 CZF9 m29s 057 N7PZ Nv:+ 113 9PG4 Jr:T 169 urhc 2yJY 225 DBKR up+E
002 ksO5 bYZE 058 3OHs fx=k 114 qsQC Ynwu 170 OZS6 :%IF 226 YBJV jQPr
003 +tNK OPXZ 059 to7M zxXA 115 9rWy m4n8 171 /vMx zkPr 227 7o/q Aa38
004 oVVK Zphg 060 H6Dg M%Mc 116 %tkB IPj5 172 nhdg CQJn 228 FHfx qERp
005 L7Tu 5t8j 061 /Unq zYj9 117 chQ4 RXwC 173 RArr WGHr 229 s%Ls Lxh%
006 6Tst WfPQ 062 dZkV XtTz 118 O9Xv NI+N 174 22/4 Tz3n 230 sqFR nSQ%
007 QgKP deFZ 063 Fg%3 rbzB 119 Sqi/ F9d8 175 u5%x eGv% 231 zRTo M9zu
008 iWQB h2Ny 064 YJ2B wO3W 120 wxJx h6Aj 176 pM%2 =J=z 232 XyUM 7h5m
......

每一个密码前面有一个编号,后面是密码本内容。一次性可以生成 280 个一次性密码,每个密码(默认是 8 个字符)由一个 3 位十进制数索引。
注意:由于我们生成密码的时候,设置了一个自定义密码前缀,所以,就算这份一次性密码泄露,但是不知道我们设置的前缀密码,也是不能登录的。

生成密码本后,在用户的主目录下,会生成一个根据根一次性密码对应的HASH值密码文件,用来进行登录匹配。使用一次,此HASH值密码就会进行删除操作。

如何用一次性密码登录:
本地测试:ssh 本地ip ,例如: ssh 10.0.0.1
会出现如下提示:

Password 112:

现在打开你的密码表,找到索引号为 112的密码:bbab XybR
我们就需要输入密码格式为:刚才设置的自定义密码,比如是ddcc,加上新密码bbab XybR ,那就需要输入:ddccbbab XybR
密码中存在的空格可以删除,也可以保留。
注意:一次输错密码后,下次输入就需要三个密码同时输入,比如:

Password 118/243/082:

这样子的格式,输入方式也是一致,先输入自定义密码,再输入三个密码即可。

» 本文链接:Linux下CentOS7使用OTPW实现双因子密码本登录
» 转载请注明来源:刺客博客
» 如果文章失效或者安装失败,请留言进行反馈。