本次教程适用于:Linux(CentOS、Debian),macOS请勿使用。
本文章部分参考:https://cloud.tencent.com/developer/article/1745705
![图片[1]-Linux升级OpenSSH和OpenSSL,解决XMSS Key 解析整数溢出漏洞、OpenSSL 拒绝服务漏洞-栗子博客](https://www.lizi.tw/wp-content/uploads/2021/10/u198vgxq9f.png)
OpenSSH和OpenSSL
🔧OpenSSL
OpenSSL其实是一个开源的C函数库,多用于加密依赖,很多程序的编译,需要OpenSSL作为依赖包。
🖥OpenSSH
OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现,类似于OpenJDK和OracleJDK的区别。需要用到OpenSSL的函数库,所以在更新OpenSSH前,最好先更新OpenSSL。
SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。相对于传统方式,OpenSSH提供了服务端后台程序和客户端工具,并且加密远程控制和文件传输过程中的数据。
简单地说,日常使用OpenSSH:远程控制服务器端,如:远程登录访问Linux的Terminal。且过程中加密传输。
OpenSSL 拒绝服务漏洞
拒绝服务漏洞,代号为:CVE-2021-3449:
- 主要是一些操作,可能会让OpenSSL TLS 强行停止。【我感觉这个漏洞不是很严重啦,但是大家都觉得很严重……那还是有必要修复一下╮( ̄▽ ̄””)╭】
![图片[2]-Linux升级OpenSSH和OpenSSL,解决XMSS Key 解析整数溢出漏洞、OpenSSL 拒绝服务漏洞-栗子博客](https://www.lizi.tw/wp-content/uploads/2021/10/8zpog9ffwx.png)
解决方法很简单:升级OpenSSL版本。
XMSS Key 解析整数溢出漏洞
XMSS Key漏洞,代号为:CVE-2019-16905:
- 主要是非法用户,可以通过此漏洞,跳过OpenSSH的认证,远程登录到你服务器【不过计算难度挺高的,而且条件苛刻……】。
但是,总归是重大漏洞,需要修复:
![图片[3]-Linux升级OpenSSH和OpenSSL,解决XMSS Key 解析整数溢出漏洞、OpenSSL 拒绝服务漏洞-栗子博客](https://www.lizi.tw/wp-content/uploads/2021/10/94ua7vyge0.png)
解决方法很简单:升级OpenSSH版本。
🚀升级OpenSSL
升级的方法很简单:
- 下载新版本OpenSSL源码
- 备份旧版本OpenSSL
- 编译安装新版本OpenSSL
下载新版本OpenSSL源码
这边推荐下载地址:https://ftp.openssl.org/source
![图片[4]-Linux升级OpenSSH和OpenSSL,解决XMSS Key 解析整数溢出漏洞、OpenSSL 拒绝服务漏洞-栗子博客](https://www.lizi.tw/wp-content/uploads/2021/10/z4yzexodee.png)
比如,我这边下载openssl-1.1.1k.tar.gz
。到Linux控制台内,使用wget
下载即可(你也可以使用宝塔等软件下载,但是记得权限问题):
wget 'https://ftp.openssl.org/source/openssl-1.1.1k.tar.gz'
![图片[5]-Linux升级OpenSSH和OpenSSL,解决XMSS Key 解析整数溢出漏洞、OpenSSL 拒绝服务漏洞-栗子博客](https://www.lizi.tw/wp-content/uploads/2021/10/92yo9firnj.png)
![图片[6]-Linux升级OpenSSH和OpenSSL,解决XMSS Key 解析整数溢出漏洞、OpenSSL 拒绝服务漏洞-栗子博客](https://www.lizi.tw/wp-content/uploads/2021/10/gvnrre1laf.png)
之后,我们解压这个tar.gz
文件夹,并进入:
# 使用tar工具包解压 tar -xf openssl-1.1.1k.tar.gz # 进入文件夹 cd openssl-1.1.1k
![图片[7]-Linux升级OpenSSH和OpenSSL,解决XMSS Key 解析整数溢出漏洞、OpenSSL 拒绝服务漏洞-栗子博客](https://www.lizi.tw/wp-content/uploads/2021/10/t9wwzkyysg.png)
备份旧版本OpenSSL
为了避免编译过程中,出现意外(如:远程SSH突然断连,导致编译失败);我们提前备份旧版本OpenSSL,给回滚“留条路”(如果你之前都没有安装OpenSSL,这步可以跳过):
# 备份OpenSSL到用户目录,并重命名为openBak mv openssl ~/openBak
编译安装新版本OpenSSL
刚刚我们已经在新的OpenSSL目录,所以我们可以直接开始编译。首先,设置配置。我们使用默认的即可:
./config
![图片[8]-Linux升级OpenSSH和OpenSSL,解决XMSS Key 解析整数溢出漏洞、OpenSSL 拒绝服务漏洞-栗子博客](https://www.lizi.tw/wp-content/uploads/2021/10/oqdqive1ud.png)
之后,进行make编译操作:
make
最后,进行make install安装操作:
make install
![图片[9]-Linux升级OpenSSH和OpenSSL,解决XMSS Key 解析整数溢出漏洞、OpenSSL 拒绝服务漏洞-栗子博客](https://www.lizi.tw/wp-content/uploads/2021/10/z2crucuz79.png)
![图片[10]-Linux升级OpenSSH和OpenSSL,解决XMSS Key 解析整数溢出漏洞、OpenSSL 拒绝服务漏洞-栗子博客](https://www.lizi.tw/wp-content/uploads/2021/10/n3mipwdsov.png)
操作完成后/usr/bin
下重新有openssl
文件。我们只需要重新建立软连接即可:
ln -s /usr/local/bin/openssl /usr/bin/openssl
![图片[11]-Linux升级OpenSSH和OpenSSL,解决XMSS Key 解析整数溢出漏洞、OpenSSL 拒绝服务漏洞-栗子博客](https://www.lizi.tw/wp-content/uploads/2021/10/hl4gzufsrj.png)
到此,OpenSSL升级完成。重新腾讯云安全检测:
![图片[12]-Linux升级OpenSSH和OpenSSL,解决XMSS Key 解析整数溢出漏洞、OpenSSL 拒绝服务漏洞-栗子博客](https://www.lizi.tw/wp-content/uploads/2021/10/jy24i8c0ww.png)
升级OpenSSH
OpenSSH的升级的方法也很简单:
- 下载新版本OpenSSH源码
- 备份(移除)旧版本OpenSSH
- 编译安装新版本OpenSSH
- 重启OpenSSH进程服务(重要‼️)
下载新版本OpenSSH源码
同样,这边推荐下载地址:http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/
和OpenSSL的下载方法一样,不再赘述:
![图片[13]-Linux升级OpenSSH和OpenSSL,解决XMSS Key 解析整数溢出漏洞、OpenSSL 拒绝服务漏洞-栗子博客](https://www.lizi.tw/wp-content/uploads/2021/10/p5t3ojwywy.png)
之后,我们解压tar.gz
文件后,进入该目录以备后续编译:
![图片[14]-Linux升级OpenSSH和OpenSSL,解决XMSS Key 解析整数溢出漏洞、OpenSSL 拒绝服务漏洞-栗子博客](https://www.lizi.tw/wp-content/uploads/2021/10/4z6zsvsqgl.png)
备份(移除)旧版本OpenSSH
我们要移除旧版本的OpenSSH配置:
# 备份旧文件 cp /etc/ssh ~/sshBak # 删除旧文件 rm -rf /etc/ssh/*
编译安装新版本OpenSSH
刚刚我们已经在新的OpenSSH目录,所以我们可以直接开始编译。首先,设置配置。我们使用默认的即可:
./configure
之后,进行make
编译操作:
make
最后,进行make install
安装操作:
make install
![图片[15]-Linux升级OpenSSH和OpenSSL,解决XMSS Key 解析整数溢出漏洞、OpenSSL 拒绝服务漏洞-栗子博客](https://www.lizi.tw/wp-content/uploads/2021/10/h1df6j7wx8.png)
![图片[16]-Linux升级OpenSSH和OpenSSL,解决XMSS Key 解析整数溢出漏洞、OpenSSL 拒绝服务漏洞-栗子博客](https://www.lizi.tw/wp-content/uploads/2021/10/h7ne55s3hx.png)
这个时候,其实OpenSSH已经更新完成,但是这个时候重启SSH,你可能就无法登录了嗷。
重启OpenSSH进程服务(重要‼️)
这个时候,我们扫描SSH进程:
![图片[17]-Linux升级OpenSSH和OpenSSL,解决XMSS Key 解析整数溢出漏洞、OpenSSL 拒绝服务漏洞-栗子博客](https://www.lizi.tw/wp-content/uploads/2021/10/56sa3vm164.png)
因为我没改SSH远程端口,所以我扫描PID
是,是:
lsof -i:22
根据返回的PID
,kill
掉SSH进程:
kill 28259
![图片[18]-Linux升级OpenSSH和OpenSSL,解决XMSS Key 解析整数溢出漏洞、OpenSSL 拒绝服务漏洞-栗子博客](https://www.lizi.tw/wp-content/uploads/2021/10/vxits3l027.png)
之后,SSH会自动断开。重新连接即可。
到处,OpenSSH升级成功,重新腾讯云安全检测:
![图片[19]-Linux升级OpenSSH和OpenSSL,解决XMSS Key 解析整数溢出漏洞、OpenSSL 拒绝服务漏洞-栗子博客](https://www.lizi.tw/wp-content/uploads/2021/10/xt2usiygef.png)