CVE-2023-38408漏洞修复 - 升级openssl和openssh

2024-03-30 23:52

本文主要是介绍CVE-2023-38408漏洞修复 - 升级openssl和openssh,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

CVE-2023-38408 OpenSSH 代码问题漏洞修复 - 升级openssl和openssh

※ 重要说明:
1、升级后会导致无法用ssh远程登录,提示“Permission denied, please try again.”
2、解决方案请查看本章节【三、解决升级后无法用ssh远程登录】

目录

  • CVE-2023-38408 OpenSSH 代码问题漏洞修复 - 升级openssl和openssh
  • 一、漏洞说明
    • 1、CVE-2023-38408漏洞
  • 二、解决方案
    • 1、安装zlib
      • 1.1、下载zlib源码
      • 1.2、上传并解压
      • 1.3、编译源码并安装
    • 2、安装openssl
      • 2.1、下载openssl源码
      • 2.2、上传并解压
      • 2.3、编译源码并安装
      • 2.4、更新系统的 OpenSSL
    • 3、升级openssh
      • 3.1、下载openssh源码
      • 3.2、上传并解压
      • 3.3、编译源码并安装
  • 三、解决升级后无法用ssh远程登录
    • 1、修改配置文件
    • 2、新增PAM控制文件
    • 3、重启sshd服务
    • 4、使用ssh远程连接服务器

一、漏洞说明

1、CVE-2023-38408漏洞

CVE-2023-38408 漏洞是OpenSSH 代码问题漏洞。

OpenSSH(OpenBSD Secure Shell)是加拿大OpenBSD计划组的一套用于安全访问远程计算机的连接工具。
该工具是SSH协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连接劫持以及其他网络级的攻击
。** OpenSSH 9.3p2**之前版本存在安全漏洞,该漏洞源于ssh-agent的PKCS11功能存在安全问题。
攻击者可利用该漏洞执行远程代码。

序号应用项说明
1系统CentOS Linux release 7.9.2009 (Core)
2opensslopenssl-1.0.2k
3opensshopenssh_7.4p1

当前系统openssh版本
在这里插入图片描述

二、解决方案

解决方案是将openssl升级到v1.1.1;将openssh升级到openssh-9.3p2

序号应用项说明
1zlibzlib-1.2.13
2opensslopenssl-1.1.1u
3opensshopenssh-9.3p2

1、安装zlib

※ 说明:

  • 如果编译openssl源码或openssh源码时提示 fatal error: zlib.h: No such file or directory,则需要重新用源码编译安装zlib. 否则可以直接进入第2步 【2、安装openssl】

1.1、下载zlib源码

wget http://www.zlib.net/zlib-1.2.13.tar.gz

1.2、上传并解压

tar -xzvf ./zlib-1.2.13.tar.gz

1.3、编译源码并安装

cd zlib-1.2.13/
./configure --shared
make
make installcp zutil.h /usr/local/include
cp zutil.c /usr/local/include

2、安装openssl

2.1、下载openssl源码

wget https://www.openssl.org/source/openssl-1.1.1u.tar.gz

2.2、上传并解压

tar -zxvf openssl-1.1.1u.tar.gz

2.3、编译源码并安装

cd openssl-1.1.1u
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
make
make install

2.4、更新系统的 OpenSSL

# 更新系统的 OpenSSL 链接,首先备份旧版本的 openssl 可执行文件
mv /usr/bin/openssl /usr/bin/openssl.old
# 创建新的符号链接:
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
# 更新系统库链接
echo "/usr/local/openssl/lib" | sudo tee -a /etc/ld.so.conf.d/openssl-1.1.1k.conf
sudo ldconfig
# 验证系统openssl版本
openssl version

在这里插入图片描述

3、升级openssh

3.1、下载openssh源码

wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.3p2.tar.gz# 备份
mv /etc/ssh /etc/ssh@20240327

3.2、上传并解压

tar -zxvf openssh-9.3p2.tar.gz

3.3、编译源码并安装

cd openssh-9.3p2/
./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/lib64/ --with-zlib --with-ssl-engine
make
make install

在这里插入图片描述

三、解决升级后无法用ssh远程登录

产生该问题的原因是升级后的OpenSSH启用了PAM登录认证,因此需要提供一个/etc/pam.d/sshd 控制文件。解决方案如下

1、修改配置文件

#vim /etc/ssh/sshd_config

在配置文件中新增下面配置

PermitRootLogin yes			    #允许root帐号远程登录
PasswordAuthentication yes         #开启密码认证方式
UsePAM yes                          #开启UsePAM登录

在这里插入图片描述

2、新增PAM控制文件

#vim /etc/pam.d/sshd

#%PAM-1.0
auth       required     pam_sepermit.so
auth       substack     password-auth
auth       include      postlogin
# Used with polkit to reauthorize users in remote sessions
-auth      optional     pam_reauthorize.so prepare
account    required     pam_nologin.so
account    include      password-auth
password   include      password-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open env_params
session    required     pam_namespace.so
session    optional     pam_keyinit.so force revoke
session    include      password-auth
session    include      postlogin
# Used with polkit to reauthorize users in remote sessions
-session   optional     pam_reauthorize.so prepare

在这里插入图片描述

3、重启sshd服务

#systemctl restart sshd

在这里插入图片描述

4、使用ssh远程连接服务器

# ssh root@ip

在这里插入图片描述

以上就是全部修复漏洞【CVE-2023-38408】的全部过程。

这篇关于CVE-2023-38408漏洞修复 - 升级openssl和openssh的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/862913

相关文章

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

CSP 2023 提高级第一轮 CSP-S 2023初试题 完善程序第二题解析 未完

一、题目阅读 (最大值之和)给定整数序列 a0,⋯,an−1,求该序列所有非空连续子序列的最大值之和。上述参数满足 1≤n≤105 和 1≤ai≤108。 一个序列的非空连续子序列可以用两个下标 ll 和 rr(其中0≤l≤r<n0≤l≤r<n)表示,对应的序列为 al,al+1,⋯,ar​。两个非空连续子序列不同,当且仅当下标不同。 例如,当原序列为 [1,2,1,2] 时,要计算子序列 [

macOS升级后SVN升级

问题 svn: error: The subversion command line tools are no longer provided by Xcode. 解决 sudo chown -R $(whoami) /usr/local/Cellar brew install svn

HNU-2023电路与电子学-实验3

写在前面: 一、实验目的 1.了解简易模型机的内部结构和工作原理。 2.分析模型机的功能,设计 8 重 3-1 多路复用器。 3.分析模型机的功能,设计 8 重 2-1 多路复用器。 4.分析模型机的工作原理,设计模型机控制信号产生逻辑。 二、实验内容 1.用 VERILOG 语言设计模型机的 8 重 3-1 多路复用器; 2.用 VERILOG 语言设计模型机的 8 重 2-1 多

【经验交流】修复系统事件查看器启动不能时出现的4201错误

方法1,取得『%SystemRoot%\LogFiles』文件夹和『%SystemRoot%\System32\wbem』文件夹的权限(包括这两个文件夹的所有子文件夹的权限),简单点说,就是使你当前的帐户拥有这两个文件夹以及它们的子文件夹的绝对控制权限。这是最简单的方法,不少老外说,这样一弄,倒是解决了问题。不过对我的系统,没用; 方法2,以不带网络的安全模式启动,运行命令行,输入“ne

Golang支持平滑升级的HTTP服务

前段时间用Golang在做一个HTTP的接口,因编译型语言的特性,修改了代码需要重新编译可执行文件,关闭正在运行的老程序,并启动新程序。对于访问量较大的面向用户的产品,关闭、重启的过程中势必会出现无法访问的情况,从而影响用户体验。 使用Golang的系统包开发HTTP服务,是无法支持平滑升级(优雅重启)的,本文将探讨如何解决该问题。 一、平滑升级(优雅重启)的一般思路 一般情况下,要实现平滑

JeecgBoot 升级springboot版本到2.6.0

1. 环境描述 Jeecgboot 3.0,他所依赖的springboot版本为2.3.5Release,将springboot版本升级为2.6.0。过程全纪录,从2开始描述。 2. 修改springboot版本号 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-pare

欧拉系统 kernel 升级、降级

系统版本  cat  /etc/os-release  NAME="openEuler"VERSION="22.03 (LTS-SP1)"ID="openEuler"VERSION_ID="22.03"PRETTY_NAME="openEuler 22.03 (LTS-SP1)"ANSI_COLOR="0;31" 系统初始 kernel 版本 5.10.0-136.12.0.

【CTF Web】BUUCTF Upload-Labs-Linux Pass-13 Writeup(文件上传+PHP+文件包含漏洞+PNG图片马)

Upload-Labs-Linux 1 点击部署靶机。 简介 upload-labs是一个使用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共20关,每一关都包含着不同上传方式。 注意 1.每一关没有固定的通关方法,大家不要自限思维! 2.本项目提供的writeup只是起一个参考作用,希望大家可以分享出自己的通关思路

Zookeeper集群是如何升级到新版本的

方案1:复用老数据方案 这是经过实践的升级方案,该方案是复用旧版本的数据,zk集群拓扑,配置文件都不变,只是启动的程序为最新的版本。 参考文章: Zookeeper集群是如何升级到新版本的 方案2:重新建立数据方案 该方案的思路是:先停掉一台follower的机器上的服务,然后加入一个新版本的zk(zk的数据目录是空的),然后启动新zk,之后新zk会把旧集群中的数据同步过来。之后再操作另