CentOS7 OpenSSL升级到OpenSSH9.5p1

原文链接:
CentOS7 OpenSSL升级1.1.1w;OpenSSH 升级 9.5p1 保姆级教程
openssl从3.1.0升级到3.1.1遇到的问题

注意操作时需要联网请参考如下链接

内网服务器联网安装依赖参见我的另一篇文章

一、 前言

OpenSSH 的加密功能需要用到OpenSSL,所以在升级OpenSSH的时候,大部分情况是需要将OpenSSL一起升级的。

这里我们可以先升级OpenSSL到OpenSSL 1.1.1w 11 Sep 2023
然后再升级OpenSSH 到OpenSSH_9.5p1, OpenSSL 1.1.1w 11 Sep 2023

当然也可以从第三步开始操作,如果你的OpenSSL 版本太低会遇到报错 configure: error: OpenSSL >= 1.1.1 required,此时你需要跳到文末升级OpenSSL 再返回继续操作

1.1 注意点
在升级之前先将需要的包上传到服务器,以免升级失败后导致上传文件失败。(这里我用的sftp上传,sftp的核心也需要用到SSH),并安装telnet-server服务保证SSH升级失败后,可以继续远程连接。

需要有初始yum源,要不然安装这两个服务众多的依赖包将会是梦魇。

原始版本信息如下。

二、升级OpenSSL

2.1 安装依赖

yum -y install gcc*

2.2备份、卸载原有OpenSSL
1、 查找openssl 相关目录,然后备份

[root@vm206 etc]# whereis opensslopenssl: /usr/bin/openssl /usr/lib64/openssl /usr/share/man/man1/openssl.1ssl.gz[root@vm206 etc]# mv /usr/bin/openssl  /usr/bin/openssl.old[root@vm206 etc]# mv /usr/lib64/openssl /usr/lib64/openssl.old

2、 卸载 openssl (这一步看个人需要,我有洁癖所以我卸载了)

yum remove openssl

2.3安装openssl

tar -xzvf openssl-1.1.1w.tar.gzcd openssl-1.1.1w/./config --prefix=/usrmake && make install

这里我的目录选择了/usr 是因为系统最初始的openssl的目录就是/usr 这样可以省去的软连接、更新链接库的问题

2.4验证

[root@vm206 openssl-1.1.1w]# whereis opensslopenssl: /usr/bin/openssl /usr/lib64/openssl /usr/include/openssl /usr/share/man/man1/openssl.1ssl.gz /usr/share/man/man1/openssl.1[root@vm206 openssl-1.1.1w]# openssl  versionOpenSSL 1.1.1w  11 Sep 2023

可以看到我这边的目录和老版本的openssl的目录保持了一致,唯一不同的是多了一个/usr/include/openssl 库目录
如果不加prefix ,openssl的默认路径如下

Bin: /usr/local/bin/openssl

include库 :/usr/local/include/openssl

lib库:/usr/local/lib64/

engine库:/usr/lib64/openssl/engines

三、 升级OpenSSH

内网中yum需要代理,请看本文开头的蓝色加粗超链接

3.1 安装telnet-server

yum install telnet* -ysystemctl  start telnet.socketsystemctl enable telnet.socketmv /etc/securetty /etc/securetty.bak

临时关闭安全登录,否则无法进行远程telnet连接

有防火墙记得关闭防火墙,并关闭SELinux

防火墙:

 firewall-cmd --state

关闭防火墙:

systemctl stop firewalld.service

测试telnet远程登录,telnet登录成功才进行接下来的操作,防止sshd服务被搞坏了远程连不上服务器

telnet 172.16.1.182
Type `help' to learn how to use Xshell prompt.
[D:\~]$ telnet 172.16.1.182Connecting to 172.16.1.182:23...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.Kernel 5.15.1-1.el7.elrepo.x86_64 on an x86_64
0003 login: root
Password: 
Last login: Wed Dec 13 09:46:44 from 172.10.110.247
[root@0003 ~]# 

如上,已经可以通过telnet远程连接了,这下可以放心大胆的操作了。

接下来的操作用telnet远程,不要用ssh远程,防止升级OpenSSH9.5p1时原ssh文件卸载不干净

3.2 安装依赖包

yum install -y gcc pam-devel rpm-build wget zlib-devel openssl-devel net-tools

3.3 备份

在这里插入图片描述

通过whereis ssh sshd找出bin文件、源文件,然后备份。 man手册不需要备份。

mv /etc/ssh /etc/ssh.bakmv /usr/bin/ssh /usr/bin/ssh.bakmv /usr/sbin/sshd /usr/sbin/sshd.bakmv /etc/pam.d/sshd  /etc/pam.d/sshd.old

备份pam验证文件

3.4卸载旧版OpenSSH

yum remove openssh

3.5安装新版OpenSSH

tar -xzvf openssh-9.5p1.tar.gzcd openssh-9.5p1./configure --prefix=/usr --sysconfdir=/etc/ssh  --with-pam   --with-ssl-dir=/usr/local/lib64/

其中–prefix --sysconfdir 这两个参数我仍然采用了系统之前的默认路径,避免路径混乱导致的问题
如果报错 configure: error: OpenSSL >= 1.1.1 required请看文末的问题

makemake installcd /etc/pam.d/mv sshd.old sshd

恢复ssh pam认证

cd openssh-9.5p1/cp contrib/redhat/sshd.init /etc/init.d/sshdchkconfig --add sshdsystemctl  enable sshdsystemctl  start sshd

可以看到,已经升级成功

[root@0003 ~]# ssh -V
OpenSSH_9.5p1, OpenSSL 3.1.0 14 Mar 2023
[root@0003 ~]# 

3.6修改/etc/ssh/sshd_config 配置文件
文件修改如下,然后重启sshd服务即可在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

登录成功界面

在这里插入图片描述

问题

configure: error: OpenSSL >= 1.1.1 required

原因

原因是,我上一次修复BUG时,把openssl版本直接从1.1.1t升级到了3.1.0,需要的lib类库也需要从libssl.so.1.1更新到libssl.so.3,这一次同样是3版本,我以为不用更新了,所以出现了上面的错误;

解决办法

进入安装好的/usr/local/openssl311/lib64目录下(openssl311是自定义的,选择自己的安装目录),将libssl.so.3文件和libcrypto.so.3文件复制到/usr/lib64目录下,选择覆盖;

升级过程
下载:

内网中wget需要代理,请看本文开头的蓝色加粗超链接

wget https://www.openssl.org/source/openssl-3.1.0.tar.gz --no-check-certificate

解压:

tar -xzvf openssl-3.1.0.tar.gz

进入解压后目录:

cd openssl-3.1.0

配置安装目录:

./config --prefix=/usr/local/openssl310

注意–prefix=/usr/local/openssl311,如果–prefix=/usr/local/openssl覆盖安装之前版本会失败,我已踩坑
这里安装目录和之前目录保持不同,安装完成再去删除之前的 /usr/local/openssl目录,不删除就当废弃文件放在那也行

我在升级另一台服务器又遇到这个开头的错Can’t locate IPC/Cmd.pm in
参考:
编译升级OpenSSL报错:Can‘t locate IPC/Cmd.pm
解决一个问题----cpan配置(proxy,mirror)
cpan好像是一个脚本工具,类似于shell
即先安装cpan,初始化cpan配置时选手动配置,一直回车使用默认配置,再重新进入cpan命令行为其配置代理
再用cpan安装IPC/Cmd.pm

编译安装:

make && make install

进入安装好的/usr/local/openssl311/lib64目录下(openssl311是自定义的,选择自己的安装目录),

cd /usr/local/openssl310/lib64

将libssl.so.3文件和libcrypto.so.3文件复制到/usr/lib64目录下,选择覆盖;

cp libssl.so.3  /usr/lib64
cp libcrypto.so.3  /usr/lib64

本地查看是否成功:

/usr/local/openssl310/bin/openssl version -a

出现问题,解决后可正常显示新版本,或无问题,继续下一步
软链接:进入/usr/bin目录,查询openssl的软链接,如果指定的是旧版本,使用命令取消旧软链接

unlink /usr/bin/openssl

创建新软链接:

ln -s /usr/local/openssl310/bin/openssl /usr/bin/openssl

刷新命令库:

ldconfig

在任一目录直接验证,可查看到新版本

openssl version -a
[root@0003 ~]# openssl version -a
OpenSSL 3.1.0 14 Mar 2023 (Library: OpenSSL 3.1.0 14 Mar 2023)
built on: Tue Dec 12 08:24:05 2023 UTC
platform: linux-x86_64
options:  bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG
OPENSSLDIR: "/usr/local/openssl310/ssl"
ENGINESDIR: "/usr/local/openssl310/lib64/engines-3"
MODULESDIR: "/usr/local/openssl310/lib64/ossl-modules"
Seeding source: os-specific
CPUINFO: OPENSSL_ia32cap=0xfffa32035f8bffff:0x800d19e4fbb
[root@0003 ~]# 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言指针基础题(二)

目录 例题一题目解析及答案 例题二题目解析及答案 例题三题目解析及答案 例题四题目解析及答案 例题五题目解析及答案 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 🐒🐒🐒 个人主页 🥸🥸&#x1f…

Unity | 渡鸦避难所-2 | 搭建场景并添加碰撞器

1 规范项目结构 上期中在导入一系列的商店资源包后,Assets 目录已经变的混乱不堪 开发过程中,随着资源不断更新,遵循一定的项目结构和设计规范是非常必要的。这可以增加项目的可读性、维护性、扩展性以及提高团队协作效率 这里先做下简单的…

智能优化算法应用:基于斑点鬣狗算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于斑点鬣狗算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于斑点鬣狗算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.斑点鬣狗算法4.实验参数设定5.算法结果6.…

攻防世界-web-upload

1. 题目描述 打开链接,是这样的一个注册界面 先试着注册一个账号看看,这里简单操作,注册test/test,注册完后进行登录 登录成功后进入到这样一个文件上传界面。当前从界面上得到的信息暂时就是这些了。 2. 思路分析 既然存在上传…

【ret2hbp】一道板子测试题 和 SCTF2023 - sycrpg

前言 ret2hbp 主要是利用在内核版本 v6.2.0 之前,cpu_entry_area mapping 区域没有参与随机化的利用。其主要针对的场景如下: 1)存在任意地址读,泄漏内核地址 2)存在无数次任意地址写,泄漏内核地址并提权…

HCIA-WLAN V3.0,那些重点要点

一、WLAN各个标准,工作频段,理论速率。 二、OFDM和OFDMA,工作频段,空间流。 三、三种帧类型:管理帧、控制帧、数据帧,CAPWAP报文和端口。 四、帧间间隔,波束成形,信道绑定&#xff0…

接口测试要测试什么?怎么测?

本文主要分为两个部分: 第一部分:主要从问题出发,引入接口测试的相关内容并与前端测试进行简单对比,总结两者之前的区别与联系 第二部分:主要介绍为什么要做接口测试,并简单总结接口持续集成和接口质量评估…

正确看待鸿蒙不兼容Android,这不是趋势?

华为可能明年推出不兼容安卓的鸿蒙版本。11月20日,据澎湃新闻报道,一华为相关人士表示,推出时间还不确定,未来IOS、鸿蒙、安卓将为三个各自独立的系统。 稍早前据证券时报报道,有业内人士亦表示:“华为内部…

Re59:读论文 Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks

诸神缄默不语-个人CSDN博文目录 诸神缄默不语的论文阅读笔记和分类 论文名称:Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks 模型开源地址:https://huggingface.co/facebook/rag-token-nq ArXiv下载地址:https://arxi…

Linux——MySQL数据库的使用

访问MySQL数据库 MySOL数据库系统也是一个典型的C/S(客户端/服务器)架构的应用,要访问MySOL数据库 需要使用专门的客户端软件,在Linux系统中,最简单、易用的MySQL.客户端软件是其自带的mysql 命令工具。 登录到MySQL服…

关于Cython生成的so动态链接库逆向

来个引子:TPCTF的maze题目 如何生成这个so文件 为了研究逆向,我们先搞个例子感受一下生成so的整个过程,方便后续分析 创建对应python库文件 testso.py def test_add(a,b):a int(a)b int(b)return a bdef test_calc(li):for i in range…

逆向思考 C. Fence Painting

Problem - 1481C - Codeforces 思路:逆序考虑,因为每一块木板都是被最后一次粉刷所决定的。 从后往前开始,对于 c i c_i ci​来说, 如果这个颜色还有没有涂的木板,那么涂到其中一个木板即可如果这个颜色下没有未涂的…

系统思考与啤酒游戏经营沙盘

结束一家汽车零配件公司《系统思考与啤酒游戏经营沙盘》的内训课,4个小组基本上都有共同的心智模式,这也代表团队有一些集体的盲点。不仅仅对啤酒游戏经营沙盘做了复盘,同时也借用学员画出的系统环路图完成真实案例的研讨以及团队共识&#x…

从零开始学机器学习,这些学习网站让你事半功倍!

介绍:机器学习是人工智能(AI)和计算机科学的一个分支,它专注于使用数据和算法,模仿人类学习的方式,逐步提高自身的准确性。更具体来说,机器学习是一门关于数据学习的科学技术,它能帮…

功能更新|免费敏捷工具Leangoo领歌私有部署新增第三方身份认证和API对接

Leangoo领歌是一款永久免费的专业的敏捷开发管理工具,提供端到端敏捷研发管理解决方案,涵盖敏捷需求管理、任务协同、进展跟踪、统计度量等。 Leangoo支持敏捷研发管理全流程,包括小型团队敏捷开发,规模化敏捷SAFe,Scr…

MySQL笔记-第11章_数据处理之增删改

视频链接:【MySQL数据库入门到大牛,mysql安装到优化,百科全书级,全网天花板】 文章目录 第11章_数据处理之增删改1. 插入数据1.1 实际问题1.2 方式1:VALUES的方式添加1.3 方式2:将查询结果插入到表中 2. 更…

三只松鼠坚持的“高端性价比”,也是零食行业通往未来的门票?

文 | 螳螂观察 作者 | 易不二 没有成功的企业,只有时代的企业。 从全球商业数百年的发展历史来看,一百年间有无数企业演绎了“诞生→发展→巅峰→衰亡”的宿命。即便此间已经走到了世界500强的企业,到现在存活下来的也仅有3%。 时代的潮流…

2023自动化测试框架大对比:哪个更胜一筹?

所谓工欲善其事,必先利其器,在进行自动化测试时,选择一个合适的框架是至关重要的。因为一个好的测试框架可以大大提高测试效率,减少我们很多工作量。在选择框架之前,我们通常需要对不同的框架进行对比,以便…

LeetCode:1631. 最小体力消耗路径(SPFA Java)

目录 1631. 最小体力消耗路径 题目描述: 实现代码与解析: BFSDP 原理思路: 1631. 最小体力消耗路径 题目描述: 你准备参加一场远足活动。给你一个二维 rows x columns 的地图 heights ,其中 heights[row][col] 表…

【后端学前端】第一天 css动画 内凹导航栏

1、学习信息 css动画 内凹导航栏_哔哩哔哩_bilibili 随便找的的视频&#xff0c;主要原因是在公司不方便有声音 2、源码 最终源码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title…