我原来找的一份:
为iptables 添加新的模块
--------------------------------------------------------------------------------
Iptables添加模块 Howto
For kernel 2.6
准备工作:
1, 最新的patch-o-matic-ng,在下面的地址可以下载到最新的:
http://ftp.netfilter.org/pub/patch-o-matic-ng/2, 最新的iptables源代码:
http://www.netfilter.org3, 内核源代码:
http://www.kernel.org4, L7-filter 补丁以及协议描述文件:
http://sourceforge.net/project/show...?group_id=80085测试系统环境及软件版本:
1, GCC 3.4.2
2, Kernel 2.6.9
3, Iptbles 1.3.1
4, l7-protocols 2005-02-06
5, netfilter-layer7 v1.0
6, patch-o-matic-ng 20050309
安装步骤:
1, 解压kernel到/usr/src: #tar –jxvf kernel-2.6.9.tar.bz2 –C /usr/src
2, 使用上面类似的命令解压其余的文件到/source/temp下:
为kernel打补丁:
Cd /usr/src/linux-2.6.9
Make menuconfig(注意生成.config)
cd /source/temp/patch-o-matic-ng-20050309
KERNEL_DIR=/usr/src/linux IPTABLES_DIR=../iptables-1.3.3 ./runme time
KERNEL_DIR=/usr/src/linux IPTABLES_DIR=../iptables-1.3.3 ./runme CLASSIFY condition connlimit connrate conntrack-acct conntrack_ftp-optimize dstlimit hashlimit IPMARK ipp2p iprange ipv4options mport NETLINK NETMAP REJECT rpc set string time TTL unclean quota
(注:runme后跟需要添加的模块,不要使用base或其它的命令,会导致后面iptables不能编译通过。我编译的模块有:time ipv4options psd mport ipp2p quota。很遗憾的是string模块不支持kernel-2.6版本)
##这里是与l7-filter有关的(你可以不做这里的):
cd /usr/src/linux-2.6.9
patch –p1 </source/temp/netfilter-layer7-v1.0/kernel-2.6-layer7-1.0.patch
cd /source/temp/iptables-1.3.1
patch –p1 </source/temp/netfilter-layer7-v1.0/iptables-layer7-1.0.patch
##这里是与l7-filter有关的结束
Cd /usr/src/linux-2.6.9
make menuconfig (在这里选择你添加的netfilter的模块)
make
make modules_install
修改grub或lilo使用新的kernel来启动Linux
编译iptables:
cd /source/temp/iptables-1.3.1
export KERNEL_DIR=/usr/src/linux
export IPTABLES_DIR=/root/netfw/iptables-1.3.3
make PREFIX=/usr LIBDIR=/lib BINDIR=/sbin &&
make PREFIX=/usr LIBDIR=/lib BINDIR=/sbin install
安装l7-filter协议文件:
cd /source/temp/l7-protocols-2005-02-06
Make install
测试是否成功:
iptables –A OUTPUT –p tcp –m mport –sports 21:23,80 –j DROP
等等测试命令,如果你需要看帮助:
iptables –m ipp2p –help