免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1155 | 回复: 0
打印 上一主题 下一主题

出现网卡丢失问题: [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-27 20:50 |只看该作者 |倒序浏览

1、安装kernel源码
[root@jiecho]# yum install kernel-source
2、下载iptables-1.3.3.tar.bz2和patch-o-matic-ng-20050810.tar.bz2并解包,为了方便,我们都放在/usr/src下,并把kernel和iptables做符号链接.
  [root@jiecho]# cd /usr/src
  [root@jiecho]# wget ftp://ftp.be.netfilter.org/pub/netf...s-1.3.3.tar.bz2
  [root@jiecho]# wget ftp://ftp.be.netfilter.org/pub/netf...0050810.tar.bz2
  [root@jiecho]# tar -jxvf iptables-1.3.3.tar.bz2
  [root@jiecho]# tar -jxvf patch-o-matic-ng-20050810.tar.bz2
  [root@jiecho]# ln -s linux-2.6.5-1.358 linux
  [root@jiecho]# ln -s iptables-1.3.3 iptables
3、给netfilter打补丁,选择你要的模块,为了测试我就选择了ipp2p和time
  [root@jiecho]# cd /usr/src/linux
  [root@jiecho]# make mrproper
  [root@jiecho]# make menuconfig
什么不做,保存退出,然后把Makefile改一下
  [root@jiecho]# vi Makefile
把EXTRAVERSION = -1.358custom更改为EXTRAVERSION = -1.358
保持跟uname -a 的版本一致(可详细参考platinum兄弟的文章)
  [root@jiecho]# cd /usr/src/patch-o-matic-ng-20050810
  [root@jiecho]# ./runme ipp2p
  [root@jiecho]# ./runme time
因为事先做好了符号链接,等问你kernel和iptables的位置的时候直接回车就行,
提示你是否添加ipp2p和time模块是就y确定,至此,netfilter的补丁打完了,如果你需要别的模块可以根据需要加上.
4、编译kernel的modules
  [root@jiecho]# cd /usr/src/linux
  [root@jiecho]# make menuconfig
在Device Drivers->Networking support->Networking options->Network packet filtering (replaces ipchains)
->IP: Netfilter Configuration中把下面的两项M选中.
TIME match support
IPP2P match support
然后保存退出
5、编译安装模块
下面就是最重要的步骤了,因为我们的原则是节省时间,不重新编译内核,而只编译其中的模块,
这点2.4的内核跟2.6的内核有所不同,郁闷了我一整天,2.4内核的模块是以*.o形式的,而2.6内核是以*.ko形式的,
这有个改变的方法,参考:
http://blog.chinaunix.net/article.p...742&blogId=2662

代码:
 [root@jiecho]# 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文件.
  [root@jiecho]# make modules SUBDIRS=net/ipv4/netfilter
编译完成netfilter的模块后拷贝编译完成的模块\
  [root@jiecho]# cp /usr/src/linux/net/ipv4/netfilter/ipt_ipp2p.ko /lib/modules/2.6.5-1.358/kernel/net/ipv4/netfilter/
  [root@jiecho]# cp /usr/src/linux/net/ipv4/netfilter/ipt_time.ko /lib/modules/2.6.5-1.358/kernel/net/ipv4/netfilter/
  [root@jiecho]# chmod +x /lib/modules/2.6.5-1.358/kernel/net/ipv4/netfilter/ipt_ipp2p.ko
  [root@jiecho]# chmod +x /lib/modules/2.6.5-1.358/kernel/net/ipv4/netfilter/ipt_time.ko
  [root@jiecho]# depmod -a
6、编译iptables
 [root@jiecho]# cd /usr/src/iptables
参照INSTALL文件我们进行编译安装
  [root@jiecho]# make KERNEL_DIR=/usr/src/linux
会有错误编译不过
/usr/src/linux/include/linux/config.h:6:2: [root@jiecho]#error including kernel header in userspace; use the glibc headers instead!
我google了半天也没有找到是什么原因,就自己动手解决
[root@jiecho]# 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
完成安装以后测试一下
代码:
  [root@jiecho]# iptables -V
  [root@jiecho]# modprobe ipt_time
  [root@jiecho]# modprobe ipt_ipp2p
 [root@jiecho]# 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
  [root@jiecho]# iptables -A FORWARD -m ipp2p --edk --kazaa --bit -j DROP
  [root@jiecho]# iptables -A INPUT -m time --timestart 8:00 --timestop 18:00 --days Mon,Tue,Wed,Thu,Fri
  [root@jiecho]# iptalbes -L



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/70449/showart_1150552.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP