快速业务通道

Centos5.4升级内核 iptables Layer7 ipp2p

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-08
的补丁没有试过 patch -p1 < ../netfilter-layer7-v2.20/iptables-1.4-for-kernel-2.6.20forward-layer7-2.20.patch 5、接下来就是安装打好补丁的iptables1.4.2了,进入到iptables1.4.2源码目录,执行以下命令: ./configure --with-ksource=/usr/src/linux-2.6.28 make KERNEL_DIR=/usr/src/linux BINDIR=/sbin LIBDIR=/lib MANDIR=/usr/share/man 拥有帝国一切,皆有可能。欢迎访问phome.net make install BINDIR=/sbin LIBDIR=/lib MANDIR=/usr/share/man 四、重新启动之后查看内核是否加载成功 以及iptables版本 [root@DB2 ~]# uname –a Linux DB2 2.6.28 #1 SMP Thu Feb 24 11:19:41 CST 2011 x86_64 x86_64 x86_64 GNU/Linux [root@DB2 ~t ~]# iptables -V iptables v1.4.5

五、编译加载ipp2p(这个步骤一定会出现一些问题,是新版本的内核和iptabels的改变导致的)
修改Makefile,编译
tar zxvf ipp2p-0.99.15.tar.gz
cd ipp2p-0.99.15/
vi Makefile 修改kernel_dir为/usr/src/linux-2.6.24.7
make
如果完全按照上面的步骤操作,编译的时候遇到的第一个错误应该
是这样的:图一

这是版本差异造成的,需要修改代码: 修改libipt_ipp2p.c
找到报警的行:375,376,378,379
参考系统的libxt_mark.c修改相关代码如下:
static void
删除init(struct ipt_entry_match *m, unsigned int *nfcache)
添加init(struct xt_entry_match *m)
{
struct ipt_p2p_info *info = (struct ipt_p2p_info *)m->data;
删除 *nfcache |= NFC_UNKNOWN;
/*init the module with default values*/
info->cmd = 0;
info->debug = 0;
}

static int
parse(int c, char **argv, int invert, unsigned int *flags,
删除 const struct ipt_entry *entry,
删除 unsigned int *nfcache,
添加 const void *entry,
struct xt_entry_match **match)
{
struct ipt_p2p_info *info = (struct ipt_p2p_info *)(*match)->data;
static void
删除print(const struct ipt_ip *ip,
添加print(const void *ip,
const struct xt_entry_match *match,
int numeric)
{
static void
拥有帝国一切,皆有可能。欢迎访问phome.net
删除save(const struct ipt_ip *ip, const struct iptt_entry_match *match)
添加save(const void *ip, const struct xt_entry_match *match)
{
struct ipt_p2p_info *info = (struct ipt_p2p_info *)match->data;
重新编译,make clean make
成功编译! 将编译出的libipt_ipp2p.so(目录 ipp2p-0.99.15/下)复制到/lib/iptables/ cp libipt_ipp2p.so /lib/iptables/ cp ipt_ipp2p.ko /lib /modules/2.6.24.7/kernel/net/ipv4/netfilter 将ipt_ipp2p.ko复制到内核的netfilter目录下 运行depmod -a,更新内核模块的依赖关系. 重启iptables服务 Service iptables restart 测试L7成功 Iptables –A FORWARD –m layer7 –l7proto q –j DROP 测试ipp2p成功 Iptables –A FORWARD –p tcp –m ipp2p –xunlei –j DROP

本文出自 “海风的linux之路” 博客,请务必保留此出处http://lhflinux.blog.51cto.com/1961662/504573

拥有帝国一切,皆有可能。欢迎访问phome.net

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号