CentOS7-openssh漏洞修复方法

2021年09月26日发布的OpenSSH_8.8中移除了对RSA-SHA1算法的支持,但由于该算法使用广泛,在OpenSSH_8.8中允许用户通过HostkeyAlgorithms和PubkeyAcceptedAlgorithms选项配置,重新启用对单个目标主机和用户进行RSA-SHA1的连接或认证。

项目实际环境中如果使用了RSA-SHA1,不会轻易进行openssh的版本升级,但这就有可能被甲方的安全扫描发现高危漏洞,并要求修复。对此,才有了以下的应对措施。

版本探测

telnet 服务器的ssh端口,回显中可以看到当前的openssh版本
在这里插入图片描述

修复方法

备份文件

cp /usr/sbin/sshd /usr/sbin/sshd.bak
ls /usr/sbin/sshd*

在这里插入图片描述
修改sshd二进制文件中的版本号,并重启sshd服务
**注意:**版本号的格式有要求,可以查阅OpenSSH官网,修改为最新的安全版本,这里的测试环境修改为 “OpenSSH_8.8”

strings /usr/sbin/sshd |grep OpenSSH_8.7
sed -i 's/OpenSSH_8.7/OpenSSH_8.8/g' /usr/sbin/sshd
strings /usr/sbin/sshd |grep OpenSSH_8.8
systemctl restart sshd

在这里插入图片描述

版本复测

客户端再次 telnet 服务器的ssh端口测试,回显中为修改后的版本即可
在这里插入图片描述

附:批量处理脚本

now_ver=`ssh -V 2>&1 |cut -c '1-11'`					 #当前版本
change_ver=OpenSSH_8.8									 #修改版本

cp /usr/sbin/sshd{,.bak}								 #备份文件
strings /usr/sbin/sshd |grep ${now_ver}					 #查看当前二进制文件中的版本号
sed -i "s/${now_ver}/${change_ver}/g" /usr/sbin/sshd	 #修改二进制文件中的版本号
strings /usr/sbin/sshd |grep ${change_ver}				 #检查版本号是否修改成功
systemctl restart sshd									 #重启sshd服务
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐