3、用ng对kernel和iptables打上相关的patch
# pwd
/usr/src/new/patch-o-matic-ng-20071128
打上需要的ng patch,下面是有需要的。
KERNEL_DIR=/usr/src/linux-2.6.18 IPTABLES_DIR=/usr/src/iptables-1.3.6 ./runme connlimit
KERNEL_DIR=/usr/src/linux-2.6.18 IPTABLES_DIR=/usr/src/iptables-1.3.6 ./runme geoip
KERNEL_DIR=/usr/src/linux-2.6.18 IPTABLES_DIR=/usr/src/iptables-1.3.6 ./runme ipp2p
KERNEL_DIR=/usr/src/linux-2.6.18 IPTABLES_DIR=/usr/src/iptables-1.3.6 ./runme time
KERNEL_DIR=/usr/src/linux-2.6.18 IPTABLES_DIR=/usr/src/iptables-1.3.6 ./runme u32
在这过程中,会询问你。由于我是需要这些ng patch的,直接y就答应。
4、给kernel和iptables打l7补丁:
给kernel打上l7
cd /usr/src/linux-2.6.18
patch -p1 < /usr/src/netfilter-layer7-v2.14/for_older_kernels/kernel-2.6.18-2.6.19-layer7-2.9.patch
给kernel打l7
cd /usr/src/iptables-1.3.6
patch -p1 < /usr/src/netfilter-layer7-v2.14/iptables-for-kernel-pre2.6.20-layer7-2.14.patch
chmod +x /usr/src/iptables-1.3.6/extensions/.layer7-test
到此,给内核和iptables打补钉已经告一段落。
5、编译内核和iptables。
5.1 编译内核
cd /usr/src/linux-2.6.18
#make mrproper
#make menuconfig
#选择内核模块:这步你要仔细选你需要的东西,由于我原来所用的内核的配置文件config已经选好,我直接load它
#再在此基础上选我需要的东东。
l7相关就在:
Networking --->[*] Networking support
[*] Networking options ---> [*] Network packet filtering (replaces ipchains) ---> [*] Network packet filtering (replaces
ipchains) ---> IP: Netfilter Configuration ---> [*] Layer 7 match support (EXPERIMENTAL)
connlimit <*> Connections/IP limit match support
呵呵,我发现,2.6.18跟以前旧的内核还是有些差别的,你要仔细选择你所需要的,一定要仔细,如果这方面不懂选啥,请你找相关的
文档来看。
我也把string iprange这些常用的也都给它选上。
最后是保存发退出。
#make-kpkg clean
#make-kpkg --revision hbdebl7 --append-to-version .20071128 --initrd binary-arch
#设置 revision和append-to-version 有个好处,就是能避免和 Debian 官方内核的名字有冲突。
如果不出意外的话,就会在/usr/src/出现
linux-image-2.6.18.20071128_hbdebl7_i386.deb
linux-headers-2.6.18.20071128_hbdebl7_i386.deb
linux-headers会在需要的时候用得到,比如用m-a。
安装新的内核:
dpkg -i linux-image-2.6.18.20071128_hbdebl7_i386.deb
再修改下/boot/grub/menu.lst,把新编译的内核设为默认的选项。
重启系统,用新的内核引导系统。
5.2升级iptables:
cd /usr/src/iptables-1.3.6
export KERNEL_DIR=/usr/src/linux-2.6.18
export IPTABLES_DIR=/usr/src/iptables-1.3.6 make
make BINDIR=/usr/local/sbin LIBDIR=/usr/local/lib MANDIR=/usr/local/man
make BINDIR=/usr/local/sbin LIBDIR=/usr/local/lib MANDIR=/usr/local/man install
5.3安装layer7-protocols:
cd /usr/src/l7-protocols-2007-10-10
make install
然后你就可以开始测试你在新版本内核的iptables的效果了,注意下新版本iptables的路径(你可以把旧版本的iptables给删除掉)
