共计 1677 个字符,预计需要花费 5 分钟才能阅读完成。
缘起
由于近来出于安全方面的考虑,对安装了欧拉系统 (openEuler 22.03 (LTS-SP4) 的服务器上进行漏洞扫描。不扫不知道,一扫吓一跳。服务器居然存在 OpenSSH 远程代码执行漏洞(CVE-2024-6387
)。
该漏洞是因为 sshd 存在一处因信号处理程序竞争问题导致的远程代码执行漏洞(CVE-2024-6387), 未经身份验证的攻击者利用漏洞可以在受害者 Linux 系统上以 root 身份执行任意代码。
影响版本范围:8.5p1 <= OpenSSH < 9.8p1
安全版本:OpenSSH >= 9.8p1
而我的服务器上的版本刚好在这个范围内 …(OpenSSH_8.8p1)
那么根据上文可知,只有升级到 openssh-9.8p1 的版本(目前最新版本)才是安全的。
PS:切记!在升级 SSH 之前服务器上最好安装 telnet 或其他远程工具,以防升级失败导致无法链接上服务器。
1、检查版本
[root@localhost cyunzing]# ssh -V
OpenSSH_8.8p1, OpenSSL 1.1.1wa 16 Nov 2023
可以看到现在的 OpenSSH 版本是 8.8p1,在漏洞包含的版本范围内,需要进行升级。
2、下载 openssh 源码包
编译 OpenSSH 时需要服务器上安装的 OpenSSL 版本大于等于 1.1.1。
而从上面 ssh -V
的结果可知,服务器已安装的 OpenSSL 满足编译 OpenSSH 的要求,因此无需更新 OpenSSL,直接升级 OpenSSH 即可。
2.1、服务器不可以联网的情况
在可以链接互联网网络的电脑下载源码包,再上传到内网中的服务器。
下载地址:https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz
2.2、服务器可以联网的情况
使用 curl
(openEuler 系统最小化安装都自带了这个命令)命令下载,-o
是指定下载后保存的文件名。
curl 是在命令行下工作的文件传输工具,支持多种协议,常用于网络数据请求和测试。
curl -o openssh-9.8p1.tar.gz https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz
2.3、解压 openssh-9.8p1.tar.gz
上面两步结合具体情况任选一种即可,这里我选的是第一种,即2.1、服务器不可以联网的情况
,保存在服务器的目录地址是/root/cyunzing/updateBugs/
(目录要提前创建好),然后解压进入目录。
tar zxvf openssh-9.8p1.tar.gz
cd openssh-9.8p1/
3、编译安装 openssh
通过 2.3、解压 openssh-9.8p1.tar.gz
步骤解压、cd 进入 openssh-9.8p1/
目录后执行以下命令,检查编译环境有无问题和进行编译安装。
./configure
make -j4 && make install
4、安装完毕
重启 sshd 服务
这一步如果没卡住不动就是没问题了。
systemctl restart sshd
5、检查是否安装成功
新开一个远程链接窗口 ,执行ssh -V
对比未升级前的版本信息,判断是否升级完成。
[root@localhost openssh-9.8p1]# ssh -V
OpenSSH_9.8p1, OpenSSL 1.1.1wa 16 Nov 2023
bingo!看到下图,OpenSSH 的版本变成 9.8p1 就是已经安装成功啦~
总结
OpenSSH 远程代码执行漏洞(CVE-2024-6387)这个漏洞对于使用受影响版本的服务器来说是一个严重的安全威胁,因为它允许未经身份验证的攻击者以 root 身份执行任意代码。
在未来的系统维护中,保持警惕和及时更新软件以及服务将始终是确保网络安全的关键。我希望这篇文章能够作为一个有用的资源,帮助各位同行在维护他们的服务器时起到一定作用。
真诚希望这篇文章可以帮助你解决了眼前的问题,也希望增强了各位同行对系统安全与维护的认识。