麒麟 V10(ky10.x86_64)无网环境下 openssl - 3.2.2 与 openssh - 9.8p1 升级【最全教程】

目录

背景

安装包下载

上传解压安装包

安装zlib

安装OpenSSL

安装OpenSSH

验证


背景

近期,项目上线已进入倒计时阶段,然而在至关重要的安全检查环节中,却惊现现有的 OpenSSH 存在一系列令人担忧的漏洞:

OpenSSH 资源管理错误漏洞(CVE-2021-28041)
OpenSSH 信息泄露漏洞(CVE-2020-14145)
OpenSSH 输入验证错误漏洞(CVE-2020-12062)
OpenSSH 操作系统命令注入漏洞(CVE-2020-15778)
OpenSSH 安全漏洞(CVE-2023-51385)
OpenSSH 安全漏洞(CVE-2023-38408)
OpenSSH 安全漏洞(CVE-2021-41617)
OpenSSH 安全漏洞(CVE-2016-20012)

鉴于此严峻形势,按照相关的漏洞修复指引,当务之急是将 OpenSSH 升级到更为安全可靠的 9.8 版本,以确保项目能够顺利上线并在安全的环境中稳定运行。

安装包下载

  • 查看服务器系统版本
[root@localhost ~]# cat /etc/os-release
NAME="Kylin Linux Advanced Server"
VERSION="V10 (Sword)"
ID="kylin"
VERSION_ID="V10"
PRETTY_NAME="Kylin Linux Advanced Server V10 (Sword)"
ANSI_COLOR="0;31"
  • 下载OpenSSH

openssh-9.8p1.tar.gzicon-default.png?t=O83Ahttps://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz

  • 下载OpenSSL

openssl-3.2.2.tar.gzicon-default.png?t=O83Ahttps://github.com/openssl/openssl/releases/download/openssl-3.2.2/openssl-3.2.2.tar.gz

  • 下载zlib

zlib-1.3.1.tar.gzicon-default.png?t=O83Ahttps://zlib.net/fossils/zlib-1.3.1.tar.gz

上传解压安装包

将这3个安装包放置服务器 /opt 目录下,执行以下命令,解压安装包

tar -xf openssh-9.8p1.tar.gz
tar -xf openssl-3.2.2.tar.gz
tar -xf zlib-1.3.1.tar.gz

安装zlib

  • 编译安装
cd /opt/zlib-1.3.1
./configure --prefix=/usr/local/src/zlilb
make -j 4 && make test && make install
  • 验证
[root@localhost opt]# ldconfig -V
ldconfig (GNU libc) 2.28
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Andreas Jaeger.

安装OpenSSL

  • 编译安装
cd /opt/openssl-3.2.2
./config --prefix=/usr/local/src/openssl# 这里需要等待较长时间,勿慌
make -j 4 && make install
  • 创建openssl软连接
mv /usr/bin/openssl /usr/bin/openssl.bak2 
ln -s /usr/local/src/openssl/bin/openssl /usr/bin/openssl 
ln -s /usr/local/src/openssl/lib64/libssl.so.3 /usr/lib64/libssl.so.3 
ln -s /usr/local/src/openssl/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3
  • 验证
[root@localhost openssl-3.2.2]# openssl version -a
OpenSSL 3.2.2 4 Jun 2024 (Library: OpenSSL 3.2.2 4 Jun 2024)
built on: Tue Dec  3 13:10:47 2024 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/src/openssl/ssl"
ENGINESDIR: "/usr/local/src/openssl/lib64/engines-3"
MODULESDIR: "/usr/local/src/openssl/lib64/ossl-modules"
Seeding source: os-specific
CPUINFO: OPENSSL_ia32cap=0xfff83203078bffff:0x209c01ab

安装OpenSSH

  • 编译安装
cd /opt/openssh-9.8p1
./configure --prefix=/usr/local/src/ssh --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/usr/local/src/openssl --with-zlib=/usr/local/src/zlilb
make -j 4 && make install
  • 覆盖旧的ssh文件
cp -rf /opt/openssh-9.8p1/contrib/redhat/sshd.init /etc/init.d/sshd 
cp -rf /usr/local/src/ssh/sbin/sshd /usr/sbin/sshd 
cp -rf /usr/local/src/ssh/bin/ssh /usr/bin/ssh 
cp -rf /usr/local/src/ssh/bin/ssh-keygen /usr/bin/ssh-keygen
  • 设置ssh允许root用户登录、开启公钥认证登录、允许密码认证登录
echo 'PermitRootLogin yes' >>/usr/local/openssh/etc/sshd_config
echo 'PubkeyAuthentication yes' >>/usr/local/openssh/etc/sshd_config
echo 'PasswordAuthentication yes' >>/usr/local/openssh/etc/sshd_config
  • 重启ssh
systemctl daemon-reload
/etc/init.d/sshd restart
/etc/init.d/sshd status
  • 查看ssh版本
[root@gxq-fwaqjc-4 openssh-9.8p1]# ssh -V
OpenSSH_9.8p1, OpenSSL 3.2.2 4 Jun 2024
  • 设置开机自启
chkconfig --add sshd

验证

最后,打开新窗口尝试是否能通过SSH连接服务器,千万不要关闭当前连接,验证新窗口能正常连接再关闭,不然操作失误,无法连接上服务器就难搞了。

该篇教程到此结束啦,亲测可用,希望也能解决你的问题!如果有帮助到你,点个赞呗!🎉🎉🎉

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

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

相关文章

Android EventBus最全面试题及参考答案

目录 什么是 EventBus? 请解释 EventBus 是什么,以及它的工作原理。 简述 EventBus 的工作原理。 EventBus 的主要组成部分有哪些? EventBus 是如何实现发布订阅模式的? EventBus 与观察者模式有什么区别? EventBus 的优点在哪、不用 EventBus 怎么解决? EventBu…

高级架构二 Git基础到高级

一 Git仓库的基本概念和流程 什么是版本库?版本库又名仓库,英文名repository,你可以简单的理解一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git都能跟踪,以便任何…

从excel数据导入到sqlsever遇到的问题

1、格式问题时间格式,excel中将日期列改为日期未生效,改完后,必须手动单击这个单元格才能生效,那不可能一个一个去双击。解决方案如下 2、导入之后表字段格式问题,数据类型的用navicat导入之后默认是nvarchar类型的&a…

21天掌握javaweb--->第4天:MyBatis-Plus基础与进阶

21天掌握JavaWeb--->第4天:MyBatis-Plus基础与进阶 MyBatis-Plus简介 MyBatis-Plus(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。它具有以下核心优势&#xff…

FREERTOS二值信号量实验

代码: 主程序 #include "./SYSTEM/sys/sys.h" #include "./SYSTEM/usart/usart.h" #include "./SYSTEM/delay/delay.h" #include "./BSP/LED/led.h" #include "./BSP/LCD/lcd.h" #include "./BSP/KEY/key…

vue3中 axios 发送请求 刷新token 封装axios

service.js 页面 import axios from axios // 创建axios实例 const instance axios.create({baseURL: http://gcm-test.jhzhkj.cn:8600/h5card/,timeout: 5000, // 请求超时时间headers: {get: {Content-Type: application/x-www-form-urlencoded},post: {Content-Type: appl…

对于Oracle来说,土地管理是非核心域吗

思雨喵 2022-1-4 14:13 您在课上说,对于土地管理系统来说oracle,arcgis,java是非核心域,因为它们可有可无。我想请教对于oracle来说,土地管理好像也是可有可无,那么土地管理是非核心域吗 UMLChina潘加宇 …

一次Kafka启动失败引出的问题

背景 Some time,有个现场童鞋说咱的Kafka实例有个broker一直crash,还截图给我看了,大致是Kafka启动加载topic分区日志文件的时候,然后就没了,连个WARN都没有。当然,光看这个截图咱啥都不知道,因…

工业齐套管理虚拟现实仿真模拟软件

工业齐套管理虚拟现实仿真模拟软件是与法国最大的汽车制造商合作开发的一款虚拟现实仿真模拟软件,借助身临其境的虚拟现实环境,无需停止生产线,即可模拟仓库和提货区域。 工业齐套管理虚拟现实仿真模拟软件不仅适用于汽车工业,安全…

状态模式的理解和实践

在软件开发中,我们经常遇到需要根据对象的不同状态执行不同行为的情况。如果直接将这些状态判断和行为逻辑写在同一个类中,会导致该类变得臃肿且难以维护。为了解决这个问题,状态模式(State Pattern)应运而生。状态模式…

【MySQL — 数据库基础】MySQL的安装与配置 & 数据库简单介绍

数据库基础 本节目标 掌握关系型数据库,数据库的作用掌握在Windows和Linux系统下安装MySQL数据库了解客户端工具的基本使用和SQL分类了解MySQL架构和存储引擎 1. 数据库的安装与配置 1.1 确认MYSQL版本 处理无法在 cmd 中使用 mysql 命令的情况&a…

图学习GNN笔记

目录 第一部分:预测分析中的图学习4.3 案例研究:图上的学习机器学习生命周期 第二部分:图特征学习特征表示与嵌入为什么难以学习? 第三部分:节点嵌入嵌入节点设置学习节点嵌入浅层编码如何定义节点相似性? …

Python从入门到入狱

Python是从入门到入狱?这个充满调侃意味的说法在程序员圈子里流传甚广。表面看,它似乎是在嘲笑这门语言从简单易学到深陷麻烦的巨大反差,实际上却隐藏着很多值得深思的问题。要解读这个话题,得从Python的特点、使用场景以及潜在风…

Linux获取文件属性

目录 stat函数 获取文件属性 获取文件权限 实现“head -n 文件名”命令的功能 编程实现“ls -l 文件名”功能 stat/fstat/lstat的区别? stat函数 int stat(const char *path, struct stat *buf); 功能:获取文件属性 参数: path&…

线程信号量 Linux环境 C语言实现

既可以解决多个同类共享资源的互斥问题&#xff0c;也可以解决简易的同步问题 头文件&#xff1a;#include <semaphore.h> 类型&#xff1a;sem_t 初始化&#xff1a;int sem_init(sem_t *sem, int pshared, unsigned int value); //程序中第一次对指定信号量调用p、v操…

如何使用k8s安装minio呢

话不多说&#xff0c;直接干货。 创建 minio-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata:name: miniolabels:app: minio spec:replicas: 1selector:matchLabels:app: miniotemplate:metadata:labels:app: miniospec:containers:- name: minioimage: reg…

设计模式:17、单件模式(单例模式)

目录 0、定义 1、单件模式的一个角色 2、单件模式的UML类图 3、示例代码 0、定义 保证一个类仅有一个实例&#xff0c;并提供一个访问它的全局访问点。 1、单件模式的一个角色 单件类&#xff08;Singleton&#xff09;:单件类只可以创建出一个实例。 2、单件模式的UML类…

前端常用缓存技术深度剖析

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

任务管理法宝:甘特图详解

在项目管理中&#xff0c;如何清晰、直观地展示项目的进度和任务分配&#xff1f; 甘特图作为一种经典的项目管理工具&#xff0c;提供了有效的解决方案。无论是团队合作还是个人项目管理&#xff0c;甘特图都能帮助你轻松追踪各项任务的进展。今天&#xff0c;我们将详细介绍…

leetcode 62.不同路径

1.题目要求: 2.解题思路: 利用动态规划去解此题 3.题目代码: class Solution { public:int uniquePaths(int m, int n) {//创建dp数组vector<vector<int>> dp;dp.resize(m);for(int i 0;i < dp.size();i){dp[i].resize(n);}//确定dp数组的含义//初始化for(i…