Chinaunix首页 | 论坛 | 博客
  • 博客访问: 303313
  • 博文数量: 239
  • 博客积分: 481
  • 博客等级: 下士
  • 技术积分: 1170
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-15 17:28
文章分类

全部博文(239)

文章存档

2014年(13)

2013年(6)

2012年(122)

2011年(98)

分类: LINUX

2011-07-20 21:13:57

1、下载所需软件包:
linux-2.6.25.tar.gz
iptables-1.4.1.tar.bz2
ipset-2.4.9.tar.bz2
netfilter-layer7-v2.21.tar.gz

iptables-1.4.1-imq.diff
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-2.6.25 linux

4、设置环境变量
当前目录 /usr/src/
$export KERNEL_DIR=/usr/src/linux
$export IPTABLES_DIR=/usr/src/iptables-1.4.1

5、当前目录 /usr/src/
$cd linux
配置内核:
$make menuconfig
保存退出
可以取消一些选项,此处略。

6、进入目录/usr/src/ipset-2.4.9
依次输入:
$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-2.6.25-imq5.diff
$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-1.4.1并 为iptables增加IMQ支持

进入netfilter-layer7-v2.21/iptables-1.4.1.1-for-kernel-2.6.20forward文件夹

将libxt_layer7.c中的
#include 改为:
#include “/usr/src/linux/include/linux/netfilter/xt_layer7.h”

把这两个文件拷贝到iptables-1.4.2/extensions中去。

进入/usr/src/iptables-1.4.1
$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 #查看一下是否加载成功

# ifconfig imq0 up
# ifconfig imq1 up
阅读(1934) | 评论(0) | 转发(0) |
0

上一篇:linux解压命令全集

下一篇:shell条件测试

给主人留下些什么吧!~~