在CentOS7上升级OpenSSL3和 OpenSSH9.0p1

2023-05-16

1.说明

CentOS7 自带的 OpenSSH 版本(OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26Jan 2017)漏扫出很多高
风险漏洞,预采用升级处理(升至 OpenSSH_9.0p1,OpenSSL 3.0.3 3 May 2022),而升级 OpenSSH
需先升级 OpenSSL(国际标准的加密及身份认证通信协议)。
通过绿盟漏洞扫描工具检测 OpenSSH 安全漏洞 CVE-2021-28041,现要求修复。

2.下载地址

OpenSSH下载地址:

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

OpenSSL下载地址:

https://www.openssl.org/source/openssl-3.0.3.tar.gz

3.升级OpenSSL

# 下载
wget https://www.openssl.org/source/openssl-3.0.3.tar.gz
# 解压缩
tar -zxvf openssl-3.0.3.tar.gz
# 配置
cd openssl-3.0.3
./config --prefix=/usr/ --openssldir=/usr/ shared
# 编译安装,需要一些时间我这里花了大概20分钟
make && make install
# 查看升级后的版本
openssl version -a

3.1.配置执行过程

# ./config --prefix=/usr/ --openssldir=/usr/ shared
Configuring OpenSSL version 3.0.3 for target linux-x86_64
Using os-specific seed configuration
Creating configdata.pm
Running configdata.pm
Creating Makefile.in
Creating Makefile
**********************************************************************
***                                ***
***  OpenSSL has been successfully configured           ***
***                                ***
***  If you encounter a problem while building, please open an  ***
***  issue on GitHub <https://github.com/openssl/openssl/issues> ***
***  and include the output from the following command:      ***
***                                ***
***    perl configdata.pm --dump                ***
***                                ***
***  (If you are new to OpenSSL, you might want to consult the  ***
***  'Troubleshooting' section in the INSTALL.md file first)   ***
***                                ***
**********************************************************************

3.2.版本信息

OpenSSL 3.0.3 3 May 2022 (Library: OpenSSL 3.0.3 3 May 2022)
built on: Tue Jun 21 01:33:10 2022 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/"
ENGINESDIR: "/usr//lib64/engines-3"
MODULESDIR: "/usr//lib64/ossl-modules"
Seeding source: os-specific
CPUINFO: OPENSSL_ia32cap=0xfffa32035f8bffff:0xd01e4fbb

4.升级OpenSSH

4.1.安装 telnet 服务

yum -y install telnet-server

4.2.使用 telnet 连接

1.启动telent服务

#启动 telnet 服务
systemctl start telnet.socket

2.添加pts终端入口
如果要使用root用户登录,也是需要在/etc/securetty文件中添加pts终端入口的(pts/0代表登陆的终端第
一个,pts/1代表第二个)
vim /etc/securetty

pts/0
pts/1

若 ssh 中断可采用 telnet 进行远程控制,进行处理 ssh 升级

telnet [服务器 ip]

4.3.安装相关命令依赖

yum install -y pam* zlib*

4.4.备份原 ssh 配置

mv /etc/ssh /etc/ssh_bak

4.5.停止并卸载原有的 OpenSSH

#停止 ssh 服务
systemctl stop sshd
#查看安装的 ssh
rpm -qa | grep openssh
#卸载 rpm 安装的 ssh
yum remove openssh*
yum remove -y openssh-clients-7.4p1-22.el7_9.x86_64
yum remove -y openssh-7.4p1-22.el7_9.x86_64
yum remove -y openssh-server-7.4p1-22.el7_9.x86_64

4.6.安装 OpenSSH

#安装 OpenSSH
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.0p1.tar.gz
#解压缩
tar -xzvf openssh-9.0p1.tar.gz
#配置
cd openssh-9.0p1
./configure --with-zlib --with-ssl-dir --with-pam \
--bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc/ssh
#编译安装
make && make install
cp contrib/redhat/sshd.init /etc/init.d/sshd
#查看升级后的 ssh 版本
ssh -V

4.7.修改 ssh 配置文件

默认 ssh 不允许 root 登录系统,如果想要 root 登录需要修改 ssh 配置文件,将#PermitRootLogin
prohibit-password 参数改成 PermitRootLogin yes并取消注释,开启 root 权限登录 。

vim /etc/ssh/sshd_config

...
PermitRootLogin yes
...

4.8.关闭 selinux

#修改 selinux 配置参数,永久关闭 selinux(重启后生效),也可vi /etc/selinux/config 手动修sed -i.bak 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
#临时关闭 selinux(使当前系统立即生效)
setenforce 0
#查看状态
getenforce

4.9.重启 OpenSSH

#重启 OpenSSH
service sshd restart
systemctl restart sshd

4.10.卸载 telnet

#卸载 telnet 服务
yum remove -y telnet-server
# 去除之前添加的pts/0和pts/1
vim /etc/securetty

到此结束。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在CentOS7上升级OpenSSL3和 OpenSSH9.0p1 的相关文章

  • CentOS7.5.1804 Minimal 安装JDK1.8.0_172

    一 安装前检查 安装之前先检查一下系统有没有自带open jdk 命令 rpm qa grep java rpm qa grep jdk rpm qa grep gcj 如果没有输出信息表示没有安装 如果有输出信息 表示安装了 检查是否是自
  • Centos7安装使用Docker

    Centos7安装使用Docker 系统环境与软件版本说明 名称 详情 系统环境 CentOS Linux release 7 5 1804 Core Docker docker ce 18 06 1 ce 3 el7 Docker安装 官
  • linux学习lesson14

    目录 1 df命令 2 du命令 3 磁盘分区 1 df命令 命令df disk filesystem的简写 用于查看已挂载磁盘的总容量 使用容量 剩余容量等 可以不加任何参数 默认以KB为单位显 i 表示查看inodes的使用状况 如已使
  • CentOS 6和Centos 7 虚拟机 关闭防火墙

    Centos 7 虚拟机 关闭防火墙 https blog csdn net preserveXing article details 127076756 CentOS 6 防火墙的关闭 关闭其服务即可 查看CentOS防火墙信息 etc
  • 记一次centos7 下根目录扩容操作(步骤详细!!!)

    文章目录 需求描述 具体步骤 查看本机磁盘环境 添加磁盘分区 开始扩容 同步到文件系统 参考内容 需求描述 由于测试环境需要 虚拟机根目录需要扩容至120G 具体步骤 查看本机磁盘环境 root localhost df h 文件系统 容量
  • Centos系统中mongodb的安装详解

    1 mongodb安装 MongoDB的下载网址 Download MongoDB Community Server MongoDB 将下载的压缩包文件上传到centos系统中 可以直接使用rz scp或者可视化工具上传 解压缩文件 Mon
  • 下载 CentOS 7 – DVD ISO 映像

    CentOS 是一个 Linux 操作系统 它是 Red Hat Enterprise Linux 100 兼容的重建版 用户可以免费下载并使用该企业级操作系统 CentOS 项目宣布了发行版的新更新 发布了CentOS 7 9它源自 Re
  • InnoDB:错误:空间标头页由数据文件 ./ibdata1 中的零字节组成

    我的 WordPress 设置非常好 但今天服务器突然停止加载我的网站 我登录并重新启动我的 centos 7 VPS 重启后没有启动MariaDB 这是我在日志中发现的内容 141026 18 13 50 Note usr libexec
  • 未捕获的 ReflectionException:类日志不存在 Laravel 5.2

    我目前正在尝试从 github 克隆我的现有项目 克隆后我运行composer install在此过程中我收到以下错误 Uncaught ReflectionException Class log does not exist 我在 Cen
  • Jenkins 中的 Android 模拟器

    我尝试在 Jenkins 中使用 Android 模拟器 我遵循这个指南 詹金斯插件 我在无头构建机器 CentOS 上完成此操作 我尝试从詹金斯创建模拟器 就像示例一样 当我尝试像这个例子一样做 但是在我的版本中 我从詹金斯那里得到了这个
  • 分子测试似乎忽略了ansible.cfg的remote_tmp设置

    我正在尝试使用molecule测试一个非常基本的角色 venv red jumphost docker ops cat roles fake role tasks main yml tasks file for fake role name
  • CentOS 7 上 kibana 的 Nginx 无限重定向

    我没有反向代理的经验 更不用说 nginx 并且正在挣扎 版本 基巴纳 5 6 nginx 1 10 2 当我去elk mydomain com kibana 我会循环重定向 直到 Firefox 在出现如下超长链接后阻止我 http el
  • 以气流用户身份运行气流进程和气流网络服务器

    Problem 我正在 GCP 上设置 Google Compute Engine 虚拟机airflow安装在其上 我现在正在尝试整合airflow with systemd按照以下说明http airflow readthedocs io
  • 在 Apache Web 服务器上部署 Angular 4 应用程序

    我想在我的 Apache Web 服务器上部署我的 Angular 应用程序 我已经添加了一个 htaccess文件到我的 var www html文件夹中 我尝试了几个base hrefs 但和很多人一样 我在路由方面也遇到了问题 我只能
  • 如何在 CentOS 7 中为终端创建键盘快捷键

    刚刚在我的笔记本电脑上安装了 CentOS 7 这个新版本的 CentOS 与旧版本有很大不同 我无法以旧方式为终端创建键盘快捷键 有人知道怎么做吗 Go to Settings gt gt gt keyboard gt gt gt Sho
  • Google Cloud Compute 上的多个 IP 地址

    我正在尝试使用多个内部 IP 地址设置基于 CentOS 7 的虚拟机 但它似乎并不像 Amazon AWS 那样简单 您可以使用路由为虚拟机添加内部 IP https cloud google com compute docs refer
  • Centos 7 Postgres 服务的环境变量

    最近我遇到了使用自定义 PGDATA 路径启动 postgresql 服务的问题 它尝试查找未初始化的默认数据目录 var lib pgsql 9 3 data 因此触发了这些错误 问题似乎是 Centos 7 上的服务启动器删除了所有环境
  • 是什么导致我的 SDL2 程序中出现杂散像素?

    我发现使用 SDL2 绘制的对象上附加了很多杂散像素 添加额外像素的对象包括线条 填充矩形以及转换为纹理的 TTF 文本 这SDL RenderFillRect https wiki libsdl org SDL RenderFillRec
  • 如何在 Apache 网站内托管 ASP.NET Core Web 应用程序?

    我有一个旧的php使用开发的应用程序Yii2框架托管在Centos路径上的服务器 var www html 该应用程序可在以下位置访问http somedomain com 我正在开发使用新的 API 项目ASP NET MVC Core需
  • Dotnet 构建失败:Linux 中的代理背后的 NuGet

    这看起来可能是一个类似的issue https stackoverflow com questions 9232160 nuget behind a proxy但在 CentOS 上 我已经尝试过此线程以及其他线程上的所有解决方案 但是我仍

随机推荐