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