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

OpenSSH-9.9p1 OpenSSL-3.4.0 升级步骤详细

前言

收到漏洞扫描通知

OpenSSH 安全漏洞(CVE-2023-38408)

OpenSSH 安全漏洞(CVE-2023-51385)

OpenSSH 安全漏洞(CVE-2023-51384)

OpenSSH 安全漏洞(CVE-2023-51767)

OpenSSH 安全漏洞(CVE-2023-48795)

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

意思就是版本太低,发现OpenSSH官网当前已经是OpenSSH-9.9p1,直接开始升级。

当前版本

[root@localhost sbin]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@localhost sbin]# ssh -V
OpenSSH_9.3p1, OpenSSL 1.0.2k-fips  26 Jan 2017

升级后版本当前最新

名称版本官网
opensshopenssh-9.9p1连接
opensslopenssl-3.4.0连接
zlibzlib-1.3.1连接

前置操作

为了避免升级过程中出现的意外导致服务器无法进行连接,建议对重要的内容先进行备份

创建快照

一定一定一定,服务商创建快照。

安装telnet

升级过程中会卸载旧版本ssh导致远程无法连接,所以先安装一个telnet

检查

#检查是否安装了telnet服务端
rpm -q telnet-server
#检查是否安装了telnet客户端
rpm -q telnet

提示package telnet-server is not installed表示未安装

安装

#安装telnet服务端
yum install telnet-server -y
#安装telnet客户端
yum install telnet -y

启动

#设置开机启动该
systemctl enable telnet.socket
#打开服务
systemctl start telnet.socket

防火墙开放23端口

#添加23端口
firewall-cmd --permanent --add-port=23/tcp
# 移除
firewall-cmd --permanent --remove-port=23/tcp
#配置生效
firewall-cmd --reload
#查看开启端口
firewall-cmd --list-all

使用telnet ip进行连接登录

[root@localhost ~]# telnet 10.0.0.159
Trying 10.0.0.159...
Connected to 10.0.0.159.
Escape character is '^]'.Kernel 3.10.0-1160.71.1.el7.x86_64 on an x86_64
localhost login: root
Password: 
Last failed login: Fri Nov 29 00:15:00 CST 2024 from ::ffff:10.0.0.144 on pts/2
There was 1 failed login attempt since the last successful login.

允许root登录

如上登录错误,默认系统不允许root用户使用telnet远程登陆

echo 'pts/0' >>/etc/securetty
echo 'pts/1' >>/etc/securetty
echo 'pts/2' >>/etc/securetty
echo 'pts/3' >>/etc/securetty
echo 'pts/4' >>/etc/securetty

输入正确的密码还是不能登录
主机端执行:tail /var/log/secure
看到了access denied: tty 'pts/3' is not secure !
再添加一个

echo 'pts/5' >>/etc/securetty
echo 'pts/6' >>/etc/securetty

设置telnet后再登录一切正常了

开始升级

执行下方操作前,请确认telnet外部连接正常

备份

cd /opt
cp /etc/ssh/sshd_config sshd_config.backup
cp /etc/pam.d/sshd sshd.backup

检查相关依赖包

rpm -q gcc perl-IPC-Cmd zlib-devel
#安装没有的包
yum install -y gcc perl-IPC-Cmd zlib-devel

安装

安装zlib

cd /opt/
#下载zlib源码
wget http://www.zlib.net/zlib-1.3.1.tar.gz
#解压
tar -zxvf zlib-1.3.1.tar.gz
#编译并安装
cd zlib-1.3.1
#编译
./configure --prefix=/usr/local/zlib
#安装
make && make test && make install
#
ll /usr/local/zlib
ldconfig -v
/sbin/ldconfig

安装OpenSSL

SSL更新前如果编译目录下有原版本,需删除后编译,防止SSH编译失败! 2.结尾处截图为初发文时间更新版本,和操作语句新版本不冲突

检查OpenSSL当前已有版本
[root@localhost zlib-1.3.1]# openssl version -a
OpenSSL 1.0.2k-fips  26 Jan 2017
built on: reproducible build, date unspecified
platform: linux-x86_64
options:  bn(64,64) md2(int) rc4(16x,int) des(idx,cisc,16,int) idea(int) blowfish(idx) 
compiler: gcc -I. -I.. -I../include  -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DKRB5_MIT -m64 -DL_ENDIAN -Wall -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic -Wa,--noexecstack -DPURIFY -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM
OPENSSLDIR: "/etc/pki/tls"
engines:  rdrand dynamic
卸载
yum remove -y openssl
安装操作
cd /opt/
#下载zlib源码
wget https://github.com/openssl/openssl/releases/download/openssl-3.4.0/openssl-3.4.0.tar.gz
#解压
tar -zxvf openssl-3.4.0.tar.gz
#编译并安装
cd openssl-3.4.0
编译
./config --prefix=/usr/local/openssl shared zlib

这里编译时可能会遇到报错:缺少IPC/Cmd.pm模块

[root@localhost openssl-3.4.0]# ./config shared zlib --prefix=/usr/local/openssl
Can't locate IPC/Cmd.pm in @INC (@INC contains: /opt/openssl-3.4.0/util/perl /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 . /opt/openssl-3.4.0/external/perl/Text-Template-1.56/lib) at /opt/openssl-3.4.0/util/perl/OpenSSL/config.pm line 19.
BEGIN failed--compilation aborted at /opt/openssl-3.4.0/util/perl/OpenSSL/config.pm line 19.
Compilation failed in require at /opt/openssl-3.4.0/Configure line 23.
BEGIN failed--compilation aborted at /opt/openssl-3.4.0/Configure line 23.

直接安装yum -y install perl-IPC-Cmd后再进行编译,编译成功
在这里插入图片描述
或者提示如下这个是缺失perl 的插件,直接执行yum install -y 'perl(Data::Dumper)'

Can’t locate Data/Dumper.pm in @INC

在这里插入图片描述

安装
make && make install

在这里插入图片描述
有可能还会缺少crypto/comp/libcrypto-lib-c_zlib.o,直接安装yum -y install zlib-devel然后继续make install

更新系统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" >> /etc/ld.so.conf.d/openssl-3.4.0.conf
sudo ldconfig
# 验证系统openssl版本
openssl version

此时可能会出现错误

openssl: error while loading shared libraries: libssl.so.3: cannot open shared object file: No

查询

[root@localhost openssl-3.4.0]# whereis openssl
openssl: /usr/lib64/openssl /usr/local/openssl

查询是否已有找不到的依赖

find / -name libssl.so.3
find / -name libcrypto.so.3

添加软连接

ln -s /usr/local/openssl/lib64/libssl.so.3 /usr/lib64/libssl.so.3
ln -s /usr/local/openssl/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3

安装成功

[root@localhost openssl-3.4.0]# openssl version
OpenSSL 3.4.0 22 Oct 2024 (Library: OpenSSL 3.4.0 22 Oct 2024)

安装OpenSSH

卸载原有OpenSSH
rpm -e --nodeps `rpm -qa | grep openssh`
安装
cd /opt/#下载zlib源码
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.9p1.tar.gz#解压
tar -zxvf openssh-9.9p1.tar.gz
#
cd openssh-9.9p1
编译
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/openssl/ --with-zlib=/usr/local/zlib/ --with-ssl-engine
# 安装
make && make install#查看目录版本
/usr/bin/ssh -V
OpenSSH设置
#调整文件权限
chmod 600 /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ed25519_key#复制配置文件
cp -a contrib/redhat/sshd.init /etc/init.d/sshd
chmod u+x /etc/init.d/sshd#允许root登录
echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
echo 'Subsystem sftp /usr/libexec/sftp-server' >> /etc/ssh/sshd_config#添加开机启动
chkconfig --add sshd
chkconfig sshd on# Centos 7 重启sshd
systemctl restart sshd# Centos 6 重启sshd
/etc/init.d/sshd restart
/etc/init.d/sshd status#查看升级后ssh版本
ssh -V

相关文章:

OpenSSH-9.9p1 OpenSSL-3.4.0 升级步骤详细

前言 收到漏洞扫描通知 OpenSSH 安全漏洞(CVE-2023-38408) OpenSSH 安全漏洞(CVE-2023-51385) OpenSSH 安全漏洞(CVE-2023-51384) OpenSSH 安全漏洞(CVE-2023-51767) OpenSSH 安全漏洞(CVE-2023-48795) OpenSSH(OpenBSD SecureShell)是加拿大OpenBSD计划…...

python 练习题

目录 1,输入三个整数,按升序输出 2,输入年份及1-12月份,判断月份属于大月,小月,闰月,平月,并输出本月天数 3,输入一个整数,显示其所有是素数因子 4&#…...

数学建模——Topsis法

数模评价类(2)——Topsis法 概述 Topsis:Technique for Order Preference by Similarity to Ideal Solution 也称优劣解距离法,该方法的基本思想是,通过计算每个备选方案与理想解和负理想解之间的距离,从而评估每个…...

Electron-vue 框架升级 Babel7 并支持electron-preload webapck 4 打包过程记录

前言 我这边一直用的electron-vue框架是基于electron 21版本的,electron 29版本追加了很多新功能,但是这些新功能对开发者不友好,对electron构建出来的软件,使用者更安全,所以,我暂时不想研究electron 29版…...

github仓库自动同步到gitee

Github Actions是Github推出的自动化CI/CD的功能,我们将使用Github Actions让Github仓库同步到Gitee 同步的原理是利用 SSH 公私钥配对的方式拉取 Github 仓库的代码并推送到 Gitee 仓库中,所以我们需要以下几个步骤 生成 SSH 公私钥添加公钥添加私钥配…...

汽车仪表板可识别安全气囊,安全带,ABS,邮箱,灯等多种告警参数,YOLO,VOC,COCO三种方式标记的数据集整理

关于数据集介绍: 汽车仪表板可识别安全气囊,安全带,ABS,邮箱,灯等多种告警参数,YOLO,VOC,COCO三种方式标记的数据集。 可识别常见的: 安全气囊和安全带系统 ,…...

springboot370高校宣讲会管理系统(论文+源码)_kaic

毕 业 设 计(论 文) 高校宣讲会管理系统设计与实现 摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此&#xff0c…...

GoReplay开源工具使用教程

目录 一、GoReplay环境搭建 1、Mac、Linux安装GoReplay环境 二、GoReplay录制与重播 1、搭建练习接口 2、录制命令 3、重播命令 三、GoReplay单个命令 1、常用命令 2、其他命令 3、命令示例 4、性能测试 5、正则表达式 四、gorepaly组合命令 1、组合命令实例 2、…...

UE4_材质节点_有关距离的_流体模拟

一、材质节点介绍: 特别注意:距离场需要独立显卡支持。 1、什么是距离场? 想象一下空间中只有两个实体, 一个球,一个圆柱. 空间由无数个点组成, 取其中任何一个点, 比如,它跟球面的最近距离是3, 跟圆柱面的最近距离是2, 那么这个点的值就…...

虚拟现实(VR)与增强现实(AR)有什么区别?

虚拟现实(Virtual Reality,VR)与增强现实(Augmented Reality,AR)在多个方面存在显著差异。以下是对这两者的详细比较: 一、概念定义 虚拟现实(VR): 是一种…...

浏览器中输入一个URL后,按下回车后发生了什么

URL ,统一资源定位符, 简单点就是网址 ip 或域名 端口号 资源位置 参数 锚点 大致流程 URL 解析DNS 查询TCP 连接处理请求接受响应渲染页面 1 .输入一个网址之后,首先浏览器通过查询 DNS ,查找这个 URL 的 IP …...

GNOME(GNU Network Object Model Environment)

定义与概述 GNOME(GNU Network Object Model Environment)是一种广泛使用的桌面环境。它是一个自由软件项目,旨在为操作系统提供一个直观、易用且功能强大的图形用户界面(GUI)。GNOME主要运行在类UNIX操作系统上&#…...

源码分析之Openlayers中的Collection类

概述 在Map类中,有一种高频出现的类Collection(即集合),比如Map类中interaction、controls和overlay的定义初始化和一些操作调用都和Collection有关。本文主要介绍 Openlayers 中Collection类的实现以及Collection类的事件机制。 源码剖析 Collection类 Collection类本质…...

Spring AI 框架介绍

Spring AI是一个面向人工智能工程的应用框架。它的目标是将Spring生态系统的设计原则(如可移植性和模块化设计)应用于AI领域,并推广使用pojo作为AI领域应用的构建模块。 概述 Spring AI 现在(2024/12)已经支持语言,图像&#xf…...

【Oracle11g SQL详解】UPDATE 和 DELETE 操作的正确使用

UPDATE 和 DELETE 操作的正确使用 UPDATE 和 DELETE 是 Oracle 11g 中用于修改和删除表中数据的重要 SQL 语句。在操作时,需特别注意数据筛选条件的准确性,以避免意外更改或删除数据。本文将详细介绍这两种语句的用法、注意事项及相关案例。 一、UPDATE…...

Advanced Macro Techniques in C/C++: `#`, `##`, and Variadic Macros

Advanced Macro Techniques in C/C: #, ##, and Variadic Macros 文章目录 Advanced Macro Techniques in C/C: #, ##, and Variadic MacrosIllustrative Examples of Macros Using # and ##Stringification ExampleToken Concatenation ExampleNested Macros Example Key Conc…...

Maven、JAVAWeb、Servlet

知识点目标 1、MavenMaven是什么Maven项目的目录结构Maven的Pom文件Maven的命令Maven依赖管理Maven仓库JavaWeb项目 2.网络基础知识 3、ServletMaven Maven是什么 Maven是Java的项目管理工具,可以构建,打包,部署项目,还可以管理…...

分布式资源调度——yarn 概述(资源调度基本架构和高可用的实现)

此文章是学习笔记,图片均来源于B站:哈喽鹏程 yarn详细介绍 1、yarn 简介1.1 yarn的简介1.2 yarn 的基本架构1.3. yarn 的高可用 2、yarn 调度策略、运维、监控2.1 yarn 的调度策略2.1.1 FIFO scheduler(先进先出)2.1.2 容量调度2.1.3 公平调度 2.2 yarn…...

网页开发的http基础知识

请求方式-GET:请求参数在请求行中,没有请求体,如:/brand/findAll?nameoPPo&status1。GET请求大小在浏览器中是有限制的请求方式-POST:请求参数在请求体中,POST请求大小是没有限制的 HTTP请求&#xf…...

学习方法的进一步迭代————4

今天又在怀疑第二大脑的可靠程度 为什么呢? 还是因为自己没记住东西,感觉没学到东西。 其实自己知道大脑本就不应该用来存放知识而是用来思考知识,但是自己还是陷在里面了,我觉得其本质不是因为认知还不够,也不是因为还有点不适…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

【机器视觉】单目测距——运动结构恢复

ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛&#xf…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如&#xff1a…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!

简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...

【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看

文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...

Qemu arm操作系统开发环境

使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...