Linux禁用或者启用ExecShield缓冲区溢出保护

时间:2020-01-09 10:44:11  来源:igfitidea点击:

现在我已经在IBM服务器上安装了Cent OS(RHEL克隆),如何知道什么是ExecShield,以及如何禁用它?

ExecShield是安全性Linux内核补丁,可避免蠕虫和其他问题。

Wikipedia具有有关Exec Shield项目的更多信息:

Exec Shield是一个项目,该项目于2002年底在Red Hat,Inc.上启动,旨在降低Linux系统上蠕虫或者其他自动远程攻击的风险。
该项目的第一个结果是Linux内核的安全补丁,该补丁向x86 CPU添加了NX位。
尽管Exec Shield项目还有许多其他组件,但有人将第一个补丁称为Exec Shield。

禁用ExecShield保护

以超级用户身份执行以下命令:

# sysctl -w kernel.exec-shield=0

通过在/etc/sysctl.conf文件中添加以下行,可以在每次重新启动后在系统范围内永久禁用它:

# vi /etc/sysctl.conf

追加以下行

kernel.exec-shield=0

保存并关闭文件。
请注意,我不建议禁用ExecShild保护。

您还可以通过在GRUB引导加载程序的内核命令行中追加以下参数来禁用保护:

# vi /etc/grub.conf

修改/追加exec-shield = 0参数,如下所示:

kernel /vmlinuz-2.6.8 ro root=LABEL=/ exec-shield=0

关闭并保存文件。

启用ExecShield保护以防止缓冲区溢出

打开/etc/sysctl.conf文件:

# vi /etc/sysctl.conf

添加以下行:

kernel.exec-shield = 1
kernel.randomize_va_space = 1

保存并关闭文件。
第一行将启用ExecShield保护,第二行将启用虚拟内存区域保护的随机放置。
要加载sysctl设置,请执行:

# sysctl -p