云计算运维

Windows Server 2003 - Windows Server 2019 系统工具,Linux系统脚本,Mysql、Nginx、PHP、Redis、K8S、Seafile、Weblogic 、Jenkins、DNS、DHCP、FTP、IIS、Zookeeper、Rabbitmq、Oracle、Tomcat、Mavrn等服务搭建维护,请关注我.

Linux服务器添加双重认证


一、环境说明

最近在做三级等保,需要我们把Linux服务器做双因子身份验证(Two-Factor Authentication,2FA)是一种安全措施,要求在登录时提供两个不同的身份验证因素,以增加账户的安全性。

所以选用 Google Authenticator 配置双因子身份验证。

二、部署并配置Google Authenticator


1、首先我们需要启用epel仓库
yum install epel-release
2、同步时间(因为我现在用的机器可以连接外网所以直接同步了外网,如果是内网机器则与现在时间相差不超过30S)
yum -y install ntp ntpdate
ntpdate ntp1.aliyun.com
3、接着直接安装google验证器
# 查看版本信息
yum list google-authenticator
# 直接安装
yum install google-authenticator
也可以在github下载编译安装
github地址:
https://github.com/google/google-authenticator-libpam
4、安装完成之后进行初始化配置
google-authenticator
----------------------------
Do you want authentication tokens to be time-based (y/n) y
  
上述共需回答5个y   
第1个:问你是否想做一个基于时间的令牌  y
(需要记录二维码,或者URL,或者口令,如下图口令为PU7TEDORGV7BD3J4JW6CGO55UY)
第2个:是否更新你的google认证文件,由于第一次设置,所以一定选  y  
第3个:是否禁止口令多用,这里选择y,禁止它,以防止中间人欺骗。y  
第4个:默认情况,1个口令的有效期是30s,这里是为了防止主机时间和口令客户端时间不一致,设置的误差,可以选择y,也可选n,看要求严谨程度    y
第5个:是否打开尝试次数限制,默认情况,30s内不得超过3次登录测试,防止别人暴力破解。y5、给ssh启用google验证
echo "auth required pam_google_authenticator.so" >> /etc/pam.d/sshd 
6、修改ssh的配置文件/etc/ssh/sshd_config,将下列参数调整为yes
ChallengeResponseAuthentication yes
7、重启ssh服务
systemctl restart sshd

验证:


手机安装google authenticator
手机扫描上方二维码进行添加验证码
另一终端进行远程该主机(我使用的是本机Windows11)
C:\Users\Administrator>ssh root@192.168.1.10
The authenticity of host '192.168.1.10 (192.168.1.10)' can't be established.
ED25519 key fingerprint is SHA256:YpTLRBlczz8Zz7SQTXm+LmVCQlez6uLaoblJyvgGLpY.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.1.10' (ED25519) to the list of known hosts.
(root@192.168.1.10) Password:(用户密码)
(root@192.168.1.10) Verification code:(google authenticator随机验证码)
Last login: Thu Oct 12 05:11:53 2023 from 192.168.1.1
[root@localhost ~]#
  • 分享:
评论
发表评论 说点什么