CentOS7 下 修复 OpenSSH爆高危漏洞(openssh 7.4漏洞)

CentOS7 下 修复 OpenSSH爆高危漏洞检查系统、openssl和openssh的版本信息背景说明:
OpenSSH远程代码执行漏洞CVE-2024-6387允许未授权攻击者以root身份执行任意代码&#xff0c

检查系统、openssl和openssh的版本信息背景说明:

OpenSSH 远程代码执行漏洞CVE-2024-6387 允许非特权攻击者以root 身份执行任意代码。我们建议升级到OpenSSH 9.8p1 或更高版本。

请阅读漏洞描述

OpenSSH 高危漏洞(CVE-2024-6387)(baidu.com)

要修复此漏洞,OpenSSH 必须升级到9.8。

Ubuntu 软件存储库已更新。

https://ubuntu.com/security/notices/USN-6859-1

Debian 11 12 更新:

https://security-tracker.debian.org/tracker/CVE-2024-6387

CentOS没有相应的补丁可以直接更新。需要自己升级openssh到9.8(注意版本是最新的)。

对于CentOS7 修复,请参阅升级和安装Openssh9.8P。升级过程应小心完成,不要担心过程繁琐。参见知乎升级教程。我写了一篇文章详细介绍了Telnet部分,给大家一些参考和思路。

重要参考资料

CentOS7升级ssh服务(三):安装openssh9.7p1 – 知乎(zhihu.com)

这篇关于知乎的文章很详细,很欣赏作者的努力。

下面是我的练习过程

远程升级OpenSSH的先创建新增账号和安装telnet

在OpenSSH安装过程中,必须删除OpenSSH并进行配置更改,因此如果是远程安装补丁,请务必先安装TelnetServer,通过Telnet进行远程连接,升级完成后再使用Telnet Server进行卸载和调整。 另外,Telnet 默认不允许使用root 帐户进行远程连接。必须创建一个新帐户(如sshuser)用于远程连接(telnet连接后可以通过su root切换到root进行后续升级操作)。

步骤1.添加新的临时账户sshuser(升级后可以删除该账户)

#1 以root用户登录系统。通过运行以下命令创建新用户:例如,用户名是sshuser。

useradd -m -s /bin/bash sshuser

#2 为新用户设置密码

密码舒泽尔

#3 将新用户添加到sudo 组并赋予其超级用户权限。

usermod -aG 车轮刮擦器

步骤2.安装TelnetServer

如果没有管理员权限,请切换到有管理员权限的账户或者在命令前添加sudo。

#1 安装TelnetServer

嗯,把所有东西都清理干净。

创建yum 缓存

yum install -y telnet 服务器

#2 启动服务

systemctl 启动telnet.socket

#3 启动时自动启动

systemctl 启用telnet.socket

#4 Telnet 的默认端口是23。如果想改成其他端口,请查看资料并自行尝试(我按照网上的方法改了两个配置文件,但没有改成功)

#5 使用客户端Telnet连接centOS服务器(Windows 10默认没有安装Telnet客户端,可以查看Windows 10安装Telnet客户端信息)

Telnet远程centOS服务器IP地址(例如telnet 123.124.11.12)

如果连接成功,会提示输入登录账号(root默认不允许Telnet远程登录)。使用您创建的sshuser登录并输入密码即可完成Telnet登录。

#6 如果第5步远程连接失败,防火墙可能阻塞了23端口。请检查您的防火墙状态,打开防火墙中的端口23,然后重试。

#显示防火墙状态

systemctl 状态防火墙

#开放23端口(升级完成后可以屏蔽23端口)

防火墙cmd –zone=public –add-port=23/tcp –permanent

#重新加载防火墙设置

防火墙-cmd –完整重新加载

#查询防火墙23端口状态

防火墙cmd –query-port=23/tcp

返回“yes”表示可以访问远程访问端口23。

重复步骤5,通过telnet远程连接centerOS服务器。如果成功,您可以安全地远程升级您的OpenSSH 版本。 (实践证明,升级过程中仍然可以使用SSH。只有通过SSH连接或重启服务后,SSH可能才会生效。)

直接升级CentOS或者使用远程桌面升级的朋友可以忽略前面的步骤,直接升级。

CentOS7升级ssh服务到9.8p1

准备工作:

请注意,必须升级到openssh9.8p1才能应用漏洞补丁。

下载并上传openssh9.8p1和openssl-1.1.1w

下载地址1:openssh-9.8p1地址

https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/https://link.zhihu.com/?target=https%3A//cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/

注意:下载openssh-9.8p1.tar.gz 源代码。

https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz

根据升级后的OpenSSL下载地址2:

发布· openssl/openssl (github.com)https://github.com/openssl/openssl/releases?page=2

OpenSSL 有多个版本。 centerOS7上安装的OpenSSL默认版本是1.02。要安装openssh-9.8p1,您必须升级到OpenSSL1.1.1 或更高版本。

安装了OpenSSL1.1.1W

1、查看centos7、ssh以及openssl的版本信息

# 显示CentOS系统的版本信息

猫/etc/redhat-release

# 查看openssl版本信息

openssl 版本

# 查看openssh的版本信息

ssh-V

您可以使用ssh -V 检查OpenSSH 和OpenSSL 版本。

2、安装依赖

# 安装相关依赖。如果缺少任何东西,请重新安装

yum -y 安装gcc pam-devel zlib-devel openssl-devel net-tools

CentOS由于资源和网络问题,在依赖安装过程中可能会因为资源问题而报“未找到”错误。

需要修改/etc/yum.repos.d/Centos-Base.repo中的Centos-Base.repo资源地址,并运行安装依赖命令yum -y install gcc pam-devel zlib-devel openssl-devel net 有。再次运行-tools,依赖包就安装成功了。

3、安装openssl-1.1.1w版本

openssh9.7p1 需要openssl 版本1.1.1 或更高版本,因此您必须升级并安装openssl。

3.1、解压openssl-1.1.1w压缩包

# 解压openssl-1.1.1w 到/usr/local 目录

tar zxvf /home/test/openssl-1.1.12.tar.gz C /usr/local/

# 解压后查看目标目录

ll /usr/local/| grep openssl | 目录

# 进入openssl-1.1.1w目录

cd /usr/local/openssl-1.1.1w/

3.2、安装openssl前准备

#创建安装目录

mkdir /opt/openssl

# 安装前检查openssl的详细版本信息

openssl 版本

3.3、编译安装openssl-1.1.1w

# 配置编译安装过程。 \’–prefix=\’ 选项配置安装目录

./config –prefix=/opt/openssl

# 构建程序以及必要的指令和依赖项。

制作

# 安装编译好的openssl-1.1.1w

安装

# 注意:上面三步必须没有错误才可以进行下一步。只有三个步骤都没有错误才算安装成功。

在继续下一步之前,上述所有三个步骤必须没有错误。则认为安装成功。

如果出现错误,请重新检查错误,直到不再报告该错误,然后继续下一步。

3.4、更新lib文件

# 查看openssl-1.1.1w所需的函数库

ldd /opt/openssl/bin/openssl

# 将openssl-1.1.1w的库文件路径添加到ld.so.conf中

echo \’/opt/openssl/lib\’ /etc/ld.so.conf

#更新系统函数库库

ldconfig v

# 使用绝对路径显示openssl版本

ldd /opt/openssl/bin/openssl

3.5、更新bin文件

# 检查旧版本的openssl 命令路径

什么打开SSL

# 重命名为openssl.old

mv /bin/openssl /bin/openssl.old #重命名openssl文件

# 使用软连接更新openssl命令

ln -s /opt/openssl/bin/openssl /bin/openssl

# 使用Openssl命令检查版本

openssl 版本

4、编译安装openssh9.8p1

4.1、解压缩包查看INSTALL文件

使用#telnet登录centos7(卸载后也可以通过ssh连接远程操作)

# 卸载openssh rpm 包

for i in $(rpm -qa | grep openssh);do rpm -e $i –nodeps;done

# 将openssh9.8p1包解压到目标目录

tar zxvf /home/test/openssh9.8p1.tar.gz C /usr/local

# 进入openssh9.8p1源码目录

cd /usr/local/openssh-9.8p1/

# 安装前请检查安装文件INSTALL(推荐)

查看更多安装

4.2、编译安装openssh9.7p1

编译前请创建所需目录

mkdir -p /usr/local/openssh

# 配置编译安装过程。 \’–prefix=\’ 设置安装目录。 \’–sysconfdir=\’ 设置文件路径。 \’–with-ssl-dir=\’ 设置openssl 安装路径。

./configure –prefix=/usr/local/openssh –sysconfdir=/etc/ssh –with-pam –with-ssl-dir=/opt/openssl –with-md5-passwords –mandir=/usr/share/man –with-zlib=/usr/local/zlib –without-hardening

# 构建程序以及必要的指令和依赖项。

制作

# 安装编译好的openssh9.8p1

安装

# 注意:上面三步必须没有错误才可以进行下一步。只有三个步骤都没有错误才算安装成功。

在继续下一步之前,上述所有三个步骤必须没有错误。则认为安装成功。

如果出现任何异常错误,请仔细检查步骤并重试,直至一切成功。

4.3、复制并修改启动sshd.init脚本

参见如何修改知乎的sshd.init。

命令“cat -n filename | grep query keywords”在过滤器配置文件中搜索关键字,-n 返回搜索到的行。

# 将sshd.init从源目录复制到/etc/init.d/。

cp /usr/local/openssh-9.8p1/contrib/redhat/sshd.init /etc/init.d/

## 查看并更改SSHD的新路径并更新新的openssh安装路径

猫/etc/init.d/sshd.init grep SSHD |

sed -i \’s/SSHD=\\/usr\\/sbin\\/sshd/SSHD=\\/usr\\/local\\/openssh\\/sbin\\/sshd/g\’ /etc/init.d/sshd.init

猫/etc/init.d/sshd.init grep SSHD |

## 验证并更改ssh-keygen 的新路径并更新新的ssh-keygen 安装路径。

cat -n /etc/init.d/sshd.init grep ssh-keygen | cat -n /etc/init.d/sshd.init grep ssh-keygen |

sed -i \’s#/usr/bin/ssh-keygen -A#/usr/local/openssh/bin/ssh-keygen -A#g\’ /etc/init.d/sshd.init

cat -n /etc/init.d/sshd.init grep ssh-keygen | cat -n /etc/init.d/sshd.init grep ssh-keygen |

方法二:打开两个远程窗口,一个是使用cat -n /etc/init.d/sshd.init | grep xxxx 关键字查找行号,然后查询vi/etc/init 的内容。在里面。直接对需要更改的配置进行更改

4.4、修改配置文件(sshd_config)

# 启用X11转发

echo \’X11转发是\’ /etc/ssh/sshd_config

# 启用密码验证

echo \’密码验证是\’ /etc/ssh/sshd_config

#更改为允许远程访问并更改默认端口(特别重要!将xxxx更改为实际端口)。

sudo echo \’端口xxxx\’ /etc/ssh/sshd_config

sudo echo \’PermitRootLogin 是\’ /etc/ssh/sshd_config

使用#cat -n 检查配置。如果需要修改安装,请更改上面的两个修改命令(访问端口和是否运行root 登录)。

4.5、启动openssh,并设置开机启动

# 复制SSH相关命令

cp -arp /usr/local/openssh/bin/* /usr/bin/

# 启动sshd服务

/etc/init.d/sshd.init

# 显示版本

ssh-V

# 添加开机启动

chmod +x /etc/rc.d/rc.local

echo “/etc/init.d/sshd.init start” /etc/rc.d/rc.local

4.6、测试openssh连接

使用ssh协议连接centos7,查看openssh9.7p1服务

系统重启后,使用ssh协议登录centos7,查看openssh9.7p1是否自动启动,即可登录成功。

5、卸载telnet服务

# 验证openssh升级是否成功且连接正常,然后卸载telnet服务。

yum -y Telnet 删除Telnet 服务器

6. 删除您为Telnet 创建的帐户

userdel -r sshuser

以上修复#CentOS7上OpenSSH高危漏洞的相关内容由网络提供,仅供参考。相关信息请参见官方公告。

原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/93107.html

(0)
CSDN's avatarCSDN
上一篇 2024年7月5日 上午11:03
下一篇 2024年7月5日 上午11:03

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注