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

CVE-2024-6387Open SSH漏洞彻底解决举措(含踩坑内容)

一、漏洞名称

OpenSSH 远程代码执行漏洞(CVE-2024-6387)

二、漏洞概述

Open SSH是基于SSH协议的安全网络通信工具,广泛应用于远程服务器管理、加密文件传输、端口转发、远程控制等多个领域。近日被爆出存在一个远程代码执行漏洞,由于Open SSH服务器端程序存在竞争条件缺陷,未经身份验证的攻击者可利用该漏洞在Linux系统上以root身份远程执行代码,可全面接管系统、安装恶意软件、篡改、删除或窃取系统数据,创建后门等。受影响版本为8.5p1<=version<9.8p1。目前Open SSH官方已发布新版本完成漏洞修复。(更新链接:https://www.openssh.com/releasenotes.html)

三、缓解措施

自行百度,关闭ssh、 允许特定用户访问等

四、修复建议

建议升级OpenSSH至安全版本,彻底解决。

各位老板不要着急、这里有坑,假如服务器Openssh>=1.1.1那么恭喜直接升级Openssh即可。

由于本人服务器版本是OpenSSL 1.0.2k-fips在升级过程中卸载、重装服务经过多次尝试最终等已解决。

踩坑一:

OpenSSL 1.0.2k-fips版本,升级条件Openssh需大于1.1.1,否则升级提示Open SSH版本低

踩坑二:

升级OpenSSL 成功后,openssl verison与 ssh -V 结果下的openssl版本不一致问题,导致升级OpenssH也已失败告终。至此请看正文解决办法,一路到底升级成功。

4.1、查看服务器OpenSSL版本配置
openssl version
[root@localhost ~]# openssl version
OpenSSL 1.0.2k-fips  26 Jan 2017
4.2、查看升级服务器OpenSSL版本

ssh -V

[root@localhost ~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
4.3、查看服务器版本
[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

给大家看下云服务器版本基于CentOS 7.6版本升级 

4.4、最终目标

先试试先版本,由于升级成功了下次在升级至OpenSSH 9.8p1

OpenSSH 7.4p1 -> OpenSSH 9.3p1OpenSSL 1.0.2k-fips -> OpenSSL 3.1.2
4.4、版本直通车链接
OpenSSL官网地址:https://www.openssl.org/OpenSSH官网地址:https://www.openssh.com/
4.5、小心驶得万年船

telnet安装以防万一具体安装请看上一篇文章、由于本人已尝试升级顺利暂未发现升级失败现象,各位看官可大胆尝试。无误后升级生产环境

4.6、自我安慰一下

数据备份一下,虽然升级成功了,没有导致服务器链接不上的可能。

mv /usr/bin/openssl /usr/bin/openssl.old
mv /etc/ssh /etc/ssh.old
mkdir /usr/bin/bak
cp -arpf /usr/bin/{cp,sftp,ssh,ssh-add,ssh-agent,ssh-keygen,ssh-keyscan} /usr/bin/bak/
cp -arpf /usr/sbin/sshd /usr/sbin/sshd.bak
cp -arpf /etc/sysconfig/sshd /etc/sysconfig/sshd.bak
cp -arpf /etc/pam.d/sshd /etc/pam.d/sshd.bak

五、奏是个干升级openssl

5.1、下载OpenSSL、OpenSSH、zlib
创建download文件夹(根据自己喜好)
wget https://www.openssl.org/source/openssl-3.1.2.tar.gz --no-check-certificate
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.3p1.tar.gz
wget http://www.zlib.net/zlib-1.3.1.tar.gz

  [root@yfvyy5b2on3knb8q ~]# cd download/

[root@yfvyy5b2on3knb8q download]# ll -a
total 18528
drwxr-xr-x   5 root root      4096 Jul  9 18:24 .
dr-xr-x---.  5 root root      4096 Jul 10 08:06 ..
drwxr-xr-x   7 1000  1000    20480 Jul  9 18:41 openssh-9.3p1
-rw-r--r--   1 root root   1856839 Mar 16  2023 openssh-9.3p1.tar.gz
drwxrwxr-x  24 root root      4096 Jul  9 18:33 openssl-3.1.2
-rw-r--r--   1 root root  15560427 Jan 22 19:24 openssl-3.1.2.tar.gz
drwxr-xr-x  14  501 games     4096 Jul  9 18:25 zlib-1.3.1
-rw-r--r--   1 root root   1512791 Jan 23 03:53 zlib-1.3.1.tar.gz
5.2、解压
tar xvf openssh-9.3p1.tar.gz
tar xvf openssl-3.1.2.tar.gz
tar xvf zlib-1.3.1.tar.gz
5.3、安装依赖
yum install gcc
yum install gcc-c++ 
yum install perl 
yum install perl-IPC-Cmd
yum install pam 
yum install pam-devel
5.4 、安装升级zlib
cd zlib-1.3.1
./configure --prefix=/usr/local/zlib-1.3.1 
make  && make install
5.5、安装升级openssl
cd openssl-3.1.2
./config --prefix=/usr/local/openssl-3.1.2 make && make install 
echo '/usr/local/openssl-3.1.2/lib64' >> /etc/ld.so.conf 
ln -s /usr/local/openssl-3.1.2/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl-3.1.2/include/openssl /usr/include/openssl 
ll -s /usr/bin/openssl 
ll -s /usr/include/openssl
ln -s /usr/local/openssl-3.1.2/lib64/libssl.so.3 /usr/lib64/libssl.so.3
ln -s /usr/local/openssl-3.1.2/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3
ldconfig -v 

5.6、查看版本

openssl version
[root@yfvyy5b2on3knb8q download]# openssl version
OpenSSL 3.1.2 1 Aug 2023 (Library: OpenSSL 3.1.2 1 Aug 2023)

六、升级openssh

cd openssh-9.3p1
 6.1、编译、验证测试环境
./configure --prefix=/usr/local/openssh-9.3p1 --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/usr/local/openssl-3.1.2 --with-zlib=/usr/local/zlib-1.3.1 --without-hardening
make && make install
 6.2、安装
make && make install
 6.3、数据备份
cp -arpf /usr/local/openssh-9.3p1/bin/scp /usr/bin/
cp -arpf /usr/local/openssh-9.3p1/bin/sftp /usr/bin/
cp -arpf /usr/local/openssh-9.3p1/bin/ssh /usr/bin/
cp -arpf /usr/local/openssh-9.3p1/bin/ssh-add /usr/bin/
cp -arpf /usr/local/openssh-9.3p1/bin/ssh-agent /usr/bin/
cp -arpf /usr/local/openssh-9.3p1/bin/ssh-keygen /usr/bin/
cp -arpf /usr/local/openssh-9.3p1/bin/ssh-keyscan /usr/bin/
cp -arpf /usr/local/openssh-9.3p1/sbin/sshd /usr/sbin/sshd
cp -a contrib/redhat/sshd.init /etc/init.d/sshd
cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
chmod +x /etc/init.d/sshd
mv /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd.service.bak

  1. ./configure --prefix=/usr/local/openssh-9.3p1 --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/usr/local/openssl-3.1.2 --with-zlib=/usr/local/zlib-1.3.1 --without-hardening

    • ./configure 脚本是大多数开源软件项目(特别是使用GNU Autotools构建的项目)提供的配置脚本,用于准备软件的编译环境。它会检查系统环境,确定哪些功能可以被支持,并根据用户提供的选项(通过命令行参数)来定制编译过程。

    • --prefix=/usr/local/openssh-9.3p1 指定了软件安装后的根目录。在这个例子中,所有的安装文件(可执行文件、库文件、配置文件等)都会被安装在/usr/local/openssh-9.3p1目录下。这有助于将不同版本的软件安装到不同的目录,以避免冲突。

    • --sysconfdir=/etc/ssh 指定了配置文件(如sshd_config)的存放目录。即使软件的主体安装在--prefix指定的目录下,配置文件仍可以存放在系统的标准配置目录中,方便管理和维护。

    • --with-pam 启用了PAM(Pluggable Authentication Modules)支持。PAM提供了一种灵活的方式来认证用户,允许管理员通过模块来配置不同的认证机制。

    • --with-ssl-dir=/usr/local/openssl-3.1.2 指定了OpenSSL的安装目录。OpenSSL是一个强大的安全套接字层(SSL)和传输层安全性(TLS)协议的实现,OpenSSH依赖它来提供加密功能。

    • --with-zlib=/usr/local/zlib-1.3.1 指定了zlib的安装目录。zlib是一个广泛使用的数据压缩库,OpenSSH使用它来提高数据传输的效率。

    • --without-hardening 禁用了编译时的强化选项(如果有的话)。这些强化选项通常用于提高软件的安全性,但在某些情况下,由于兼容性问题或特定的部署需求,可能会选择禁用它们。

  2. make && make install

    • make 命令根据Makefile(由./configure脚本生成)中的指令编译软件。它会自动处理编译过程中所需的依赖关系和编译顺序。

    • && 是一个Shell命令操作符,用于连接两个命令,仅当第一个命令成功执行(即返回状态为0)时,才会执行第二个命令。

    • make install 命令将编译好的软件安装到前面./configure脚本指定的位置(在这个例子中是/usr/local/openssh-9.3p1)。这包括可执行文件、库文件、配置文件等。

 6.4、启动sshd
systemctl daemon-reload
systemctl enable sshd.socket
sshd -t
systemctl restart sshd
6.5、查看版本
[root@yfvyy5b2on3knb8q openssh-9.3p1]# openssl version
OpenSSL 3.1.2 1 Aug 2023 (Library: OpenSSL 3.1.2 1 Aug 2023)
[root@yfvyy5b2on3knb8q openssh-9.3p1]# ssh -V
OpenSSH_9.3p1, OpenSSL 3.1.2 1 Aug 2023
[root@yfvyy5b2on3knb8q openssh-9.3p1]# uname -a
Linux yfvyy5b2on3knb8q 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@yfvyy5b2on3knb8q openssh-9.3p1]#

最后不要着急,由于sshd发生了变化,需要特别注意,需要更改配置

vim  /etc/ssh/sshd_config
 Port 22PermitRootLogin yes

Port 22 
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key# Ciphers and keying
#RekeyLimit default none# Logging
#SyslogFacility AUTH
#LogLevel INFO# Authentication:#LoginGraceTime 2m
PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
 6.6、无误后关闭telnet服务,没有安装telnet
systemctl stop telnet.socket
systemctl disable telnet.socket
systemctl stop xinetd
systemctl disable xinetd

openssl版本高于1.1.1直接升级openssh即可!

根据步骤6执行替换高版本即可!

相关文章:

CVE-2024-6387Open SSH漏洞彻底解决举措(含踩坑内容)

一、漏洞名称 OpenSSH 远程代码执行漏洞(CVE-2024-6387) 二、漏洞概述 Open SSH是基于SSH协议的安全网络通信工具&#xff0c;广泛应用于远程服务器管理、加密文件传输、端口转发、远程控制等多个领域。近日被爆出存在一个远程代码执行漏洞&#xff0c;由于Open SSH服务器端…...

python的简单爬取

需要的第三方模块 requests winr打开命令行输入cmd 简单爬取的基本格式&#xff08;爬取百度logo为例&#xff09; import requests url"http://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png" resprequests.get(url)#回应 #保存到本地 with open(&…...

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第60集-agent训练资讯APP重点推荐AI资讯内容(含视频)

【WEB前端2024】3D智体编程&#xff1a;乔布斯3D纪念馆-第60集-agent训练资讯APP重点推荐AI资讯内容&#xff08;含视频&#xff09; 使用dtns.network德塔世界&#xff08;开源的智体世界引擎&#xff09;&#xff0c;策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。d…...

【学术会议征稿】第三届智能电网与能源系统国际学术会议

第三届智能电网与能源系统国际学术会议 2024 3rd International Conference on Smart Grid and Energy Systems 第三届智能电网与能源系统国际学术会议&#xff08;SGES 2024&#xff09;将于2024年10月25日-27日在郑州召开。 智能电网可以优化能源布局&#xff0c;让现有能源…...

01. 课程简介

1. 课程简介 本课程的核心内容可以分为三个部分&#xff0c;分别是需要理解记忆的计算机底层基础&#xff0c;后端通用组件以及需要不断编码练习的数据结构和算法。 计算机底层基础可以包含计算机网络、操作系统、编译原理、计算机组成原理&#xff0c;后两者在面试中出现的频…...

iOS热门面试题(三)

面试题1&#xff1a;在iOS开发中&#xff0c;什么是MVC设计模式&#xff1f;请详细解释其各个组成部分&#xff0c;并给出一个实际应用场景&#xff0c;包括具体的代码实现。 答案&#xff1a; MVC设计模式是一种在软件开发中广泛使用的架构模式&#xff0c;特别是在iOS开发中…...

ECS中postTransform.Value = float4x4.Scale(1, math.sin(elapsedTime), 1)

在Unity的ECS&#xff08;Entity Component System&#xff09;架构中&#xff0c;postTransform.Value float4x4.Scale(1, math.sin(elapsedTime), 1); 用于设置一个变换矩阵的缩放部分。下面是对这行代码的详细解释&#xff1a; postTransform: 这是一个表示变换的组件或结构…...

VLM技术介绍

1、背景 视觉语言模型&#xff08;Visual Language Models&#xff09;是可以同时从图像和文本中学习以处理许多任务的模型&#xff0c;从视觉问答到图像字幕。 视觉识别&#xff08;如图像分类、物体保护和语义分割&#xff09;是计算机视觉研究中一个长期存在的难题&#xff…...

x264 编码器 AArch64 汇编函数模块关系分析

x264 编码器 AArch64 汇编介绍 x264 是一个流行的开源视频编码器,它实现了 H.264/MPEG-4 AVC 标准。x264 项目致力于提供一个高性能、高质量的编码器,支持多种平台和架构。对于 AArch64(即 64 位 ARM 架构),x264 编码器利用该架构的特性来优化编码过程。在 x264 编码器中,…...

windows10开启防火墙,增加入站规则后不生效,还是不能访问后端程序

一、背景&#xff1a; 公司护网要求开启防火墙&#xff0c;开启防火墙后&#xff0c;前后端分离的项目调试受影响&#xff0c;于是增加入站规则开放固定的后台服务端口&#xff0c;增加的mysql端口3306和redis端口6379&#xff0c;别人都可以访问&#xff0c;但是程序的端口808…...

academic-homepage:快速搭建个人学术主页,页面内容包括个人简介、教育经历、发布过的学术列表等,同时页面布局兼容移动端。

今天给大家分享GitHub 上一个开源的 GitHub Pages 模板 academic-homepage。 可帮助你快速搭建个人学术主页&#xff0c;页面内容包括个人简介、教育经历、发布过的学术列表等最基本内容&#xff0c;同时页面布局兼容移动端。 相关链接 github.com/luost26/academic-homepage …...

.env.development、.env.production、.env.staging

环境变量文件&#xff08;如 .env.development、.env.production、.env.staging&#xff09;用于根据不同的环境&#xff08;开发、生产、测试等&#xff09;配置应用程序的行为。 作用 .env.development&#xff1a;用于开发环境的配置。开发人员在本地开发时会使用这个文件…...

国密证书(gmssl)在Kylin Server V10下安装

1.查看操作系统信息 [root@localhost ~]# cat /etc/.kyinfo [dist] name=Kylin milestone=Server-V10-GFB-Release-ZF9_01-2204-Build03 arch=arm64 beta=False time=2023-01-09 11:04:36 dist_id=Kylin-Server-V10-GFB-Release-ZF9_01-2204-Build03-arm64-2023-01-09 11:04:…...

【数据服务篇】法律快车问答数据:为法律智能化铺就道路

数据来源 法律快车汇集了广泛的法律问题和专业律师的回答&#xff0c;这些来自用户和律师的数据构成了丰富的问答资源。用户通过平台提交各类法律疑问&#xff0c;得到资深律师的详尽解答&#xff0c;形成了一系列真实、多样化的法律案例和讨论。 数据获取见文末。 数据内容…...

各向异性含水层中地下水三维流基本微分方程的推导(二)

各向异性含水层中地下水三维流基本微分方程的推导 参考文献&#xff1a; [1] 刘欣怡,付小莉.论连续性方程的推导及几种形式转换的方法[J].力学与实践,2023,45(02):469-474. 书接上回&#xff1a; 我们能得到三个方向的流入流出平衡方程&#xff1a; ∂ ρ u x ∂ x d x d y d…...

2024 微信小程序 学习笔记 第一天

微信公众平台 (qq.com) 小程序代码的构成 项目结构 JSON 配置文件 WXML 模板 WXSS 样式 JS 逻辑交互 小程序的宿主环境 宿主 通信模型 运行机制 组件 视图组件 view scrioll-view swiper swiper-item swiper属性 text button image image mode属性 小程序API 协…...

PCIe驱动开发(3)— 驱动设备文件的创建与操作

PCIe驱动开发&#xff08;3&#xff09;— 驱动设备文件的创建与操作 一、前言 在 Linux 中一切皆为文件&#xff0c;驱动加载成功以后会在“/dev”目录下生成一个相应的文件&#xff0c;应用程序通过对这个名为“/dev/xxx” (xxx 是具体的驱动文件名字)的文件进行相应的操作即…...

【Redis】简单了解Redis中常用的命令与数据结构

希望文章能给到你启发和灵感&#xff5e; 如果觉得文章对你有帮助的话&#xff0c;点赞 关注 收藏 支持一下博主吧&#xff5e; 阅读指南 开篇说明一、基础环境说明1.1 硬件环境1.2 软件环境 二、Redis的特点和适用场景三、Redis的数据类型和使用3.1字符串&#xff08;String&…...

IDEA启动Web项目总是提示端口占用

文章目录 IDEA启动Web项目总是提示端口占用一、前言1.场景2.环境 二、正文1.场景一:真端口占用2. 场景二:假端口占用 IDEA启动Web项目总是提示端口占用 一、前言 1.场景 IDEA启动Web项目总是提示端口占用&#xff1a; 确实是端口被占用&#xff0c;比如&#xff1a;没有正常…...

JRT打印鉴定记录单

良好的基础会使上层实现越做越简单&#xff0c;jrt在开始写业务之前就把运用场景需要的基础实验和设计完毕了。基于jrt的基础可以很轻松的实现强大的打印效果。jrt的打印和lodop比较像&#xff0c;是高度为满足建议系统打印定制的打印实现&#xff0c;设计器可能没lodop通用&am…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...