黑基网 首页 服务器 Linux 查看内容

在2.6内核下不编译内核给iptables添加模块

2005-8-12 10:54| 投稿: Linux

摘要: 看了platinum兄弟写的在2.4内核下给iptables添加模块,想在2.6的内核下也试试,经过一天半的努力,并参考platinum兄弟的文章, 终于成功,写下来跟CU的兄弟们分享,我的系统为fe...
看了platinum兄弟写的在2.4内核下给iptables添加模块,想在2.6的内核下也试试,经过一天半的努力,并参考platinum兄弟的文章, 终于成功,写下来跟CU的兄弟们分享,我的系统为fedora2+linux-2.6.5-1.358 1,安装kernel源码 [[email protected]]# yum install kernel-source 2,下载iptables-1.3.3.tar.bz2和patch-o-matic-ng-20050810.tar.bz2并解包,为了方便,我们都放在/usr/src下, 并把kernel和iptables做符号链接. [[email protected]]# cd /usr/src [[email protected]]# wget ftp://ftp.be.netfilter.org/pub/netfilter/iptables/iptables-1.3.3.tar.bz2 [[email protected]]# wget ftp://ftp.be.netfilter.org/pub/netfilter/patch-o-matic-ng/snapshot/patch-o-matic-ng-20050810.tar.bz2 [[email protected]]# tar -jxvf iptables-1.3.3.tar.bz2 [[email protected]]# tar -jxvf patch-o-matic-ng-20050810.tar.bz2 [[email protected]]# ln -s linux-2.6.5-1.358 linux [[email protected]]# ln -s iptables-1.3.3 iptables 3,给netfilter打补丁,选择你要的模块,为了测试我就选择了ipp2p和time [[email protected]]# cd /usr/src/linux [[email protected]]# make mrproper [[email protected]]# make menuconfig 什么不做,保存退出,然后把Makefile改一下 [[email protected]]# vi Makefile 把EXTRAVERSION = -1.358custom更改为EXTRAVERSION = -1.358 保持跟uname -a 的版本一致(可详细参考platinum兄弟的文章) [[email protected]]# cd /usr/src/patch-o-matic-ng-20050810 [[email protected]]# ./runme ipp2p [[email protected]echo]# ./runme time 因为事先做好了符号链接,等问你kernel和iptables的位置的时候直接回车就行, 提示你是否添加ipp2p和time模块是就y确定,至此,netfilter的补丁打完了,如果你需要别的模块可以根据需要加上. 4,编译kernel的modules [[email protected]]# cd /usr/src/linux [[email protected]]# make menuconfig 在Device Drivers->Networking support->Networking options->Network packet filtering (replaces ipchains) ->IP: Netfilter Configuration中把下面的两项M选中. <M> TIME match support                                                                 <M> IPP2P match support 然后保存退出 4,编译安装模块 下面就是最重要的步骤了,因为我们的原则是节省时间,不重新编译内核,而只编译其中的模块, 这点2.4的内核跟2.6的内核有所不同,郁闷了我一整天,2.4内核的模块是以*.o形式的,而2.6内核是以*.ko形式的, 这有个改变的方法,参考:http://blog.chinaunix.net/article.php?articleId=40742&blogId=2662 [[email protected]]# make modules  HOSTCC  scripts/basic/fixdep  HOSTCC  scripts/basic/split-include  HOSTCC  scripts/basic/docproc  HOSTCC  scripts/conmakehash  HOSTCC  scripts/kallsyms  CC      scripts/empty.o  HOSTCC  scripts/mk_elfconfig  MKELF   scripts/elfconfig.h  HOSTCC  scripts/file2alias.o  HOSTCC  scripts/modpost.o  HOSTCC  scripts/sumversion.o  HOSTLD  scripts/modpost  HOSTCC  scripts/pnmtologo  HOSTCC  scripts/bin2c  到这里就可以ctrl+c中止了,因为我们不是要编译所有的模块,这样太浪费时间,而仅仅是netfilter的模块,  但是如果你直接执行make modules SUBDIRS=net/ipv4/netfilter就会出错,这就是2.4和2.6的区别,  我们先生成了scripts目录下的一系列需要的文件后就可以make modules SUBDIRS=net/ipv4/netfilter,  并用modpost等等把*.o文件生成为*.ko文件. [[email protected]]# make modules SUBDIRS=net/ipv4/netfilter 编译完成netfilter的模块后拷贝编译完成的模块 [[email protected]]# cp /usr/src/linux/net/ipv4/netfilter/ipt_ipp2p.ko /lib/modules/2.6.5-1.358/kernel/net/ipv4/netfilter/ [[email protected]]# cp /usr/src/linux/net/ipv4/netfilter/ipt_time.ko /lib/modules/2.6.5-1.358/kernel/net/ipv4/netfilter/ [[email protected]]# chmod +x /lib/modules/2.6.5-1.358/kernel/net/ipv4/netfilter/ipt_ipp2p.ko [[email protected]]# chmod +x /lib/modules/2.6.5-1.358/kernel/net/ipv4/netfilter/ipt_time.ko [[email protected]]# depmod -a 5,编译iptables [[email protected]]# cd /usr/src/iptables 参照INSTALL文件我们进行编译安装 [[email protected]]# make KERNEL_DIR=/usr/src/linux 会有错误编译不过 /usr/src/linux/include/linux/config.h:6:2: [[email protected]]#error including kernel header in userspace; use the glibc headers instead! 我google了半天也没有找到是什么原因,就自己动手解决 [[email protected]]# vi /usr/src/linux/include/linux/config.h把下面的三行注释掉 //#ifndef __KERNEL__ //#error including kernel header in userspace; use the glibc headers instead! //#endif 然后重新编译安装 make KERNEL_DIR=/usr/src/linux make install KERNEL_DIR=/usr/src/linux 完成安装以后测试一下 [[email protected]]# iptables -V [[email protected]]# modprobe ipt_time [[email protected]]# modprobe ipt_ipp2p [[email protected]]# lsmod ipt_time                2432  0 ipt_ipp2p               7552  0 ipt_REJECT              4736  1 ipt_state               1536  1 ip_conntrack           24968  1 ipt_state iptable_filter          2048  1 ip_tables              13440  5 ipt_time,ipt_ipp2p,ipt_REJECT,ipt_state,iptable_filter battery                 6924  0 ipv6                  184288  10 3c59x                  30376  0 binfmt_misc             7176  1 nls_utf8                1536  4 ntfs                   81516  4 dm_mod                 33184  0 uhci_hcd               23708  0 button                  4504  0 asus_acpi               8472  0 ac                      3340  0 ext3                  102376  4 jbd                    40216  1 ext3 测试iptables [[email protected]]# iptables -A FORWARD -m ipp2p --edk --kazaa --bit -j DROP [[email protected]]# iptables -A INPUT -m time --timestart 8:00 --timestop 18:00 --days Mon,Tue,Wed,Thu,Fri [[email protected]]# iptalbes -L
小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册黑基账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!



免责声明:本文由投稿者转载自互联网,版权归原作者所有,文中所述不代表本站观点,若有侵权或转载等不当之处请联系我们处理,让我们一起为维护良好的互联网秩序而努力!联系方式见网站首页右下角。


鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论


新出炉

返回顶部