OpenSSH 漏洞补丁更新笔记

相关背景

客户通过第三方扫漏工具发现服务器centos8和Ubuntu22.04有OpenSSH 相关高危漏洞
扫出以下漏洞:

OpenSSH 输入验证错误漏洞(CVE-2019-16905)
OpenSSH 操作系统命令注入漏洞(CVE-2020-15778)
OpenSSH 安全漏洞(CVE-2021-41617)
OpenSSH 代码问题漏洞(CVE-2023-38408)
OpenSSH 信息泄露漏洞(CVE-2020-14145)
OpenSSH 授权问题漏洞(CVE-2021-36368)

加固建议

若您不需要使用该应用或服务,请关闭该应用或服务即可。
目前厂商已经发布了升级补丁以修复这个安全问题,截止20231017日,建议升级到到当前最新的版本9.5,或后续更高版本。
Linux系统请在以下页面进行下载:
http://www.openssh.com/portable.html

其他版本系统请到厂商主页下载最新版本:
http://www.openssh.com/

OpenSSH 8.8 以后版本弃用RSA 以及影响

https://www.openssh.com/txt/release-8.8
OpenSSH 弃用 RSA 签名主要是因为 RSA 签名算法的安全性在现代密码学标准中已经开始受到一些质疑。
OpenSSH 8.8 版本开始建议用户使用 ECDSA 或 Ed25519 签名算法,而不是 RSA。这样做可以提高系统的安全性,并且通常不会影响到用户的使用。
OpenSSH 8.8 版本中弃用 RSA 签名对安全性的影响是很小的,因为 RSA 签名仍然被广泛支持和使用,而且通常不会在短期内完全淘汰。
可能需要更新配置:如果您的 OpenSSH 配置中明确指定了使用 RSA 签名算法,您可能需要更新配置以使用推荐的 ECDSA 或 Ed25519 签名算法。您可以编辑 OpenSSH 的配置文件(通常是 /etc/ssh/sshd_config),将 HostKeyAlgorithms 和 PubkeyAcceptedKeyTypes 指定为 ECDSA 和 Ed25519,以确保使用这些更现代的签名算法。
兼容性考虑:尽管 OpenSSH 8.8 弃用了 RSA 签名,但由于 RSA 仍然被广泛使用,因此这个变化不太可能导致大规模的兼容性问题。但是,如果您的系统与使用 RSA 签名的旧客户端或服务端有交互,可能需要进行一些调整和测试,以确保兼容性。

在这里插入图片描述

centos8 更新openssh9.7p1

不适用centos7及以下,会报错

通过rpm包进行安装

请大佬同事对源码包构建成rpm包后进行安装
文件在文章最上面

#上传rpm包至服务器后解压
unzip x86_64.zip
yum install ./openssh-server-9.7p1-1.el8.x86_64.rpm ./openssh-clients-9.7p1-1.el8.x86_64.rpm ./openssh-9.7p1-1.el8.x86_64.rpm
#备份/etc/ssh
cp -a /etc/ssh /etc/ssh.bak
#删除历史ssh_host相关配置,重启后会自动生成
rm -rf /etc/ssh/ssh_host_*
systemctl enable sshd
systemctl restart sshd

更新完成后,在单开个终端测试登录是否正常
远程工具重新登录可能出现以下提示点OK即可
重启服务器进行验证
如是堡垒机连接,因sshd更新,导致无法远程连接,需要删除堡垒机内服务器资源,重新添加可解决该问题

在这里插入图片描述

Ubuntu更新openssh-9.5p1 以及9.7都可

前置条件

从相关网站下载源码包,我下载的openssh-9.5p1.tar.gz
http://www.openssh.com/portable.html
https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/
在这里插入图片描述

下载的源码包导入服务器后操作

查看openssh版本

dpkg -l | grep openssh

自带源更新,查看是否能更新到9.7

apt upgrade openssh-server openssh-client

下载源码包到服务器

tar -zxvf openssh-9.5p1.tar.gz
cd openssh-9.5p1

安装环境

sudo apt update
sudo apt install build-essential zlib1g-dev libssl-dev libpam0g-dev libselinux1-dev autoconf automake

预配置,会提示需要pam,不确定不安装pam是否有影响,未测试。

./configure --prefix=/usr/local/openssh --with-zlib=/usr/local/zlib --with-pam --with-ssl-dir=/usr/local

安装pam

apt-get install -y  libpam-pwquality

编译安装

make && make install

修改默认配置,避免无法登录服务器

echo 'PermitRootLogin yes' >>/usr/local/openssh/etc/sshd_config
echo 'PubkeyAuthentication yes' >>/usr/local/openssh/etc/sshd_config
echo 'PasswordAuthentication yes' >>/usr/local/openssh/etc/sshd_config

备份历史配置文件,并替换

mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
cp /usr/local/openssh/etc/sshd_config /etc/ssh/sshd_config

mv /usr/sbin/sshd /usr/sbin/sshd.bak
cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd

mv /usr/bin/ssh /usr/bin/ssh.bak
cp /usr/local/openssh/bin/ssh /usr/bin/ssh

mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak
cp /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen

mv /etc/ssh/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub.bak
cp /usr/local/openssh/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub

修改sshd服务

# modify Type=notify to Type=simple
sed -i "s/Type\=notify/Type\=simple/g" /etc/systemd/system/sshd.service

更新完看到sshd 是disabled
故更新完成后对sshd服务重启,并添加开机自启,以及检查

systemctl daemon-reload
systemctl enable sshd
systemctl restart sshd
systemctl list-unit-files --type=service | grep enabled

查看ssh版本是否更新

ssh -V

单开个终端进行远程连接测试,如异常还可进行调整
重启服务器再次登录验证

  • 25
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值