赞
踩
在本节中,展示如何安装实现谷歌双因素协议的可插拔验证模块(PAM)。使用这个模块,用户必须输入一个2FA令牌才能登录。当用户的密码或SSH密钥被盗时,这额外的保护可以帮助提高安全性。这个模块将工作在任何利用SSH的Linux操作系统上。虽然我只在运行Raspbian操作系统的Raspberry Pi上测试了本教程,但它应该可以在任何操作系统上工作。
测试登录,(保持上面的登录session不要断开,重新打开一个session,以防配置有问题时,无法登录设备)
enable the epel repo in AL2,install the google-authenticator package
sudo amazon-linux-extras install epel -y
sudo yum install google-authenticator -y
sudo yum install epel-release
sudo yum install google-authenticator -y
Now run the google-authenticator command and give the following responses
下面这些设置将被存储在用户的〜/.google_authenticator文件中,emergency scratch codes 中的5个代码是紧急代码,务必牢记,这是在你的动态口令无法使用的情况下使用的,记住,用一个失效一个。后期可以登陆上去后,重新生成!!
google-authenticator
----------------------------
Do you want authentication tokens to be time-based (y/n) y
上述共需回答5个y
第1个:问你是否想做一个基于时间的令牌 y
第2个:是否更新你的google认证文件,由于第一次设置,所以一定选 ????????
第3个:是否禁止口令多用,这里选择y,禁止它,以防止中间人欺骗。 y
第4个:默认情况,1个口令的有效期是30s,这里是为了防止主机时间和口令客户端时间不一致,设置的误差,可以选择y,也可选n,看要求严谨程度 y
第5个:是否打开尝试次数限制,默认情况,30s内不得超过3次登陆测试,防止别人暴力破解。 y
----------------------------
编辑 /etc/pam.d/sshd 添加如下内容, 需要注意位置,pam(Pluggable Authentication Modules)执行是有先后顺序的,因此下面内容放置位置不同,会有不同表现,比如放在common-auth前的话,用户登录是会先要求输入验证码,在做后续的验证;
sudo vim /etc/pam.d/sshd
----------------------------
# 新增
auth required pam_google_authenticator.so nullok
# 注释
# auth substack password-auth
----------------------------
# 编辑 sshd_config 文件,修改规则
sudo vim /etc/ssh/sshd_config
----------------------------
# 编辑 /etc/ssh/sshd_config, #修改如下配置为
ChallengeResponseAuthentication yes
# 关闭密码登录,备注:debian中比较特殊,仅开启sshkey+verification code方式时,需要设置AuthenticationMethods publickey,keyboard-interactive 并注释掉 @include common-auth。
PasswordAuthentication no
# 如果需要使用秘钥+验证码的登录方式,添加如下配置
AuthenticationMethods publickey,keyboard-interactive
----------------------------
sudo systemctl restart sshd
默认在执行google-authenticator时,会在当前用户目录下生成.google_authenticator的文件,里面存储这 key 和备用 code。如若需要为其他用户开启2FA,可以已另外用户的身份来执行,或者已当前用户的身份执行,执行后移动到其他用户的目录下,注意要修改对应的权限。 此外登录时遇到问题,可以查看/var/log/auth, /var/log/messages等日志,或者使用journalctl -xe来查看出错信息。
复用之前的.google_authenticator文件,无需执行 google-authenticator 命令生成 .google_authenticator 文件,直接拷贝其他机器,然后复制修改登录账号对应的google_authenticator 文件权限
# 在登录用户目录下创建 google_authenticator 文件
sudo touch /home/ec2-user/.google_authenticator
# 编辑
sudo vim /home/ec2-user/.google_authenticator
# 需要设置 400 目录权限
sudo chmod -R 400 /home/ec2-user/.google_authenticator
# 如果创建的文件不是登录用户,需要改成对应用户
sudo chown -R ec2-user:ec2-user /home/ec2-user/.google_authenticator
# 查看下权限是否正确
ll /home/ec2-user/.google_authenticator
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。