近日准备分析下grsecurity,把过程总结记录下与大家分享、讨论。 SELinux应该很多人都知道,不错,它是Linux的LSM框架下强制访问控制机制中使用较为普遍的一种,由NSA开发。在RHEL、Fedora系统中可以看到它的身影,而apparmor被ubuntu维护并默认使用。基本上这两种强制访问控制机制是当前Linux系统中使用最为广泛的。grsecurity没有使用LSM框架,而是对应kernel upstream的不同主流版本发布不同的patch。部署起来没有系统默认安装的selinux、apparmor那么方便,但存在即有意义。grsecurity发展有13年之久,这么多年为什么一直都没有进入内核,以及它与selinux、apparmor相比有什么差别,此次暂不评述。不可否认的是由于grsecurity实现时超出LSM框架,所以实现了很多其他强制访问控制机制所不能、或很难实现的功能,本系列文章分别描述,如有不周,请大家批评指正。 grsecurity官网上从Memroy Corruption defenses、Filesystem Hardening、Miscellaneous Protections、RBAC、GCC Plugins几个方面描述其特性,之后做详尽描述。
安装
从http://grsecurity.net/download.php可以看到当前稳定版本所对应的内核版本。下载对应的内核版本及grsecurity的patch。本处使用linux-3.2.64内核版本及grsecurity-3.0-3.2.64-201411150025.patch 补丁。``` #tar xf linux-3.2.64.tar.xz #cd linux-3.2.64 #patch -p1 < ../grsecurity-3.0-3.2.64-201411150025.patch #make menuconfig #make DISABLE_PAX_PLUGINS=y -j8 #make DISABLE_PAX_PLUGINS=y -j8 modules #sudo make DISABLE_PAX_PLUGINS=y -j8 modules_install #sudo make DISABLE_PAX_PLUGINS=y -j8 install
1. 由于安装了gcc-<ver>-plugin-dev,还是提示无法找到,因此本次去除该特性;
2. grsecurity的配置在"security options"->"grsecurity"里面,本次可以使用Automatic配置,之后在做调整
3. \-j8指定并行编译的进程数,可使用CPU数的2倍
之后大家还可以下载、编译安装gradm。 重启~~~ Ok,可以开始体验grsecurity了~