openssh版本升级实战(修补ssh漏洞麒麟)

openssh版本升级实战(修补ssh漏洞)


前言

近日,国家信息安全漏洞库(CNNVD)收到关于OpenSSL 安全漏洞(CNNVD-202207-242、CVE-2022-2274)情况的报送。成功利用此漏洞的攻击者,可造成目标机器内存损坏,进而在目标机器远程执行代码。OpenSSL 3.0.4版本受漏洞影响。目前,OpenSSL官方已发布新版本修复了漏洞,请用户及时确认是否受到漏洞影响,尽快采取修补措施。
一、漏洞介绍
OpenSSL是OpenSSL团队开发的一个开源的能够实现安全套接层(SSLv2/v3)和安全传输层(TLSv1)协议的通用加密库。该产品支持多种加密算法,包括对称密码、哈希算法、安全散列算法等。该漏洞源于计算机上具有2048位私钥的 RSA 实现不正确,并且在计算过程中会发生内存损坏,导致攻击者可能会在执行计算的机器上远程执行代码。
二、危害影响
成功利用此漏洞的攻击者,可造成目标机器内存损坏,进而在目标机器远程执行代码。OpenSSL1.0.2、OpenSSL1.1.1、OpenSSL 3.0版本受漏洞影响。
三、修复建议
目前,OpenSSL官方已发布新版本修复了漏洞,请用户及时确认是否受到漏洞影响,尽快采取修补措施。官方链接如下:
https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=4d8a88c134df634ba610ff8db1eb8478ac5fd345

一、下载openssl和openssh

https://www.openssl.org/source/
https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/

二、openssl升级步骤

1.查看当前的openssl和openssh的版本

[root@openvpn ~]# ssh -V
OpenSSH_8.2p1, OpenSSL 1.1.1f  31 Mar 2020

2.编译安装(需要gcc环境)

[root@openvpn ~]# yum install -y telnet gcc zlib-devel
tar -xzvf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w
mkdir -p /usr/openssh/openssl1.1.1w
./config --prefix=/usr/openssh/openssl1.1.1w
make
make install
ll /usr/openssh/openssl1.1.1w

修改配置文件

export LD_LIBRARY_PATH=/usr/openssh/openssl1.1.1w/lib:$LD_LIBRARY_PATH
export PATH=/usr/openssh/openssh9.8p1/bin:/usr/openssh/openssh9.8p1/sbin:/usr/openssh/openssl1.1.1w/bin:$PATH

生效
source /etc/profile
查看版本
openssl version

三、编译升级openssh-9.8sp1

个人机器已经是最新的版本

[root@openvpn openssh-9.1p1]# yum install pam-devel libselinux-devel zlib-devel openssl-devel
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
Package pam-devel-1.1.8-23.el7.x86_64 already installed and latest version
Package libselinux-devel-2.5-15.el7.x86_64 already installed and latest version
Package zlib-devel-1.2.7-20.el7_9.x86_64 already installed and latest version
Package 1:openssl-devel-1.0.2k-25.el7_9.x86_64 already installed and latest version
Nothing to do
tar -xzvf openssh-9.8p1.tar.gz
cd openssh-9.8p1
mkdir -p /usr/openssh/openssh9.8p1
./configure --prefix=/usr/openssh/openssh9.8p1 --with-ssl-dir=/usr/openssh/openssl1.1.1w
make
make install

修改配置文件

vim /usr/openssh/openssh9.8p1/etc/sshd_config
PermitRootLogin yes

创建sshd服务自启动文件

vim /usr/lib/systemd/system/sshd9.service
[Unit]
Description=OpenSSH server daemon
After=network.target

[Service]
Type=simple
Environment=LD_LIBRARY_PATH=/usr/openssh/openssl1.1.1w/lib
ExecStart=/usr/openssh/openssh9.8p1/sbin/sshd -D -f /usr/openssh/openssh9.8p1/etc/sshd_config
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

停用原sshd服务,并备份相关文件

systemctl stop sshd.service

备份文件

mkdir /data/bakfile/ssh-old-bak
mv /etc/ssh /data/bakfile/ssh-old-bak/
mv /usr/sbin/sshd /data/bakfile/ssh-old-bak/
mv /usr/lib/systemd/system/sshd-keygen.service /data/bakfile/ssh-old-bak/
mv /usr/lib/systemd/system/sshd.service /data/bakfile/ssh-old-bak/
mv /usr/lib/systemd/system/sshd@.service /data/bakfile/ssh-old-bak/
mv /usr/lib/systemd/system/sshd.socket /data/bakfile/ssh-old-bak/

启动新的sshd服务

systemctl daemon-reload
systemctl start sshd9.service
systemctl status sshd9.service
systemctl enable sshd9.service

四、关于openssh和openssl简单介绍

OpenSSL
OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
Apache使用它加密HTTPS,OpenSSH使用它加密SSH,但是,你不应该只将其作为一个库来使用,它还是一个多用途的、跨平台的密码工具。
OpenSSL整个软件包大概可以分成三个主要的功能部分:密码算法库、SSL协议库以及应用程序。OpenSSL的目录结构自然也是围绕这三个功能部分进行规划的,也可以建立私有CA证书等。
OpenSSL和OpenSSH的区别
SSL是通讯链路的附加层。可以包含很多协议。https, ftps
SSH只是加密的shell,最初是用来替代telnet的。通过port forward,也可以让其他协议通过ssh的隧道而起到加密的效果。
OpenSSL------一个C语言函数库,是对SSL协议的实现。
OpenSSH-----是对SSH协议的实现。
SSH 利用 OpenSSL 提供的库。OpenSSH依赖于OpenSSL ,没有OpenSSL 的话OpenSSH 就编译不过去,也运行不了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值