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

老杜095 2024-08-23 09:37:01 阅读 99

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、安装zlib1.1、下载zlib源码1.2、上传并解压1.3、编译源码并安装

2、安装openssl2.1、下载openssl源码2.2、上传并解压2.3、编译源码并安装2.4、更新系统的 OpenSSL

3、升级openssh3.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)
2 openssl openssl-1.0.2k
3 openssh openssh_7.4p1

当前系统openssh版本

在这里插入图片描述

二、解决方案

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

序号 应用项 说明
1 zlib zlib-1.2.13
2 openssl openssl-1.1.1u
3 openssh openssh-9.3p2

1、安装zlib

※ 说明:

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

1.1、下载zlib源码

<code>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源码

<code>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、修改配置文件

<code>#vim /etc/ssh/sshd_config

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

PermitRootLogin yes #允许root帐号远程登录

PasswordAuthentication yes #开启密码认证方式

UsePAM yes #开启UsePAM登录

在这里插入图片描述

2、新增PAM控制文件

<code>#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服务

<code>#systemctl restart sshd

在这里插入图片描述

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

<code># ssh root@ip

在这里插入图片描述

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



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。