加固带有Grsecurity的Linux内核(Debian)

加固带有Grsecurity的Linux内核(Debian) 安全性基于三个特点:预防,保护 和检测。 Grsecurity ...

加强Linux内核的安全性(Debian)

安全是基于三个特点:预防,保护和检测。 Grsecurity是一个用于Linux内核的修补程序,可以让您增加这些要点。

这个howto是在Debian Lenny系统上执行的。 因此一些工具是Debian的具体的。 但是,可以使用其他发行版专用工具,甚至使用通用工具(make)来执行任务。

一切都将使用root权限完成。 但是,您可以通过sudo和fake-kpkg工具,通过有限的帐户执行它们。

初步说明

要编译内核,您需要安装一些特定的软件包:

rom1:/root# aptitude install patch bin86 kernel-package build-essential

如果您希望以图形控制台模式配置内核(make menuconfig),则必须再安装一个包:

rom1:/root# aptitude install libncurses5-dev

检查是否安装了iniramfs-tools(用于生成init ramdisk)(应该是)

rom1:/usr/src# dpkg -l initramfs*

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name Version Description
+++-==============-==============-============================================
ii initramfs-tool 0.85i tools for generating an initramfs
rom1:/usr/src#

转到源文件夹:

rom1:/root# cd /usr/src

下载安全补丁和

2.6.24.5

Linux香草核:

rom1:/usr/src# wget grsecurity.net/grsecurity-2.1.11-2.6.24.5-200804211829.patch.gz

rom1:/usr/src# wget eu.kernel.org/pub/linux/kernel/v2.6/linux-2.6.24.5.tar.gz

注意:您可能需要配置wget,以防您使用HTTP代理(可能会使用身份验证)。 你需要编辑/root/.wgetrc ,看起来像这样:

http_proxy=192.168.0.1
proxy-user=foo # Put this line if you need to authenticate against your proxy
proxy-passwd=bar # Put this line if you need to authenticate against your proxy

解压缩内核的存档:

rom1:/usr/src# tar xzvf linux-2.6.24.5.tar.gz

在新的内核文件夹上创建一个符号链接以简化以下任务:

rom1:/usr/src# ln -s linux-2.6.24.5 linux

现在,环境已经准备好了。 我们去加强

补丁香草核

将grsecurity修补程序移动到新目录:

rom1:/usr/src# mv grsecurity-2.1.11-2.6.24.5-200804211829.patch.gz linux/grsecurity-2.1.11-2.6.24.5-200804211829.patch.gz

解压缩并补丁内核的源码:

rom1:/usr/src# cd linux

rom1:/usr/src/linux# gunzip < grsecurity-2.1.11-2.6.24.5-200804211829.patch.gz | patch -p1

现在补丁被应用并且内核的源被修改。 让我们配置内核来启用Grsecurity。

3.配置硬核

在这个例子中,我们将使用控制台菜单(make menuconfig)配置内核。 这就是为什么我们安装了libncurses5-dev软件包。 但是,您可以在纯控制台模式(make config)或GUI模式下配置(make xconfig)。

安全级别具有预定义的级别:低,中,高。 它也可以在自定义级别进行配置,您可以选择通过选项启用或不启用选项。 有关每个选项的更多信息,请参阅http://www.grsecurity.net/confighelp.php/ 。 在这个HowTo中,我们将在高级别配置Grsecurity。

rom1:/usr/src/linux# make menuconfig

现在,我们将在菜单中启用Grsecurity。

转到安全选项 > Grsecurity >勾选Grsecurity 。 然后,您可以进入安全级别并勾选“ 高”

您可以通过配置Grsecurity来优化内核。 例如:在您的服务器上,您可能不需要支持红外线,蓝牙,也可能不包括wifi,ipx,X25,令牌环,ATM,火线,PC卡,操纵杆,鼠标,声音....

4.编译硬核

现在是编译硬核的时候了。 首先,以防万一,清理:

rom1:/usr/src/linux# make-kpkg clean

启动编译本身(这可能需要一段时间,取决于您的CPU电源和RAM可用性!!!):

rom1:/usr/src/linux# make-kpkg --initrd --append-to-version "grsec1.0" kernel_image

如果您没有使用Debian发行版,则可以使用以下方式编译经典方式:

make mrproper
make menuconfig
make clean
make
make modules_install
mkinitramfs
make install

5.安装加固的内核

现在您的新内核已经被编译,并且.deb包文件已经在/ usr / src文件夹中生成。 你需要安装你的内核任何.deb包:

rom1:/usr/src# dpkg -i linux-image-2.6.24.5-grsec_grsec1.0_i386.deb

在安装过程中,将生成一个initrd映像。 这可能需要一段时间,具体取决于您的CPU电源和RAM可用性! 您还可以检查新的内核映像是否是内核!

rom1:/usr/src# file vmlinuz-2.6.24.5-grsec
vmlinuz-2.6.24.5-grsec: Linux kernel x86 boot executable RO-rootFS, root_dev 0x801, swap_dev 0x1, Normal VGA

现在是用新的硬核重新启动系统的时候了

rom1:/usr/src/linux# shutdown -r now

现在您的系统已重新启动,您可以检查您的新内核是否正在运行:

rom1:~# uname -r

2.6.24.5-grsec

6.测试硬核

除了uname -r说你的内核是一个grsec之外,你怎么知道你正在运行一个硬核? 这是我们将使用paxtest ,它将模拟对内核的攻击,并显示您是否容易受到攻击。 下载paxtest:

rom1:/tmp# wget http://www.grsecurity.net/~paxguy1/paxtest-0.9.7-pre5.tar.gz

提取它:

rom1:/tmp# tar xzvf paxtest-0.9.7-pre5.tar.gz
rom1:/tmp# cd paxtest-0.9.7-pre5

编译(键入make具有目标列表):

rom1:/tmp/paxtest-0.9.7-pre5# make generic

运行它(有两种不同的模式:小孩和黑帽):

rom1:/tmp/paxtest-0.9.7-pre5# ./paxtest kiddie

注意:除非您使用高级安全级别或自定义级别,否则将有一个易受攻击的内核。 事实上,您只能在中型模式下获得用户界面的ASLR保护。