当前位置: 首页 > article >正文

修复OpenSSH远程代码执行漏洞:版本升级到9.9p1

目录

  • 前言
  • 1. 备份配置文件
  • 2. 下载 OpenSSH 最新版本
  • 3. 编译安装 OpenSSH
  • 4. 替换旧版 OpenSSH 并创建符号链接
  • 5. 重启 SSH 服务
  • 6. 验证安装结果
  • 结语
  • 参考文章

前言

OpenSSH 是一种广泛使用的远程登录协议,它确保了服务器和客户端之间的安全通信。然而,随着时间的推移,安全漏洞不断被发现并修复。近期,一些版本的 OpenSSH 出现了远程代码执行漏洞,攻击者可能利用此漏洞进行未经授权的操作。为了确保服务器的安全性,及时升级 OpenSSH 到最新版本至关重要。本篇文章将详细介绍如何备份配置文件、下载并编译安装最新版本的 OpenSSH(9.9p1),以及解决在编译过程中可能遇到的问题。

1. 备份配置文件

在进行任何升级操作之前,备份当前系统中的 OpenSSH 配置和可执行文件是非常重要的,以防止在升级过程中发生问题时可以快速恢复。

首先,备份 SSH 配置文件和二进制可执行文件:

cp -rf /etc/ssh /etc/ssh.bak
cp -rf /usr/bin/ssh /usr/bin/ssh.bak
cp -rf /usr/sbin/sshd /usr/sbin/sshd.bak

以上命令将 /etc/ssh 目录以及 /usr/bin/ssh/usr/sbin/sshd 文件备份至对应的 .bak 目录和文件。这可以确保在出现问题时,有一个可恢复的备份。

2. 下载 OpenSSH 最新版本

在确认备份完成后,我们可以下载 OpenSSH 最新的源代码以进行编译和安装。

首先使用 wget 命令下载 OpenSSH 的最新版本,这里以 9.9p1 版本为例:

wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.9p1.tar.gz

下载完成后,使用以下命令解压:

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

此时,我们已经进入到 OpenSSH 源代码目录,接下来可以进行编译安装。

3. 编译安装 OpenSSH

在源代码目录中,首先需要配置编译环境。通过执行以下命令来进行配置:

./configure

然而,首次执行此命令时,可能会遇到以下错误提示:

configure: error: *** zlib.h missing - please install first or check config.log ***

这表明系统中缺少 zlib 库的开发文件。可以通过以下命令安装:

yum install zlib-devel

安装完成后,再次运行 ./configure,可能会遇到另一个错误提示:

checking OpenSSL library version... configure: error: OpenSSL >= 1.1.1 required (have "100020bf (OpenSSL 1.0.2k-fips  26 Jan 2017)")

此时,我们需要升级或安装符合要求的 OpenSSL 版本,具体可以参考相应的 OpenSSL 升级文章或指南。通常可以通过以下步骤来安装或升级 OpenSSL:

cd /usr/local
mkdir openssl
cd openssl
wget https://github.com/openssl/openssl/releases/download/OpenSSL_1_1_1v/openssl-1.1.1v.tar.gz
tar -xzvf openssl-1.1.1v.tar.gz
cd openssl-1.1.1v
./config --prefix=/usr
make && make install
openssl version

升级完成后,返回 OpenSSH 目录并重新配置:

cd openssh-9.9p1
./configure

在这里插入图片描述

配置成功后,接下来可以执行以下命令进行编译和安装:

make && make install

这一步将会编译 OpenSSH 并将其安装到系统中。

4. 替换旧版 OpenSSH 并创建符号链接

安装完成后,为了使系统使用新的 OpenSSH 版本,我们需要替换系统中旧版的 sshsshd,并创建符号链接指向新版本的可执行文件。

首先,备份当前版本的 sshsshd

mv /usr/bin/ssh /usr/bin/ssh.bak
mv /usr/sbin/sshd /usr/sbin/sshd.bak

然后创建符号链接指向新版本的 OpenSSH:

ln -s /usr/local/bin/ssh /usr/bin/ssh
ln -s /usr/local/sbin/sshd /usr/sbin/sshd

这样,系统将使用我们刚刚编译安装的 OpenSSH 版本。

5. 重启 SSH 服务

在完成所有安装和配置后,重启 SSH 服务以应用新版本:

systemctl restart sshd

此时,你可能会遇到以下错误提示:

Bad configuration option: GSSAPIKexAlgorithms

在这里插入图片描述

这是由于新版本的 OpenSSH 不再支持旧版本中的某些配置选项。可以通过修改 /etc/ssh/sshd_config 文件,删除或注释掉不再支持的配置项来解决该问题。

解决配置问题后,再次重启 SSH 服务:

systemctl restart sshd

6. 验证安装结果

最后,使用以下命令验证 OpenSSH 是否已成功升级到新版本:

ssh -V

如果显示的版本为 OpenSSH_9.9p1,则说明升级成功。

结语

通过本文的步骤,我们成功修复了 OpenSSH 的远程代码执行漏洞,并升级到了最新的 9.9p1 版本。尽管升级过程可能遇到一些依赖库的问题,但只要按照提示安装或升级相关依赖,最终都可以顺利完成编译和安装。定期检查系统中的软件版本,并及时进行安全升级,是保障服务器安全的重要环节。希望本文能为读者提供有效的指导,确保服务器在面对各种安全威胁时能够及时更新和应对。

参考文章

1 https://cooldream2009.blog.csdn.net/article/details/142667560
升级 OpenSSL 的详细步骤(解决 SSH 漏洞的前提)


http://www.kler.cn/a/329057.html

相关文章:

  • kvm-dmesg:从宿主机窥探虚拟机内核dmesg日志
  • 软件测试基础三十 (Python + Flask实现Mock平台搭建)
  • chatgpt训练需要什么样的gpu硬件
  • 鸿蒙HarmonyOS 地图定位到当前位置 site查询等操作
  • arkUI:网格布局(Grid)
  • 3. langgraph中的react agent使用 (在react agent添加系统提示)
  • springboot启动流程
  • vue基于Spring Boot框架的高校实验室预约管理系统
  • 论文阅读:多模态医学图像融合方法的研究进展
  • golang rpc
  • TCP\IP标准与OSI标准
  • JS进阶 1——作用域、解构、箭头函数
  • 滚雪球学MySQL[3.2讲]:MySQL聚合函数与分组详解:COUNT、SUM、AVG、MAX、MIN及GROUP BY与HAVING
  • Qt 每日面试题 -5
  • 手机实时提取SIM卡打电话的信令声音-新的篇章(二、USB音频线初步探索)
  • XML与JSON的用法与区别
  • IP数据云—IP定位可以精准到什么程度?
  • 深度学习:(八)深层神经网络参数与流程
  • Win10系统插入带有麦克风的耳机_麦克风不起作用_解决方法_亲测成功---Windows运维工作笔记054
  • 面试题1-fail-safe机制与fail-fast 机制
  • 以太网开发基础-MAC和PHY
  • js设计模式(26)
  • GeoShp:shapefile转geojson支持nodejs和浏览器
  • 消息队列(MQ)深度探索:架构精髓、卓越优势与广泛应用
  • UE5 项目缓存文件删除、版本控制说明(工程目录结构)
  • 解决DHCP服务异常导致设备无法获取IP地址的方法