在 Linux 2.0.x 内核(其中 x <= 29)中,伪装代码仍然被标记为实验性的,因此在编译新内核时选择“代码成熟度级别”的配置选项非常重要。
* Code maturity level options * Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL) [N/y]? y
完成上述步骤后,您可以按照文章中所示选择其他选项。
ICMP 的选项,ipautofw支持以及 VDOLive、CUSeeMe 和 Quake 的模块仅在 pre-2.0.30-2 “Bumper” 补丁中可用。该补丁可以从 ftp://vger.rutgers.edu/pub/linux/Net/patches/pre-patch-2.0.30-2.gz 获取。
您可以通过将其保存在 /usr/src/linux 目录中,然后使用以下命令(或您自己喜欢的命令集)来应用补丁文件:
gunzip pre-patch-2.0.30-2.gz patch -p1 < pre-patch-2.0.30-2 make config make dep make clean make zImage ... make modules make modules_install
之后只需安装您的新内核并重新启动即可。
请注意,在安装补丁文件后编译ipfwadm(版本 2.3.0)时,我遇到了一个小问题。似乎 /usr/include/linux/ip_fw.h 发生了足够的更改,导致编译错误。您可以恢复原始的 ip_fw.h 文件 (ip_fw.h.orig) 并重新生成ipfwadm,或者在包含 ip_fw.h 之前将以下行
#include <linux/timer.h>
添加到 ipfwadm.c 文件中。