1. 說明
正在使用的阿里雲服務器報了幾個內核漏銅,使用自帶【一鍵修復】需要額外的支付費用,所以嘗試采用升級系統內核的方式來修復漏洞。
1.1 服務器參數
操作系統:CentOS 7.4 64位
當前內核版本:Linux 3.10.0
1.2 ELRepo
ELRepo是一個為Linux提供驅動程序和內核映像的存儲庫。
這里的升級方案就是采用ELRepo提供的內核通道。
ELRepo官網:http://elrepo.org/tiki/tiki-index.php
2. 升級內核
2.1 當前內核版本
說明:可以看到當前服務器的內核版本為3.10.0,Linux提供的內核信息可以訪問此網站:https://www.kernel.org/
$ uname -mrs Linux 3.10.0-693.2.2.el7.x86_64 x86_64
2.2 導入ELRepo公鑰
$ rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
2.3 安裝ELRepo
說明:因當前服務器的操作系統為CentOS7.4,所以采用此安裝包。其他操作系統版本安裝方式可去ELRepo官網查看。
$ yum install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm
2.4 查看ELRepo提供的內核版本
$ yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
顯示:
kernel-lt:表示longterm,即長期支持的內核;當前為4.4.*。
kernel-ml:表示mainline,即當前主線的內核;當前為5.2.*
2.5 安裝kernel-lt內核
$ yum --disablerepo='*' --enablerepo=elrepo-kernel install kernel-lt
2.6 查看啟動器
$ awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg 0 : CentOS Linux (4.4.186-1.el7.elrepo.x86_64) 7 (Core) 1 : CentOS Linux (3.10.0-957.27.2.el7.x86_64) 7 (Core) 2 : CentOS Linux (3.10.0-957.21.3.el7.x86_64) 7 (Core)
2.7 設置默認啟動為新內核
$ grub2-set-default 0
2.8 重啟
說明:重啟后發現內核版本已變更為 4.4.186。
$ reboot $ uname -mrs Linux 4.4.186-1.el7.elrepo.x86_64 x86_64
3. 修復ecs漏洞
說明:除了升級內核外,還可以通過更新rpm軟件包的形式來修復漏洞。
3.1 檢查可更新的rpm包
$ yum check-update
3.2 更新所有的rpm包
$ yum update
說明:更新所有rpm包是一種粗狂的解決方案,實際中可指定rmp包進行單獨更新。