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

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 install

cp 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】的全部过程。

相关文章:

  • TCP协议
  • 设计模式(3):工厂模式
  • 腾讯 tendis 替代 redis linux安装使用
  • PS之更换背景色
  • Windows下载使用nc(netcat)命令
  • 3-zookeeper之ZAB协议
  • Linux内核err.h文件分析
  • ElasticSearch、java的四大内置函数式接口、Stream流、parallelStream背后的技术、Optional类
  • 【版本控制】git使用指南
  • 【工具类】vscode 常用功能
  • python(一)网络爬取
  • 小程序中使用less
  • Rust编程(四)PackageCrateModule
  • C# EventHander
  • Linux 安装Mysql
  • c++数字和字符串的转化
  • 常用的几个ChatGPT网站,国内可用!
  • 원클릭으로 주류 전자상거래 플랫폼 상품 상세 데이터 수집 및 접속 시연 예제 (한국어판)
  • 版本 23.0.0 , docker 安装 , docker目录迁移正确方法
  • BaseDao增删改查
  • 东莞“超级”音乐节五一出圈背后:文旅热力何以澎湃经济脉动
  • 法治日报:商品明细是隐私,外卖员快递员不应知晓
  • 潘功胜发布会答问五大要点:除了降准降息,这些政策“含金量”也很高
  • 川大全职引进考古学家宫本一夫,他曾任日本九州大学副校长
  • 科普|肩周炎的自限性,意味着不治也能自己好?
  • 贵州黔西市游船倾覆事故最后一名失联人员被找到,但已无生命体征