#教程# Linux TCP “SACK PANIC” 远程拒绝服务漏洞及修复

前言

昨日接到腾讯云、阿里云短信通知,Linux 内核被曝存在 TCP “SACK PANIC远程拒绝服务漏洞(漏洞编号:CVE-2019-11477,CVE-2019-11478,CVE-2019-11479),攻击者可利用该漏洞远程攻击目标服务器,导致系统崩溃或无法提供服务。很多云服务商家都发布了这一信息,并提供了修复的方法,建议大家及时更新。

图片[1] - #教程# Linux TCP “SACK PANIC” 远程拒绝服务漏洞及修复 - 云线路

具体情况

【漏洞详情】 :由 Netflix 信息安全团队研究员 Jonathan Looney 发现 Linux 以及 FreeBSD 等系统内核上存在严重远程 DoS 漏洞,攻击者可利用该漏洞构造并发送特定的 SACK 序列请求到目标服务器导致服务器崩溃或拒绝服务;

【风险等级】 : 较高;

【漏洞风险】 : 远程发送特殊构造的攻击包,导致目标 Linux 或 FreeBSD 服务器崩溃或服务不可用;

【影响版本】

目前已知受影响版本如下:

FreeBSD 12(使用到 RACK TCP 协议栈)

CentOS 5(Redhat 官方已停止支持,不再提供补丁)

CentOS 6

CentOS 7

Ubuntu 18.04 LTS

Ubuntu 16.04 LTS

Ubuntu 19.04

Ubuntu 18.10

BBR/锐速受到影响:

锐速通常降低内核到 3.x (受影响)

BBR Plus 通常降低到 4.x (受影响)

其它 BBR 魔改版本通常降低到 4.X (受影响)

腾讯 TCPA 通常降低到 4.X (受影响)

修复方法

CentOS 6/7 系列

查看系统版本

cat /etc/redhat-release

输出如下(release 数值大于 7.4 即可)

CentOS Linux release 7.6.1810 (Core)

导入 elrepo 软件源的 GPG 公钥

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

更新下配置重启

reboot

导入 elrepo 软件源(该地址可以自动下载该源的最新的软件列表,无需修改地址)

rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

下载并安装新的内核,启用软件源并下载安装最新稳定版内核

yum -y --enablerepo=elrepo-kernel install kernel-ml

设定 Grub 默认启动新内核,查看所有的 entry:

[root@yunloc ~]# awk -F \' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux 7 Rescue be01194033634997b76c097ab3d668ed (4.20.0-1.el7.elrepo.x86_64)
1 : CentOS Linux (4.20.0-1.el7.elrepo.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-693.11.6.el7.x86_64) 7 (Core)
3 : CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
4 : CentOS Linux (0-rescue-00a62363617944e08db8db894ba6145e) 7 (Core)

查看当前 default 的 entry

[root@yunloc ~]# grub2-editenv list
saved_entry=CentOS Linux (3.10.0-693.11.6.el7.x86_64) 7 (Core)

修改为指定的 entry,指定最新内核,然后查看指定内核

[root@yunloc ~]# grub2-set-default 1
[root@yunloc ~]# grub2-editenv list
saved_entry=1

使用新的内核重启

reboot

检查设置,删除旧的内核,查看当前系统的内核版本号

uname -r

如果输出是 4.10 以上的版本,说明安装成功。

4.20.0-1.el7.elrepo.x86_64

删除旧内核(删除旧内核的目的是为了防止 yum 更新旧版内核之后覆盖了 grub 默认启动项)

yum -y remove kernel kernel-tools

如果名称不匹配就是商家修改过内核名称,先查询一下系统已安装的内核

rpm -qa | grep kernel

然后再删除旧内核

yum remove -y 旧内核的名

Ubuntu 16.04/18.04 LTS 系列

进行软件源更新并安装最新内核版本

sudo apt-get update && sudo apt-get install linux-image-generic

更新后重启系统生效

sudo reboot

检查当前版本是否为下面所提供安全版本,如果是,则说明修复成功

name -a
© 本站文章随意转载,但请注明出处!
THE END
点赞9 分享
评论 共2条
头像
务必使用真实的邮箱地址评论,虚假邮箱的评论将不通过审核及无回复。
提交
头像

昵称

取消
昵称表情代码图片
    • 头像心灵博客0