0°

OpenSSH-8.7p1离线升级修复安全漏洞

1、OpenSSH简介
OpenSSH是SSH(Secure Shell)协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控制和文件传输过程中的数据,并由此来代替原来的类似服务。
OpenSSH是使用SSH透过计算机网络加密通讯的实现。它是取代由SSH Communications Security所提供的商用版本的开放源代码方案。目前OpenSSH是OpenBSD的子计划。
OpenSSH常常被误认以为与OpenSSL有关联,但实际上这两个计划的有不同的目的,不同的发展团队,名称相近只是因为两者有同样的软件发展目标──提供开放源代码的加密通讯软件。

2、OpenSSH安全漏洞
CVE-2021-28041漏洞描述:
OpenSSH(OpenBSD Secure Shell)是Openbsd计划组的一套用于安全访问远程计算机的连接工具。该工具是SSH协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连接劫持以及其他网络级的攻击。OpenSSH before 8.5 存在安全漏洞,攻击者可利用该漏洞在遗留操作系统上不受约束的代理套接字访问。

CVE-2020-15778漏洞描述:
OpenSSH 8.3p1及之前版本中的scp的scp.c文件存在命令注入漏洞。该漏洞源于外部输入数据构造可执行命令过程中,网络系统或产品未正确过滤其中的特殊元素。攻击者可利用该漏洞执行非法命令。

3、升级OpenSSH操作步骤
3.1准备OpenSSH升级包
Centos6系统

1
2
3
wget http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-8.7p1-1.el6.x86_64.rpm
wget http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-clients-8.7p1-1.el6.x86_64.rpm
wget http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-server-8.7p1-1.el6.x86_64.rpm

Centos7系统

1
2
3
wget http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-8.7p1-1.el7.centos.x86_64.rpm
wget http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-clients-8.7p1-1.el7.centos.x86_64.rpm
wget http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-server-8.7p1-1.el7.centos.x86_64.rpm

Centos8系统

1
2
3
wget http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-8.7p1-1.el8.x86_64.rpm
wget http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-clients-8.7p1-1.el8.x86_64.rpm
wget http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-server-8.7p1-1.el8.x86_64.rpm

3.2准备升级脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/bin/bash

NowTime=$(/bin/date +%Y%m%d%H%M%S)

if [[ "$(whoami)" != "root" ]]; then
echo "please run this script as root !" >&2
exit 1
fi

if [[ ! -f /usr/bin/cp ]]; then
echo "/usr/bin/cp file exists" >&2
exit 1
fi
if [[ ! -d "/opt/backup/openssh_bak" ]];then
mkdir -p /opt/backup/openssh_bak/
/usr/bin/cp /etc/pam.d/sshd /opt/backup/openssh_bak/sshd.bak
/usr/bin/cp /etc/pam.d/system-auth /opt/backup/openssh_bak/system-auth.bak
/usr/bin/cp /etc/ssh/sshd_config /opt/backup/openssh_bak/
/usr/bin/cp /etc/ssh/ssh_config /opt/backup/openssh_bak/
/usr/bin/cp /etc/ssh/ssh*key /opt/backup/openssh_bak/
else
mkdir -p "/opt/backup/openssh_$NowTime/"
/usr/bin/cp /etc/pam.d/sshd "/opt/backup/openssh_$NowTime/sshd.bak"
/usr/bin/cp /etc/pam.d/system-auth "/opt/backup/openssh_$NowTime/system-auth.bak"
/usr/bin/cp /etc/ssh/sshd_config "/opt/backup/openssh_$NowTime/"
/usr/bin/cp /etc/ssh/ssh_config "/opt/backup/openssh_$NowTime/"
/usr/bin/cp /etc/ssh/ssh*key "/opt/backup/openssh_$NowTime/"
fi

rpm -Uvh openssh-*.rpm
chmod 600 /etc/ssh/ssh_host_*_key
/usr/bin/cp /opt/backup/openssh_bak/sshd.bak /etc/pam.d/sshd
echo -e '
Port 22
AddressFamily inet
ListenAddress 0.0.0.0
Protocol 2
SyslogFacility AUTHPRIV
PermitRootLogin yes
MaxAuthTries 6
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication yes
PermitEmptyPasswords no
UsePAM yes
UseDNS no
X11Forwarding yes
Subsystem sftp /usr/libexec/openssh/sftp-server
'
> /etc/ssh/sshd_config

systemctl enable sshd
systemctl restart sshd

ssh -V

3.3查看版本(Centos8系统为例)

1
2
[root@aqzt-com ~]# ssh -V
OpenSSH_8.0p1, OpenSSL 1.1.1g FIPS 21 Apr 2020

3.4下载升级包(可以上crpm.cn搜索rpm包)

1
2
3
[root@aqzt-com ~]# wget http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-8.7p1-1.el8.x86_64.rpm
[root@aqzt-com ~]# wget http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-clients-8.7p1-1.el8.x86_64.rpm
[root@aqzt-com ~]# wget http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-server-8.7p1-1.el8.x86_64.rpm

3.5下载openssh升级脚本

1
[root@aqzt-com ~]# wget http://mirrors.crpm.cn/openssh/x86_64/Packages/update-ssh.sh

3.6开始升级OpenSSH

1
[root@aqzt-com ~]# bash update-ssh.sh

3.7升级结束

1
2
[root@aqzt-com ~]# ssh -V
OpenSSH_8.7p1, OpenSSL 1.1.1c FIPS 28 May 2019
「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!