一、安装谷歌认证工具
在Etx Server端安装google-authenticator认证工具
Centos7/Rhel7上的安装包叫"google-authenticator-1.04-1.el7.x86_64.rpm"
rpm –ivh google-authenticator-1.04-1.el7.x86_64.rpm
安装后查看是否存在"/usr/lib64/security/pam_google_authenticator.so"此文件,此文件是做etx双因素认证的关键。
二、配置认证服务器
找一台服务器,配置好集中认证需要的各类信息后,通过"id xxx"可以查询到相关用户之后即可。
配置etx node,并加入到etx server节点中。
此处注意,加入过程中选择"AUTH - 本机/PAM 身份验证"
如果你需要将此服务器也作为node节点使用,其他也可以选择并配置
三、配置google认证
新建/etc/pam.d/exceed-connection-node 文件,注意,此文件名不能修改
内容如下
#%PAM-1.0 auth required pam_sepermit.so auth required pam_google_authenticator.so auth substack password-auth auth include postlogin # Used with polkit to reauthorize users in remote sessions -auth optional pam_reauthorize.so prepare account required pam_nologin.so account include password-auth password include password-auth # pam_selinux.so close should be the first session rule session required pam_selinux.so close session required pam_loginuid.so # pam_selinux.so open should only be followed by sessions to be executed in the user context session required pam_selinux.so open env_params session required pam_namespace.so session optional pam_keyinit.so force revoke session include password-auth session include postlogin # Used with polkit to reauthorize users in remote sessions -session optional pam_reauthorize.so prepare
四、配置etx认证
在ETX Server端,打开服务器管理器界面,找到"站点设置","身份验证"选项卡
"身份验证类型"选择PAM
五、生成二维码
为了方便快速生成一个可直接使用的二维码,建议安装qr工具
具体可参考https://github.com/lincolnloop/python-qrcode/
如果是centos7
可以直接用yum install python-qrcode-5.0.1-1.el7来安装,如果是redhat7,则需要手动下载安装包进行安装
编写一个脚本
#!/bin/bash ##-------readme ##- This script use for googleauth make qrcode . ##- Default qr code is not good ##- This script can make a png qr code secret=`sudo -u $1 google-authenticator -t -d -f -i "GoodleAuth" -l "$1" -u -w3 | grep secret|grep key|awk -F " " '{print $6}'` /usr/bin/qr "otpauth://totp/"$1"?secret="$secret"&issuer=OpenEtx" > $1_Google_qr.png echo "User "$1" Secret Code is:" $secret echo "The Qr code is username_Google_qr.png"
使用方法
使用root用户执行 ./google.sh username
此时会生成一个username_Google_qr.png的文件,及User username Secret Code is: xxxx安全码
将这两个内容发给用户即可。
六、配置谷歌验证客户端
手机端下载谷歌验证器或者使用宁盾令牌都可以,其他兼容google身份验证器的工具也接收。
使用手机客户端扫描接收到的二维码。绑定成功。登录测试
七、建议
1、建议使用独立认证服务器
2、建议可以将qr码和安全码配置一个sendmail直接发送给用户
3、不建议认证服务器配置任何挂载项
4、也可以做如下修改,防止用户登录到这台认证服务器。
修改/etc/ssh/目录下面的sshd_config
找到PasswordAuthentication 将设置成no
找到ChallengeResponseAuthentication 将设置成yes
找到usePAM 将设置成yes
网友留言: