Linux【安全 02】OpenSSH漏洞修复(离线升级最新版本流程)网盘分享3个安装包+26个离线依赖

OpenSSH离线升级最新版本流程

  • 1. 漏洞信息
  • 2. 环境说明
  • 3.依赖安装
    • 3.1 在线安装
    • 3.2 离线安装
  • 4.备份卸载
    • 4.1 备份
    • 4.2 卸载旧版本
  • 5.安装
    • 5.1 zlib
    • 5.2 ssl
    • 5.3 openssh
      • 5.3.1 安装
      • 5.3.2 配置
  • 6.脚本整理
  • 7.文件资源

本文仅针对CentOS7.8版本,其他版本未测试,安装包文件放置在/home/openssh目录下,某些命令包含此路径。

1. 漏洞信息

OpenSSH(OpenBSD Secure Shell)是OpenBSD计划组的一套用于安全访问远程计算机的连接工具。该工具是SSH协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连接劫持以及其他网络级的攻击。

  • 7.7及之前版本中存在竞争条件问题漏洞。该漏洞源于网络系统或产品在运行过程中,并发代码需要互斥地访问共享资源时,对于并发访问的处理不当。
  • 8.3p1及之前版本中的scp的scp.c文件存在操作系统命令注入漏洞。该漏洞源于外部输入数据构造操作系统可执行命令过程中,网络系统或产品未正确过滤其中的特殊字符、命令等。攻击者可利用该漏洞执行非法操作系统命令。
  • 7.6之前的版本中的sftp-server.c文件的‘process_open’函数存在安全漏洞,该漏洞源于程序在只读模式下没有正确的阻止写入操作。攻击者可利用该漏洞创建长度为零的文件。
  • 5.7版本至8.3版本的客户端中存在信息泄露漏洞。攻击者可利用该漏洞获取信息。
  • 7.8及之前版本中的auth-gss2.c文件存在信息泄露漏洞。该漏洞源于网络系统或产品在运行过程中存在配置等错误。未授权的攻击者可利用漏洞获取受影响组件敏感信息。

2. 环境说明

# 系统版本
CentOS Linux release 7.8.2003 (Core)# 当前OpenSSH版本
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017

3.依赖安装

3.1 在线安装

# X.用于编译zlib【亲测不用安装】可忽略
yum install gcc gcc-c++ make -y # 1.用于编译openssl【需要联网】
yum install perl-CPAN perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker -y 

image.png

3.2 离线安装

# 1.【已下载】的26个依赖文件
perl-IPC-Cmd-0.80-4.el7.noarch.rpm
pyparsing-1.5.6-9.el7.noarch.rpm
gdbm-devel-1.10-8.el7.x86_64.rpm
perl-Test-Harness-3.28-3.el7.noarch.rpm
perl-ExtUtils-Manifest-1.61-244.el7.noarch.rpm
perl-version-0.99.07-6.el7.x86_64.rpm
perl-Perl-OSType-1.003-3.el7.noarch.rpm
perl-Module-Load-Conditional-0.54-3.el7.noarch.rpm
libdb-devel-5.3.21-25.el7.x86_64.rpm
perl-Module-Load-0.24-3.el7.noarch.rpm
perl-ExtUtils-MakeMaker-6.68-3.el7.noarch.rpm
perl-local-lib-1.008010-4.el7.noarch.rpm
perl-Data-Dumper-2.145-3.el7.x86_64.rpm
perl-Digest-1.17-245.el7.noarch.rpm
perl-Module-Metadata-1.000018-2.el7.noarch.rpm
perl-Digest-SHA-5.85-4.el7.x86_64.rpm
perl-Locale-Maketext-1.23-3.el7.noarch.rpm
perl-Params-Check-0.38-2.el7.noarch.rpm
perl-ExtUtils-ParseXS-3.18-3.el7.noarch.rpm
systemtap-sdt-devel-4.0-13.el7.x86_64.rpm
perl-devel-5.16.3-299.el7_9.x86_64.rpm
perl-ExtUtils-CBuilder-0.28.2.6-299.el7_9.noarch.rpm
perl-Locale-Maketext-Simple-0.21-299.el7_9.noarch.rpm
perl-ExtUtils-Install-1.58-299.el7_9.noarch.rpm
perl-Module-CoreList-2.76.02-299.el7_9.noarch.rpm
perl-CPAN-1.9800-299.el7_9.noarch.rpm# 2.安装
rpm -ivh *.rpm

4.备份卸载

这里一定要注意,如果使用的是工具连接的服务器,此时最好多打开几个窗口,sshd服务停止之后旧连接可以使用但是无法建立新的连接,也可以安装telnet进行服务器连接(使用telnet后云服务器报恶意文件,查看之后都是telnet的用户创建的,能不用的话尽量还是不要用,毕竟又打开了一个可能遭遇暴力破解的端口)。

4.1 备份

# 1.停止ssh服务
systemctl stop sshd# 2.备份ssh文件
cp -r /etc/ssh /etc/ssh.old
cp -p /usr/bin/ssh /usr/bin/ssh.bak
cp -p /usr/sbin/sshd /usr/sbin/sshd.bak
cp -p /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak

4.2 卸载旧版本

# 1.查询原有ssh包并卸载
rpm -qa | grep openssh
openssh-7.4p1-23.el7_9.x86_64
openssh-clients-7.4p1-23.el7_9.x86_64
openssh-server-7.4p1-23.el7_9.x86_64# 2.卸载
rpm -e --nodeps openssh-7.4p1-23.el7_9.x86_64
rpm -e --nodeps openssh-clients-7.4p1-23.el7_9.x86_64
rpm -e --nodeps openssh-server-7.4p1-23.el7_9.x86_64# 合并脚本
rpm -e --nodeps $(rpm -qa | grep openssh)# 3.验证
rpm -qa | grep openssh

5.安装

5.1 zlib

直接下载或官网下载后上传zlib-1.3.1.tar.gz文件:

# 1.下载
wget https://zlib.net/current/zlib.tar.gz# 2.解压文件
tar -zxvf zlib.tar.gz
cd  zlib-1.3.1# 3.编译安装zlib
./configure --prefix=/usr/local/zlib
make && make install

5.2 ssl

直接下载或官网下载后上传openssl-3.2.0.tar.gz文件:

# 0.直接下载【根据版本需要进行下载】
wget https://www.openssl.org/source/old/3.2/openssl-3.2.0.tar.gz# 1.解压文件
tar -zxvf openssl-3.2.0.tar.gz
cd openssl-3.2.0# 2.编译安装
# --prefix指定编译到的目录 --shared作用是生成动态链接库(即.so库)
./config  --prefix=/usr/local/ssl  --shared
# 编译安装ssl【10分钟左右】
make && make install# 3.路径写入etc/ld.so.conf  
# 这里有网友遇到过问题(32位系统兼容问题) 命令已修复从lib64改为lib 这样64位和32位置系统都能可以正常使用
echo '/usr/local/ssl/lib64' >> /etc/ld.so.conf
# echo '/usr/local/ssl/lib' >> /etc/ld.so.conf# 4.刷新库文件
ldconfig -v

5.3 openssh

5.3.1 安装

直接下载或官网下载后上传openssh-9.7p1.tar.gz

# 0.直接下载【最新版本】注意跟下载后上传的版本不是一样的
wget https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/openssh-9.7.tar.gz# 1.解压
tar -zxvf openssh-9.7p1.tar.gz
cd openssh-9.7p1# 2.编译安装【3分钟左右】
./configure --prefix=/usr/local/ssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/ssl
make -j 4 && make install
  • -j 4: 这是一个选项,用于指定同时执行的编译任务数(即并行度)。这里的数字 4 表示允许同时运行4个编译任务。启用多任务并行编译可以显著加快编译速度,特别是对于大型项目或具有多个相互独立模块的软件。通过使用 -j 参数,系统可以利用多核处理器的优势,同时处理多个编译任务,从而缩短整体编译时间。

5.3.2 配置

# 1.ssh允许root登录 需要密码进行验证
echo 'PermitRootLogin yes' >> /usr/local/ssh/etc/sshd_config
echo 'PubkeyAuthentication yes' >>/usr/local/ssh/etc/sshd_config
echo 'PasswordAuthentication yes' >>/usr/local/ssh/etc/sshd_config# 2.将编译安装的新配置文件拷贝到原路径下
cp /usr/local/ssh/bin/ssh /usr/bin/ssh
cp /usr/local/ssh/sbin/sshd /usr/sbin/sshd
cp /usr/local/ssh/bin/ssh-keygen /usr/bin/ssh-keygen
cp /usr/local/ssh/etc/sshd_config /etc/ssh/sshd_config
cp /usr/local/ssh/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub# 3.拷贝启动脚本
cp -p /opt/openssh/openssh-9.7p1/contrib/redhat/sshd.init /etc/init.d/sshd
# 4.给sshd添加可执行权限
chmod +x /etc/init.d/sshd
# 5.设置开机自启
systemctl enable sshd
# 6.重新启动sshd服务
systemctl restart sshd
# 7.查看sshd服务状态
systemctl status sshd
# 8.查看ssh版本是否升级成功,可以查看到已经是9.5版本了
ssh -V
OpenSSH_9.7p1, OpenSSL 3.2.0 23 Nov 2023

至此新版本升级成功。感谢以下博主的分享:
https://blog.csdn.net/morecccc/article/details/134758892
https://www.cnblogs.com/wjsqqj/p/17925907.html

6.脚本整理

# 1.依赖安装
rpm -ivh *.rpm# 2.停止sshd服务
systemctl stop sshd# 3.删除已安装的openssh
rpm -e --nodeps $(rpm -qa | grep openssh)# 4.zlib安装
tar -zxvf zlib.tar.gz
cd zlib-1.3.1
./configure --prefix=/usr/local/zlib
make && make install# 5.ssl安装
tar -zxvf openssl-3.2.0.tar.gz
cd openssl-3.2.0
./config  --prefix=/usr/local/ssl  --shared
make && make install
echo '/usr/local/ssl/lib64' >> /etc/ld.so.conf
ldconfig -v# 6.openssh安装
tar -zxvf openssh-9.7p1.tar.gz
cd openssh-9.7p1
./configure --prefix=/usr/local/ssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/ssl
make -j 4 && make install# 7.ssh配置
echo 'PermitRootLogin yes' >> /usr/local/ssh/etc/sshd_config
echo 'PubkeyAuthentication yes' >>/usr/local/ssh/etc/sshd_config
echo 'PasswordAuthentication yes' >>/usr/local/ssh/etc/sshd_config# 2.将编译安装的新配置文件拷贝到原路径下
cp /usr/local/ssh/bin/ssh /usr/bin/ssh
cp /usr/local/ssh/sbin/sshd /usr/sbin/sshd
cp /usr/local/ssh/bin/ssh-keygen /usr/bin/ssh-keygen
cp /usr/local/ssh/etc/sshd_config /etc/ssh/sshd_config
cp /usr/local/ssh/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub
cp -p /opt/openssh/openssh-9.7p1/contrib/redhat/sshd.init /etc/init.d/sshd
chmod +x /etc/init.d/sshd
systemctl enable sshd
systemctl restart sshd
systemctl status sshd

7.文件资源

链接:https://pan.baidu.com/s/1tUBYK4WzCiJBcCqQDOtQhw?pwd=8tfv
提取码:8tfv

image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/340690.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Excel单元格格式无法修改的原因与解决方法

Excel单元格格式无法更改可能由多种原因造成。以下是一些可能的原因及相应的解决方法: 单元格或工作表被保护: 如果单元格或工作表被设置为只读或保护状态,您将无法更改其中的格式。解决方法:取消单元格或工作表的保护。在Excel中…

Hadoop伪分布式安装教程

Hadoop伪分布式安装教程 一、安装背景1.1 软件列表1.2 系统软件列表 二、安装Hadoop2.1 安装 Java 环境2.1.1 前期准备2.1.2 文件传输2.1.3 解压文件2.1.4 配置 jdk 的环境变量2.1.5 输入 java、javac、java -version 命令检验 jdk 是否安装成功 2.2 Hadoop 下载地址[hadoop](h…

一些关于深度聚类以及部分对比学习的论文阅读笔记

目录 资料SwAV问题方法方法的创新点为什么有效有什么可以借鉴的地方聚类Multi-crop 代码 PCL代码 Feature Alignment and Uniformity for Test Time Adaptation代码 SimSiam 资料 深度聚类算法研究综述(很赞,从聚类方法和深度学习方法两个方面进行了总结&#xff0…

基于聚类和回归分析方法探究蓝莓产量影响因素与预测模型研究附录

🌟欢迎来到 我的博客 —— 探索技术的无限可能! 🌟博客的简介(文章目录) 目录 背景数据说明数据来源思考 附录数据预处理导入包以及数据读取数据预览数据处理 相关性分析聚类分析数据处理确定聚类数建立k均值聚类模型 …

《面试笔记》——MySQL终结篇30

三大范式? 第一范式:字段具有原子性,不可再分(字段单一职责) 第二范式:满足第一范式,每行应该被唯一区分,加一列存放每行的唯一标识符,称为主键(都要依赖主…

【Linux】深入解析动静态库:原理、制作、使用与动态链接机制

文章目录 前言:1. 什么是动静态库2. 动静态库的制作和使用3. 动态库的查找问题4. 理解动态库的加载4.1. 站在系统的角度理解4.2. 编址、可执行程序4.3. 动态库动态链接和加载问题 总结: 前言: 在软件开发中,动静态库是两种重要的…

【miniconda】安装miniconda

☆ 问题描述 ubuntu环境下安装miniconda ★ 解决方案 ubuntu环境下安装miniconda 下载miniconda 包 miniconda官网地址:https://docs.conda.io/en/latest/miniconda.html 清华大学镜像地址: https://mirrors.tuna.tsinghua.edu.cn/anaconda/minicon…

Arduino ESP8266模块TFT液晶屏

ESP8266模块 模块实物图: 模块引脚定义: 工作模式选择: FlashBoot启动模式: GPIO15接GND UART固件下载模式: GPIO15接GND, GPIO0接GND 调试串口: URXD/UTXD 可用来下载固件和调试信息输出 模块使能&…

天润融通携手好丽友,打造食品零售行业智能客服新标杆

AI大模型,如何给食品零售行业的客服服务带来质变? 在很多人印象中,食品零售行业是不需要客户服务的。 因为绝大多数食品都是通过经销商、零售商、商场这样的渠道进行销售。所以在食品零售行业,一直都有一句话,叫“渠…

Mac终端operation not permitted问题、禁用和启用SIP(系统完整性保护)

Mac终端operation not permitted问题、禁用和启用SIP(系统完整性保护) 注意: 仅在必要时临时禁用SIP,并尽快重新启用它。在测试完成后不重新启用SIP将使您的计算机容易受到恶意代码的攻击 文章目录 Mac终端operation not permitt…

Spring Boot发送邮件时如何支持定时功能?

如何使用Spring Boot结合AokSend以实现高效邮件发送? 如何高效地进行sendmail发送邮件并支持定时功能是一个值得探讨的问题。本文将详细介绍如何在Spring Boot中实现定时sendmail发送邮件,并结合AokSend工具实现高效邮件发送。 Spring Boot发送邮件&am…

Java程序策——Java连接数据库保姆级教程(超详细步骤)

【Java程序策】——连接数据库 目录 ​编辑 一:在数据库中建立一个表(student表) 1.1:进入mysql 1.2:建立一个“数据库成员” 1.3:建立一个表(student表) 1.4:给表…

【代码随想录】【算法训练营】【第25天】 [216]组合总和III [17] 电话号码的字母组合

前言 思路及算法思维,指路 代码随想录。 题目来自 LeetCode。 day 25,周六,坚持有点困难~ 题目详情 [216] 组合总和III 题目描述 216 组合总和III 解题思路 前提:组合子集问题 思路:回溯算法,剪枝…

【vscode篇】1-VScode设置语言为中文,2-解决中文注释乱码问题。

设置语言为中文 在前端开发中,Visual Studio Code(简称vscode)是一个非常好用的工具,但第一次打开vscode会发现界面为英文,这对很多开发者来说会很不友好(比如我),把界面设置成中文只需要安装一个插件即可&…

《QT从基础到进阶·四十二》QT运行后项目图标,exe图标问题,VS加载.pro文件问题

1、QT图标有时候不能正常显示,不管是加到qrc还是用绝对路径,都无法正常显示,之前是可以的,具体原因目前还不太清楚,我在VS项目——vcpkg——use vcpkg把否改为是就可以了 2、出现无法定位程序输入点的报错&#xff0c…

36. 【Java教程】输入输出流

本小节将会介绍基本输入输出的 Java 标准类,通过本小节的学习,你将了解到什么是输入和输入,什么是流;输入输出流的应用场景,File类的使用,什么是文件,Java 提供的输入输出流相关 API 等内容。 1…

AVL树的介绍与实现

前言 我们上一期介绍了二叉搜索树并做了实现,本期我们来继续学习另一个更优的树即AVL树! 本期内容介绍 什么是AVL树? AVL树的实现 AVL树的性能分析 在正式的介绍AVL树之前,我们先来回忆一下二叉搜索树的特点:左子树的…

OceanBase 4.3.0 列存引擎解读:OLAP场景的入门券

近期,OceanBase 发布了4.3.0版本,该版本成功实现了行存与列存存储的一体化,并同时推出了基于列存的全新向量化引擎和代价评估模型。通过强化这些能力,OceanBase V4.3.0 显著提高了处理宽表的效率,增强了在AP&#xff0…

PS插件一键轻松搞定电商产品摄影图!

在电商行业中,一张高质量的产品摄影图往往能够吸引更多潜在消费者的目光,从而增加产品的销量。然而,对于许多电商卖家和摄影师来说,后期处理产品图片却是一个既耗时又费力的工作。 最近我发现一款PS插件可以一键生成电商产品摄影…