Ubuntu 有 Exec Shield 缓冲区溢出保护吗?
我尝试使用以下命令在 Ubuntu 12.04 上启用 Exec Shield
sudo sysctl -w kernel.exec-shield=1
但它说
error: "kernel.exec-shield" is an unknown key
如果没有,那么 Ubuntu 的等效解决方案是什么以及如何安装和启用它?
答案1
Ubuntu 默认启用 NX 保护。当 CPU 支持时,它要么使用硬件 NX,要么在内核中使用 NX 模拟(相当于 Red Hat Exec Shield 补丁)。
如需了解更多信息,请访问: https://wiki.ubuntu.com/Security/Features
答案2
打开你的 /etc/sysctl.conf 文件:
# sudo gedit /etc/sysctl.conf
#### Add the following lines:
###enable ExecShield protection
kernel.exec-shield = 1
###enable random placement of virtual memory regions protection
kernel.randomize_va_space = 1
保存并关闭文件。
要加载 sysctl 而不重新启动,请输入以下命令::
sysctl -p