本文主要通过升级解决以下漏洞:
漏洞级别 | 漏洞名称 |
高危 | OpenSSH 安全漏洞(CVE-2021-41617) |
高危 | OpenSSH 操作系统命令注入漏洞(CVE-2020-15778) |
中危 | OpenSSH 安全漏洞(CVE-2016-20012) |
中危 | OpenSSH 竞争条件问题漏洞(CVE-2018-15473) |
中危 | OpenSSH 信息泄露漏洞(CVE-2018-15919) |
中危 | OpenSSH 访问控制错误漏洞(CVE-2019-6110) |
中危 | OpenSSH 信息泄露漏洞(CVE-2020-14145) |
中危 | OpenSSH 路径遍历漏洞(CVE-2019-6111) |
中危 | OpenSSH 安全漏洞(CVE-2017-15906) |
中危 | OpenSSH 访问控制错误漏洞(CVE-2018-20685) |
中危 | OpenSSH 访问控制错误漏洞(CVE-2019-6109) |
低危 | OpenSSH CBC模式信息泄露漏洞(CVE-2008-5161)【原理扫描】 |
低危 | OpenSSH 授权问题漏洞(CVE-2021-36368) |
高危漏洞:Diffie-Hellman Key Agreement Protocol资源管理错误漏洞(CVE-2002-20001)漏洞修复,修改简单,只需要修改或添加配置文件/etc/ssh/sshd_config,修改内容如下,重启服务即可。
kexalgorithms curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521
一、准备工作
1、下载openssl(我下载的是OpenSSL 1.1.1w)
https://openssl-library.org/source/old/index.html
2、下载openssh(我下载的是OpenSSH_9.5p1)
https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/
3、查看原来的版本,有一个对比
sshd -V
4、先准备好gcc、zlib、openssl的环境
yum -y install gcc pam-devel zlib-devel openssl-devel
5、对原来的openssh相关的文件进行备份
cp -r -a /etc/ssh/ /etc/ssh.bak
cp -r -a /etc/pam.d/ /etc/pam.d.bak
mv /usr/sbin/sshd /usr/sbin/sshd.bak
mv /usr/bin/ssh /usr/bin/ssh.bak
mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak
二、上传、解压文件、编译及安装OpenSSL
1、检查OpenSSL版本,安装openssh9.5p1需要OpenSSL版本 >= 1.1.1,若小于则进行2-4步骤,否则可以跳过
openssl version
2、将openssl文件上传并解压,打开所在目录
tar -zxvf openssl-1.1.1d.tar.gz
cd openssl-1.1.1w
3、编译
./config --prefix=/usr/local/openssl -d shared
4、安装
make && make install
三、上传、解压文件、编译及安装OpenSSH
1、将openssh文件上传并解压
cd /mnt/dataDisk/software
tar -zxvf openssh-9.5p1.tar.gz
2、卸载原系统的openssh包
(1)rpm方式卸载命令
rpm -e --nodeps `rpm -qa | grep openssh`
(2)yum方式卸载
yum remove openssh
3、切换到解压后的openssh目录
cd /mnt/dataDisk/software/openssh-9.5p1
4、编译(编译的同时指定刚刚安装的openssl目录)
./configure --prefix=/usr/local/openssh9p5 --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/usr/local/openssl --with-zlib
5、安装
make && make install
四、文件配置
1、配置文件备份
cp /usr/local/openssh9p5/etc/sshd_config /etc/ssh/sshd_config
cp /usr/local/openssh9p5/sbin/sshd /usr/sbin/sshd
cp /usr/local/openssh9p5/bin/ssh /usr/bin/ssh
cp /usr/local/openssh9p5/bin/ssh-keygen /usr/bin/ssh-keygen
cp -p contrib/redhat/sshd.init /etc/init.d/sshd
2、文件授权
chmod +x /etc/init.d/sshd
3、配置文件更改(根据需要)
vi /etc/ssh/sshd_config
修改以下内容:
PermitRootLogin yes
PubkeyAuthentication yes
PasswordAuthentication yes
4、设置开机启动
systemctl enable sshd
5、开启服务
systemctl restart sshd
6、验证版本
sshd -V
同样的步骤,保证openssl版本在1.1.1及以上前提下,也尝试了最新版本9.9p1,也是可以的