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.mzph.cn/diannao/20300.shtml

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

相关文章

GSM信令流程(附着、去附着、PDP激活、修改流程)

1、联合附着流程 附着包括身份认证、鉴权等 2、去附着流程 用户发起去附着 SGSN发起去附着 HLR发起去附着 GSSN使用S4发起去附着 3、Activation Procedures(PDP激活流程) 4、PDP更新或修改流程 5、Deactivate PDP Context 6、RAU(Routeing Area Update)流程 7、鉴权加…

生成式AI,在云端的绽放与盛开

编辑:阿冒 设计:沐由 毫无疑问,生成式AI已然成为当今技术发展和应用创新的重要引擎之一。 过去的一年多时间里,我们每个人都在目睹和见证着生成式AI是如何以移山倒海的力量,为诸多行业带来革命性乃至颠覆性的变革&…

新版校园跑腿外卖独立版+APP+小程序前端外卖配送平台源码

同城校园跑腿外卖配送平台源码,这套目前全网还没有人分享过,这个是开源的,所以没有任何问题了,这套源码非常吊,支持自定义diy 你可以设计你的页面,设计你自己的风格,支持多校园,独立…

深度学习中的模型架构详解:RNN、LSTM、TextCNN和Transformer

深度学习中的模型架构详解:RNN、LSTM、TextCNN和Transformer 文章目录 深度学习中的模型架构详解:RNN、LSTM、TextCNN和Transformer循环神经网络 (RNN)RNN的优点RNN的缺点RNN的代码实现 长短期记忆网络 (LSTM)LSTM的优点LSTM的缺点LSTM的代码实现 TextCN…

mac电脑安卓设备文件传输助手:MacDroid pro 中文激活版

MacDroid Pro是一款专为Mac电脑和Android设备设计的软件,旨在简化两者之间的文件传输和数据管理,双向文件传输:支持从Mac电脑向Android设备传输文件,也可以将Android设备上的文件轻松传输到Mac电脑上。完整的文件访问和管理&#…

机器学习笔记 - PyTorch 分布式训练概览

一、简述 对于大规模的数据集,只能进行分布式训练,分布式训练会尽可能的利用我们的算力,使模型训练更加高效。PyTorch提供了Data Parallel包,它可以实现单机、多GPU并行。 PyTorch 数据并行模块的内部工作原理 上面的图像说明了PyTorch 如何在单个系统中利用多个 G…

目标检测——无人机搜索救援数据集

引言 亲爱的读者们,您是否在寻找某个特定的数据集,用于研究或项目实践?欢迎您在评论区留言,或者通过公众号私信告诉我,您想要的数据集的类型主题。小编会竭尽全力为您寻找,并在找到后第一时间与您分享。 …

springboot项目banner生成器

Spring Boot banner在线生成工具,制作下载英文banner.txt,修改替换banner.txt文字实现自定义,个性化启动banner-bootschool.netSpring Boot banner工具实现在线生成banner,轻松修改替换实现自定义banner,让banner.txt文…

基于Lumerical fdtd进行无序光子晶体波导的仿真设计及优化

光子晶体是一类通过不同折射率介质周期性的排列而形成的具有光波长量级的周期性人工微型结构,相比于传统晶体来说,由于介电函数的周期性分布,光子晶体也会产生一些类似于传统晶体的带隙,使光局域在带隙中无法传播。我们在完整的光…

Linux - 文件管理高级2

3.处理字符 sed ① sed 默认情况下不会修改原文件内容 ② sed 是一种非交互式的编辑器 3.1 工作原理 将原文件一行一行的进行处理,取出一行,放入“模式空间进行处理”,处理完成之后将结果输出到屏幕上,然后读取下一行&#xf…

智慧启航 网联无限丨2024高通汽车技术与合作峰会美格智能分论坛隆重举行

5月30日下午,以“智慧启航 网联无限”为主题的2024高通汽车技术与合作峰会&美格智能分论坛在无锡国际会议中心隆重举行,本次论坛由高通技术公司与美格智能技术股份有限公司共同主办,上海市车联网协会、江苏省智能网联汽车产业创新联盟、江…

一键分割视频并生成M3U8格式:高效管理视频内容,畅享流畅播放新体验

视频内容已成为我们日常生活和工作中的重要组成部分。无论是个人分享生活点滴,还是企业宣传产品与服务,视频都以其直观、生动的形式,吸引着我们的眼球。然而,随着视频内容的不断增多,如何高效、便捷地管理这些视频&…

如何让Google收录网站?

Google收录网站的前提条件是确保网站可以公开访问,并且页面加载速度需要快,这样Google爬虫才可以访问到你的网站,并且索引你网站中的内容。实现了上面的前提条件,可以通过优化数据结构、创建站点地图、使用Google Search Console、…

【机器学习】智能选择的艺术:决策树在机器学习中的深度剖析

在机器学习的分类和回归问题中,决策树是一种广泛使用的算法。决策树模型因其直观性、易于理解和实现,以及处理分类和数值特征的能力而备受欢迎。本文将解释决策树算法的概念、原理、应用、优化方法以及未来的发展方向。 🚀时空传送门 &#x…

JS脚本打包成一个 Chrome 扩展(CRX 插件)

受这篇博客 如何把CSDN的文章导出为PDF_csdn文章怎么导出-CSDN博客 启发,将 JavaScript 代码打包成一个 Chrome 扩展(CRX 插件)。 步骤: 1.创建必要的文件结构和文件: manifest.jsonbackground.jscontent.js 2.编写…

ArcGIS教程(05):计算服务区和创建 OD 成本矩阵

准备视图 启动【ArcMap】->双击打开【Exercise05.mxd】->启用【Network Analyst 扩展模块】。前面的文章已经讲过,这里不再赘述。 创建服务区分析图层 1、在 Network Analyst 工具栏上,单击 【Network Analyst】,然后单击【新建服务…

解决安装 WP Super Cache 插件提示 Advanced-Cache.Php 是另一个插件创建的

昨天晚上一个站长求助明月,说是安装 WP Super Cache 插件的时候提示 advanced-cache.php 被占用了,无法完成安装,收到截图看了才明白原来提示的是“advanced-cache.php 文件,由另一个插件或者系统管理员创建的”,如下图…

社交媒体数据恢复:QQ空间

本教程将指导您如何恢复QQ空间中的说说、日志和照片等内容。请注意,本教程不涉及推荐任何数据恢复软件。 一、恢复QQ空间说说 登录您的QQ账号,并进入QQ空间。点击“日志”选项,进入空间日志页面。在空间日志页面,您会看到一个“…

数据库(12)——DQL聚合查询

常见的聚合函数 将一列数据作为一个整体,进行纵向计算。 函数功能count统计数量max最大值min最小值avg平均值sum求和 语法 SELECT 聚合函数 (字段列表)FROM 表名; 示例 这是我们的原始表: 求人物总数 select count(id) from in…