记一次手动将OpenSSH从7.4升级到9.8的过程?openssh升级8.0

记一次手动将OpenSSH从7.4升级到9.8的过程 文章目录 背景相关介绍安装 telnet-server安装zlib安装openssl备份并卸载老版本OpenSSH升级OpenSSH 背景
漏洞介绍 OpenSSH是加拿大OpenBS

文章目录

背景相关概述安装安装Telnet 服务器安装zlib 备份和卸载openssl 升级旧版本的OpenSSH OpenSSH

背景

漏洞简介

OpenSSH 是加拿大OpenBSD 项目组提供的一组连接工具,用于安全地访问远程计算机。该工具是SSH协议的开源实现,支持对所有通信进行加密,可以有效防止窃听、连接劫持和其他网络级攻击。该漏洞是由于信号处理程序中的竞争条件造成的,该条件可能允许攻击者远程执行任意代码并在未经身份验证的情况下控制系统。

有害的影响

OpenSSH 版本8.5p1 到9.8p1 均受此漏洞影响。

8.5p1=OpenSSH 9.8p1

修复建议

OpenSSH现已正式发布新版本修复了该漏洞。建议用户检查产品版本并尽快打补丁。官方更新版本下载链接:

https://www.openssh.com/txt/release-9.8

相关介绍

OpenSSH 是SSH(安全外壳)协议的实现,用于在不安全的网络上提供安全的通信方法。广泛用于远程登录、远程命令执行和安全文件传输。

OpenSSH 提供了许多工具,包括ssh(用于登录远程计算机)、scp 和sftp(用于文件传输)以及sshd(SSH 守护进程)。

确保通信的机密性和完整性并防止中间人攻击。

OpenSSL 是一个功能强大的加密库,提供各种加密算法、哈希函数和加密协议(例如TLS/SSL)的实现。

它广泛用于保护网络通信并确保数据在传输过程中不会被窃听或篡改。

OpenSSL 提供加密和解密功能、密钥生成和管理、数字证书处理等。

zlib的作用

数据压缩:

OpenSSH 使用zlib 来压缩和解压缩传输的数据。压缩数据可以减少发送的数据量,提高传输速度和效率,尤其是在带宽有限的网络环境中。

减少带宽使用。

压缩显着减少了在SSH 会话中传输数据所需的带宽。这在需要传输大量数据的场景下尤其有用,例如文件传输或远程执行大量命令。

提高传输效率:

对于文本数据,压缩效果尤其明显。减少传输的数据量可以提高传输效率并减少传输时间。

安装 telnet-server

避免关闭SSH后无法远程连接。

rpm -q Telnet 服务器

#检查Telnet服务器是否安装

rpm -q 远程登录

#检查是否安装了Telnet客户端

离线模式:通过联网主机下载。

sudo yum 安装yum-utils

mkdir telnet 服务器安装

cd telnet 服务器安装

yumdownloader –解析Telnet 服务器

可以通过FTP上传安装

cd ~/telnet 服务器安装

sudo rpm -ivh *.rpm

下载telnet-server及其所有依赖包到当前目录。

或者直接安装

yum 安装telnet-y

开始

systemctl 启用telnet.socket

#设置开始

systemctl 启动telnet.socket

#开放服务

防火墙打开Telnet或者打开23端口

sudo 防火墙-cmd –permanent –add-service=telnet

sudo 防火墙-cmd –reload

使用Telnet IP 地址连接并登录

允许root登录

系统默认不允许root用户通过Telnet远程登录。

回显“pts/0”/etc/securetty

回显“pts/1”/etc/securetty

您可以通过其他主机尝试。

[root@standby选项]# telnet 10.10.10.171

正在尝试10.10.10.171.

连接到10.10.10.171。

转义字符是“^]”。

x86_64 上的内核3.10.0-1160.el7.x86_64

本地主机登录: root

密码:

上次登录失败: Thu Jul 4 13:56:07 CST 2024 至:ffff:10.10.10.42 (pts/0)

自上次成功登录以来,已经有3 次登录尝试失败。

最后登录: 7 月4 日星期四10:30:43 来自172.20.1.1

您可能还需要添加pts/3 和pts/4。

即使输入正确密码也无法登录

在主机端运行:tail /var/log/secure

访问被拒绝: tty \’pts/3\’ 不安全!

再添加一张

回显“pts/3”/etc/securetty

重新启动Telnet 并再次登录,一切都会正常。

安装zlib

安装zlib:https://www.zlib.net/fossils/

cd /usr/local/src/

wget https://www.zlib.net/fossils/zlib-1.3.1.tar.gz

#解压文件

tar zxvf zlib-1.3.tar.gz

cd zlib-1.3

#安装预依赖项

yum 安装gcc gcc-c++ make -y

#编译并安装zlib

./configure –prefix=/usr/local/zlib

进行安装

安装openssl

安装openssl:https://www.openssl.org/source/

cd /usr/local/src/

wget https://www.openssl.org/source/openssl-3.2.2.tar.gz

#解压文件

tar zxvf openssl-3.2.0.tar.gz

cd openssl-3.2.0

#安装对应的预依赖

yum install -y perl-CPAN perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker

完成后输出:

:已安装

perl-CPAN.noarch 0:1.9800-299.el7_9 perl-ExtUtils-CBuilder.noarch 1:0.28.2.6-299.el7_9 perl-ExtUtils-MakeMaker.noarch 0:6.68-3.el7

作为依赖项安装:

gdbm-devel.x86_64 0:1.10-8.el7 libdb-devel.x86_64 0:5.3.21-25.el7 perl-Digest-SHA.x86_64 1:5.85-4.el7 perl-ExtUtils-Install.noarch 0:1.58-29 el 7_9 l-ExtUtils -清单.noarch 0:1.61-244.el7

Perl-Extutils-parsexs.noarch 1:3.18-3.el7 Perl-CMD.NOARCH 1:0.80-4.el7 Perl-Locale-maketext.noarch 033601.el7 CALE-MAKETEXT-SIMPLE.NOARCH 1:0.21-299.el7 _9 perl-Module-CoreList .noarch 1:2.76.02-299.el7_9

perl-Module-Load.noarch 1:0.24-3.el7 perl-Module-Load-Conditional.noarch 0:0.54-3.el7 perl-Module-Metadata.noarch 0:1.000018-2.el7 perl-Params-Check.noarch 1:0.38-2.el7 perl-Perl-OSType.noarch 0:1.003-3.el7

派珀演唱0:1.5.6-9.el7

systemtap-sdt-devel.x86_64 0:4.0-13.el7

#prefix 指定编译到的目录。 “shared”用于生成动态链接库(即.so库)。

./config –prefix=/usr/local/ssl –shared

完成后输出:

[root@localhost openssl-3.2.2]# ./config –prefix=/usr/local/ssl –shared

为目标linux-x86_64 配置OpenSSL 版本3.2.2

使用特定于操作系统的种子配置

创建configdata.pm

运行configdata.pm

创建Makefile.in

生成文件已创建

创建了include/openssl/configuration.h

****************************************************** * **********************

*** ***

*** OpenSSL 已成功配置***

*** ***

*** 如果您在构建过程中遇到任何问题,请打开***。

*** GitHub 上的问题https://github.com/openssl/openssl/issues ***

*** 在: 中包含以下命令的输出***

*** ***

*** perl configdata.pm –dump ***

*** ***

***(如果您是OpenSSL 新手,请参阅***。

***请先参阅INSTALL.md 文件的“故障排除”部分)***

*** ***

****************************************************** * **********************

#编译并安装SSL。这个安装过程比较长,大约需要10分钟。

make make install (安装需要一些时间。)

# 将路径写入etc/ld.so.conf

echo ‘/usr/local/ssl/lib64’ /etc/ld.so.conf

备份并卸载老版本OpenSSH

#备份SSH配置文件

cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

cp -p /usr/sbin/sshd /usr/sbin/sshd.bak

cp -p /usr/bin/ssh /usr/bin/ssh.bak

cp -p /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak

cp -p /etc/ssh/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub.bak

#停止SSH服务

systemctl 停止sshd

切勿关闭遥控器

#备份ssh文件

cp -r /etc/ssh /etc/ssh.old

#查询并卸载原来的ssh包

rpm -qa grep openssh | rpm -qa grep openssh | rpm -qa grep openssh | rpm -qa grep openssh | rpm

openssh-server-7.4p1-21.el7.x86_64

openssh-7.4p1-21.el7.x86_64

openssh-clients-7.4p1-21.el7.x86_64

#根据查询结果卸载原来的OpenSSH包

删除yum openssh-7.4p1-21.el7.x86_64

#已经消失了,请再检查一下

rpm -qa grep openssh | rpm -qa grep openssh | rpm -qa grep openssh | rpm -qa grep openssh | rpm

卸载后输出:

删除:

openssh.x86_64 0:7.4p1-21.el7

作为依赖项: 删除

anaconda-core.x86_64 0:21.48.22.159-1.el7.centos anaconda-gui.x86_64 0:21.48.22.159-1.el7.centos anaconda-tui.x86_64 0:21.48.22.159-1.el7.centos -代理- all.x86_64 0:4.2 .1-41.el7

栅栏代理-apc.x86_64 0:4.2.1-41.el7 栅栏代理-bladecenter.x86_64 0:4.2.1-41.el7 栅栏代理-brocade.x86_64 0:4.2.1-41.el7 栅栏代理-drac5.x86_64 0: 4.2.1-41.el7

栅栏代理-hpblade.x86_64 0:4.2.1-41.el7 栅栏代理-ilo-moonshot.x86_64 0:4.2.1-41.el7 栅栏代理-ilo-mp.x86_64 0:4.2.1-41.el7 栅栏代理- ilo-ssh.x86_64 0:4.2.1-41.el7

栅栏代理-rsa.x86_64 0:4.2.1-41.el7 栅栏代理-s86_64 0:4.2.1-41.l7 栅栏代理-wti.x86_64 033604.2.1-41.l7 FIRSTBOOT.X 0:19.12-1。艾丽7号

gdm.x86_64 1:3.28.2-23.el7 gnome-classic-session.noarch 0:3.28.1-14.el7 gnome-initial-setup.x86_64 0:3.28.0-2.el7 gnome-keyring.x86_64 0:3.28.2-1 .el7

gnome-keyring-pam.x86_64 0:3.28.2-1.el7 gnome-shell.x86_64 0:3.28.3-30.el7 gnome-shell-扩展-alternate-tab.noarch 0:3.28.1-14.el7 gnome-shell-扩展-应用程序菜单.noarch 0:3.28.1-14.el7

gnome-shell-extension-common.noarch 0:3.28.1-14.el7 gnome-shell-extension-horizontal-workspaces.noarch 0:3.28.1-14.el7 gnome-shell-extension-launch-new-instance.noarch 0:3.28.1 -14.el7 gnome-shell-extension-places-menu.noarch 0:3.28.1-14.el7

gnome-shell-extension-top-icons.noarch 0:3.28.1-14.el7 gnome-shell-extension-user-theme.noarch 0:3.28.1-14.el7 gnome-shell-extension-window-list.noarch 0:3.28.1 -14.el7 gnome-tweak-tool.noarch 0:3.28.1-7.el7

初始设置.x86_64 0:0.3.9.45-1.el7.centos 初始设置-gui.x86_64 0:0.3.9.45-1.el7.centos openssh-clients.x86_64 0:7.4p1-21.el7 openssh-server.x86_64 0:7.4 p 1-21 。埃尔7

脉冲音频-gdm-hooks.x86_64 0:10.0-5.el7 python-meh.noarch 0:0.25.3-1.el7 python-meh-gui.noarch 0:0.25.3-1.el7

完成!

[root@localhost src]# rpm -qa grep openssh | rpm

[root@localhost 源]#

升级OpenSSH

cd /usr/local/src/

wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz

减压

tar zxvf openssh-9.8p1.tar.gz

cd openssh-9.8p1

#编译安装openssh并指定zlib和ssl路径

./configure –prefix=/usr/local/openssh –with-zlib=/usr/local/zlib –with-ssl-dir=/usr/local/ssl

完成后输出:

OpenSSH 由以下选项组成:

用户二进制文件: /usr/local/openssh/bin

系统二进制文件: /usr/local/openssh/sbin

配置文件: /usr/local/openssh/etc

Askpass 程序: /usr/local/openssh/libexec/ssh-askpass

手册页: /usr/local/openssh/share/man/manX

PID 文件: /var/run

权限分离chroot path: /var/empty

sshd 默认用户PATH: /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/openssh/bin

联机帮助页格式: 文档

PAM 支持: 否

OSF SIA 支持: 否

KerberosV 支持: 否

SELinux 支持: 否

libedit support: 否

libldns 支持: 否

Solaris 进程合同支持: 否

Solaris 项目支持: 否

Solaris 权限支持: 否

$DISPLAY IP 地址hack: 否

将v4 转换为v6 hack: 是

BSD 身份验证支持: 否

随机数source: OpenSSL 仅限内部

Privsep 沙箱style: seccomp_filter

PKCS#11 支持: 是

U2F/FIDO 支持: 是

Host: x86_64-pc-linux-gnu

编译器: cc -std=gnu11

编译器标志: -g -O2 -pipe -Wall -Wextra -Wpointer-arith -Wuninitialized -Wsign-compare -Wformat-security -Wsizeof-pointer-memaccess -Wno-pointer-sign -Wno-unused-parameter -Wno-unused-结果-fno-strict-aliasing -D_FORTIFY_SOURCE=2 -ftrapv -fno-builtin-memset -fstack-protector-strong -fPIE

预处理器标志: -I/usr/local/ssl/include -I/usr/local/zlib/include -D_XOPEN_SOURCE=600 -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_GNU_SOURCE -DOPENSSL_API_COMPAT=0x10100000L

链接器标志: -L/usr/local/ssl/lib64 -L/usr/local/zlib/lib -Wl,-z,relro -Wl,-z,now -Wl,-z,noexecstack -fstack-protector-strong -馅饼

库: -ldl -lutil -lresolv

+: 通道-lcrypto -lz

+sshd: -lcrypt

进行安装

#ssh允许root登录并需要密码进行验证

echo ‘PermitRootLogin 是’ /usr/local/openssh/etc/sshd_config

echo ‘PubkeyAuthentication yes’ /usr/local/openssh/etc/sshd_config

echo ‘密码验证是’ /usr/local/openssh/etc/sshd_config

#将新编译安装的配置文件复制到原来的路径

cp /usr/local/openssh/etc/sshd_config /etc/ssh/sshd_config

cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd

cp /usr/local/openssh/bin/ssh /usr/bin/ssh

cp /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen

cp /usr/local/openssh/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub

#复制启动脚本

cp -p contrib/redhat/sshd.init /etc/init.d/sshd

#给sshd添加可执行权限

chmod +x /etc/init.d/sshd

#设置开机自动启动

使用systemctl 启用sshd

#重启sshd服务

重新启动systemctl sshd

#显示SSHD服务状态

systemctl 状态sshd

查看#ssh版本是否升级成功,可以看到已经是9.5版本了。

ssh-V

OpenSSH_9.8p1、OpenSSL 3.2.2 2024 年6 月4 日

至此,OpenSSH升级完成。任何进一步的建议将不胜感激。

#以上手动将OpenSSH从7.4升级到9.8的过程信息是从网上获取的,仅供参考。相关信息请参见官方公告。

原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/92850.html

(0)
CSDN的头像CSDN
上一篇 2024年7月4日
下一篇 2024年7月4日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注