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:
这样子的格式,输入方式也是一致,先输入自定义密码,再输入三个密码即可。