https://blog.csdn.net/youshijifen/article/details/73472434
近期,国家互联网应急中心漏洞(CNCERT)公告中提到Linux kernel4个拒绝服务漏洞,对应CNVD-2017-07509、CNVD-2017-07508、CNVD-2017-07507、CNVD-2017-07386)。综合利用上述漏洞,攻击者可使系统拒绝服务,且在符合一定利用条件下可能导致远程命令执行。设计到的内核版本从3.0到4.99,详细信息可以到国家互联网应急中心官网公告查看,随后官方给出了代码修复,用户重新编译内核到最新即可解决此次漏洞。
www.kernel.org内核官网下载4.12-RC5内核包
接下来我把自己虚拟机3.0内核升级到4.12
wgethttps://git.kernel.org/torvalds/t/linux-4.12-rc5.tar.gz --no-check-certificate
这里使用Xshell通过ssh连接虚拟机。官网是https协议传输,使用wget下载时容易报错,在最后加 --no-check-certificate 参数即可解决。
使用tar –xvf解压到本地
安装系统时选择的是最小安装法,导致还会有一些基本的工具没装,这里使用
yum grouplist去检测程序所有安装包情况
这里使用yum groupinstall Development tools安装开发工具,这是一个包含众多小工具例如:binutils、bison、flex、gcc、gcc-c++、gettext、libtool等等,以避免后面对内核进行编译时出现错误。这是已经安装后的。
yum install hmaccalc zlib-develbinutils-devel elfutils-libelf-devel
来安装其它依赖工具,我这是已经安装过后。如果提示要安装,安装即可。
开始准备编译内核
make mrproper 删除不必要的文件和目录。
把旧版本内核的配置文件复制并命名为.config,这样新编译内核就会使用原来的配置文件
make bzImage 开始编译,一路回车
解决报错:
yum install openssl
yum install openssl-devel
make 编译,需要较长时间
make modules文件编码模块,也需要等待较长一段时间
make modules_install 安装模块
make install
我们知道,centos 6.x是通过/etc/grub.conf就行内核启动顺序修改的,而且比较直观查看。但centos 7的系统和6就不一样了,是通过grub2为引导程序。下边简单说下centos 7的内核启动顺序如何修改。
1,首先查看当前系统有几个内核。比如:
cat /boot/grub2/grub.cfg |grep menuentry
2,设置默认的启动内核,选择CentOS Linux (4.12.0-rc5)7 (Core)这个内核为默认启动。
grub2-set-default "CentOS Linux (3.10.0-327.el7.x86_64)7 (Core)
验证是否修改成功:grub2-editenv list
3,重启机器观察。
重启成功以后查看下机器的内核是不是该内核:
在虚拟机启动的时候出现多个内核引导项,选第一个进入系统
进入系统后查看内核版本,成功升级成4.12