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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/925518.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Stable Diffusion】安装教程

目录 一、python 安装教程 二、windows cuda安装教程 三、Stable Diffusion下载 四、Stable Diffusion部署(重点) 一、python 安装教程 (1)第一步下载 打开python下载页面,找到python3.10.9,点击右边…

Scala身份证上的秘密以及Map的遍历

object test {def main(args: Array[String]): Unit {val id "42032220080903332x"//1.生日是?//字符串截取val birthday id.substring(10,14) //不包括终点下标println(birthday)val year id.substring(6,10) //println(year)//性别:倒数第…

springboot 异步 @Async 的日常使用及失效场景

文章目录 springboot 异步 Async 的日常使用引言一、Async 使用位置二、Async 使用三、注解 Async 失效的情况(1)调用同一个类中的异步方法(内部调用)(2)未使用 EnableAsync 注解(3)…

Laravel8.5+微信小程序实现京东商城秒杀方案

一、商品秒杀涉及的知识点 鉴权策略封装掊口访问频次限制小程序设计页面防抖接口调用订单创建事务使用超卖防御 二、订单库存系统方案(3种) 下单减库存 优点是库存和订单的强一致性,商品不会卖超,但是可能导致恶意下单&#xff…

三角网格体的光滑性问题

三角网格体的光滑性问题 在计算机图形学和计算机辅助设计中,C0连续性(也称为位置连续性)是指两个曲线或曲面在它们的公共边界上具有相同的位置。这意味着它们在边界处没有缝隙或重叠,但它们的切线方向可以不同。C0连续性是最低级…

独家|京东调整职级序列体系

原有的M、P、T、S主序列将正式合并为新的专业主序列P。 作者|文昌龙 编辑|杨舟 据「市象」独家获悉,京东已在近日在内部宣布对职级序列体系进行调整,将原有的M、P、T、S主序列正式合并为新的专业主序列P,合并后的职级体系将沿用原有专业序…

Echarts 绘制地图

一、Apache Echarts 官网地址:https://echarts.apache.org/ npm install echarts --save 二、获取地图的GeoJSON 地址:DataV.GeoAtlas地理小工具系列 左侧是地图,右侧是JSON数据路径,点击你想要生成的地图省市、地级&#xff0…

想入手养宠宠物空气净化器,养宠宠物空气净化器哪个好?

家里有了宠物后,确实多了很多欢乐,但掉落的毛发也多了不少,特别是换毛期,掉毛问题真的很让人头疼!作为养了多年宠物的铲屎官,我真心推荐大家买一台宠物空气净化器,它能大大提升家里的空气质量&a…

ASUS/华硕ROG掌机 2023款 RC71 NR2301原厂win11系统 工厂文件 带ASUS Recovery恢复

华硕工厂文件恢复系统 ,安装结束后带隐藏分区,一键恢复,以及机器所有驱动软件。 系统版本:windows11 原厂系统下载网址:http://www.bioxt.cn 需准备一个20G以上u盘进行恢复 请注意:仅支持以上型号专用…

nginx 升级http 到 http2

同步发布于我的网站 🚀 背景介绍准备工作配置过程遇到的问题及解决方法验证升级总结参考资料 背景介绍 HTTP/2 是 HTTP 协议的最新版本,相比 HTTP/1.1,它带来了多项重要的改进,包括多路复用、头部压缩和服务端推送。这些特性可…

Spark 内存管理机制

Spark 内存管理 堆内内存和堆外内存 作为一个 JVM 进程,Executor 的内存管理建立在 JVM(最小为六十四分之一,最大为四分之一)的内存管理之上,此外spark还引入了堆外内存(不在JVM中的内存),在spark中是指不…

透视投影(Perspective projection)与等距圆柱投影(Equirectangular projection)

一、透视投影 1.方法概述 Perspective projection(透视投影)是一种模拟人眼观察三维空间物体时的视觉效果的投影方法。它通过模拟观察者从一个特定视点观察三维场景的方式来创建二维图像。在透视投影中,远处的物体看起来比近处的物体小&…

uniapp开发微信小程序笔记8-uniapp使用vant框架

前言:其实用uni-app开发微信小程序的首选不应该是vant,因为vant没有专门给uni-app设置专栏,可以看到目前Vant 官方提供了 Vue 2 版本、Vue 3 版本和微信小程序版本,并由社区团队维护 React 版本和支付宝小程序版本。 但是vant的优…

Spring Web MVC其他扩展(详解下)

文章目录 Spring MVC其他扩展(下)异常处理异常处理机制声明式异常好处基于注解异常声明异常处理 拦截器拦截器概念拦截器使用拦截器作用位置图解拦截器案例拦截器工作原理源码 参数校验校验概述操作演示SpringMVC自定义参数验证ValueObject(VO) 文件上传…

【线上问题记录 | 排查网络连接问题】

问题描述 现在有我们程序是部署在服务器A的,A链接的是B。程序从B的redis进行存储和取数据的。 我们的业务是: 信息展示,也就是如果发现机器有异常了,实时进行监控。突然发现有一天,信息显示延迟了。 然后我们就开始排查究竟什么原…

如何保护LabVIEW程序免遭反编译

在正常情况下,LabVIEW程序(即编译后的可执行文件或运行时文件,如 .exe 或 .llb)无法直接被反编译出源码。然而,有一些需要特别注意的点: 1. LabVIEW的编译机制 LabVIEW编译器会将源码(.vi文件&a…

求助:selenium.common.exceptions.SessionNotCreatedException: x x x

1.背景 想要使用python代码接管已打开的浏览器,减少重复登录或者selenium用例执行前的又臭又长的流程 2.报错截图 3.场景 目前是已开启浏览器调试模式且终端未关闭,执行上图中的代码后没有自动输入url且报错 4. 分析 我尝试了add_experimental_optio…

40分钟学 Go 语言高并发:【实战课程】工作池(Worker Pool)实现

工作池(Worker Pool)实战实现 一、知识要点概述 模块核心功能实现难点重要程度池化设计管理协程生命周期并发安全、资源控制⭐⭐⭐⭐⭐动态扩缩容根据负载调整池大小平滑扩缩、性能优化⭐⭐⭐⭐任务分发合理分配任务到worker负载均衡、任务优先级⭐⭐⭐…

Could not locate device support files.

报错信息:Failure Reason: The device may be running a version of iOS (13.6.1 17G80) that is not supported by this version of Xcode.[missing string: 869a8e318f07f3e2f42e11d435502286094f76de] 问题:xcode15升级到xcode16之后,13.…

Ubantu系统docker运行成功拉取失败【成功解决】

解决docker运行成功拉取失败 失败报错 skysky-Legion-Y7000-IRX9:~$ docker run hello-world docker: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Head “http://%2Fvar%2Frun%2Fdocker.sock/_ping”: dial uni…