分类: LINUX
2009-12-21 10:06:01
1、下载所需软件包:
linux-
iptables-1.4.1.tar.bz2
ipset-2.4.9.tar.bz2
netfilter-layer7-v2.21.tar.gz
iptables-
linux-2.6.25-imq5.diff
2、拷贝这些文件到 /usr/src/ 目录下,并解压
tar 文件用
$tar -xvf xxx.tar解压
tar.gz文件用
$tar -zxvf xxx.tar.gz解压
如果有tar.bz2文件,用
$bunzip2 xxx.tar.bz2
把文件xxx.tar.bz2变成xxx.tar再用上面的命令解压
3、创建一个软连接
当前目录 /usr/src/
$ln -s linux-
4、设置环境变量
当前目录 /usr/src/
$export KERNEL_DIR=/usr/src/linux
$export IPTABLES_DIR=/usr/src/iptables-
5、当前目录 /usr/src/
$cd linux
配置内核:
$make menuconfig
保存退出
可以取消一些选项,此处略。
6、进入目录/usr/src/ipset-
依次输入:
$make KERNEL_DIR=/usr/src/linux binaries
$make KERNEL_DIR=/usr/src/linux binaries_install
$make KERNEL_DIR=/usr/src/linux patch_kernel
7、打layer7补丁
当前目录/usr/src/linux
输入:
$patch -p1 < ../netfilter-layer7-v2.21/kernel-2.6.25-2.6.28-layer7-2.21.patch
$make menuconfig
进入网络选项把layer7support选上(M),自己查一下:
Core Netfilter Configuration --->
IP: Netfilter Configuration —>
8.打IMQ补丁:
$patch -p1 < ../linux-
$make menuconfig
驱动模块
IMQ (intermediate queueing device) support (IMQ)
Location:
-> Device Drivers
-> Networking support
-> Network device support (NETDEVICES)
-> IMQ (intermediate queueing device) support (IMQ)
选择编译为模块后,有两个参数可以设置:
Number of IMQ devices (IMQ_NUM_DEVS):默认IMQ设备的数量
IMQ behavior (PRE/POSTROUTING):IMQ的处理方法在nat表的勾取位置
默认是BA,也就是:PREROUTING(Before NAT),POSTROUTING(After NAT),可根据实际情况选择。
网络模块配置:
IMQ target support (IP_NF_TARGET_IMQ)
Location:
-> Device Drivers
-> Networking support
-> Networking support (NET)
-> Networking options
-> Network packet filtering (replaces ipchains) (NETFILTER)
-> IP: Netfilter Configuration
另外,IPv6也是可选的:
9、编译内核
$make
$make modules
$make modules_install
$make install
内核编译结束。
10、安装ipset
进入ipset文件夹
$make
$make install
11、安装iptables-
进入netfilter-layer7-v2.21/iptables-
将libxt_layer7.c中的
#include 改为:
#include “/usr/src/linux/include/linux/netfilter/xt_layer7.h”
把这两个文件拷贝到iptables-
进入/usr/src/iptables-
$patch –p1 < ../iptables-1.4.1-imq.diff
chmod +x extensions/.IMQ-test*
将libip6t_IMQ.c中的:
#include #include 改为:
#include “/usr/src/linux/include/linux/netfilter_ipv6/ip6_tables.h”
#include “/usr/src/linux/include/linux/netfilter_ipv6/ip6t_IMQ.h”
和libipt_IMQ.c中的
#include #include 改为:
#include “/usr/src/linux/include/linux/netfilter_ipv4/ip_tables.h”
#include “/usr/src/linux/include/linux/netfilter_ipv4/ipt_IMQ.h”
然后输入:
$./configure
$make
$make install
$reboot
12.加载IMQ模块
$modprobe imq
$lsmod #查看一下是否加载成功