前言
昨日接到腾讯云、阿里云短信通知,Linux 内核被曝存在 TCP “SACK PANIC” 远程拒绝服务漏洞(漏洞编号:CVE-2019-11477,CVE-2019-11478,CVE-2019-11479),攻击者可利用该漏洞远程攻击目标服务器,导致系统崩溃或无法提供服务。很多云服务商家都发布了这一信息,并提供了修复的方法,建议大家及时更新。
具体情况
【漏洞详情】 :由 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
>> 所有文章均基于分享的原则,所有言论均个人观点,请注意全部都不是推荐,是分享!分享!分享!