Chinaunix

标题: iptable的问题,急~~~~~ [打印本页]

作者: ellyzyl    时间: 2006-05-24 20:52
标题: iptable的问题,急~~~~~
我想用l7-filter过滤QQ
现在已经把规则添加进内核了
<M> Layer 7 match support (EXPERIMENTAL)
[*] Layer 7 debugging output
  但是make的时候有两行错误
net/ipv4/netfilter/ipt_layer7.c:460: warning: initialization from incompatible pointer type
net/ipv4/netfilter/ipt_layer7.c:461: warning: initialization from incompatible pointer type
lsmod查看也没有layer7
望个位高手指教一下是怎么回事!
作者: platinum    时间: 2006-05-24 21:17
make 是编译
lsmod 是查看已载入的 module
二者没有联系
作者: ellyzyl    时间: 2006-05-24 21:21
[root@localhost linux-2.6.16.15]# iptables -t mangle -I POSTROUTING -m layer7 --l7proto xunlei -j DROP
iptables v1.3.5: Couldn't load match `layer7':/lib/iptables/libipt_layer7.so: cannot open shared object file: No such file or directory
那我到底该怎么办啊?
作者: platinum    时间: 2006-05-24 22:16
不知道你做了什么,所以我也不知道该怎么办。。。
如果是我,我会好好看文档,仔细研究 INSTALL 或者 README,实在琢磨不明白的话就在论坛上提问,提问前会先看《提问的智慧》
作者: ttupdate    时间: 2006-05-24 22:32
./configuer
作者: ellyzyl    时间: 2006-05-25 08:33
问题就是我明明已经装上了的呀.
作者: ippen    时间: 2006-05-25 11:09
你的库文件位置不对,iptables 需要将 libipt_layer7.so 文件放在 /lib/iptables/ 但l7filter编译后好像是放在/usr/lib/iptables中,自己找找文件,复制到 lib/iptables中
作者: ellyzyl    时间: 2006-05-30 10:42
我想应该是没有把协议添进去吧,是不是在<M> Layer 7 match support (EXPERIMENTAL)
下面还应该有很多选项啊?
ippen所说的库文件/usr/lib/iptables我也找不到y
作者: platinum    时间: 2006-05-30 11:13
缺少的是 iptables 的库,而不是 netfilter 的模块
你的 iptables 没装好,而不是 netfilter 的编译有问题
作者: ellyzyl    时间: 2006-05-30 11:52
[root@localhost ~]# rpm -qa iptables
iptables-1.2.11-3.1.RHEL4
[root@localhost ~]# iptables -v
iptables v1.3.5: no command specified
Try `iptables -h' or 'iptables --help' for more information.
那我现在的版本不是1.3.5?
我又晕了
作者: platinum    时间: 2006-05-30 11:55
原帖由 ellyzyl 于 2006-5-30 11:52 发表
[root@localhost ~]# rpm -qa iptables
iptables-1.2.11-3.1.RHEL4
[root@localhost ~]# iptables -v
iptables v1.3.5: no command specified
Try `iptables -h' or 'iptables --help' for more information. ...

1、make != rpm
2、-v != -V
基础知识需要补习啊。。。。
作者: ellyzyl    时间: 2006-05-30 12:23
记错了,就是-V,那我安装了iptables-1.3.5,应该没有问题吧
作者: ellyzyl    时间: 2006-05-31 15:28
谢谢各位,问题已经解决
作者: x-phenix    时间: 2006-05-31 16:07
同情你,我也装了好几次没成功 :(  我第一次载make menuconfig 找到L7
但是系统忘记按装ini 什么tool了,后来等我把所需要的软件包找全后再装
结果 make menuconfig找不到 L7 了 :) 祝你成功
作者: platinum    时间: 2006-05-31 16:14
原帖由 ellyzyl 于 2006-5-31 15:28 发表
谢谢各位,问题已经解决

呵呵,解决了不妨说说你的问题所在,解决方法以及体会
作者: ellyzyl    时间: 2006-05-31 19:16
版主说的没错 ,就是IPTABLE 没装好,根本在/lib/下就没有.
cd /usr/src/iptables-1.3.5
export KERNEL_DIR=/usr/src/linux-2.6.16.15
export IPTABLES_DIR=/usr/src/iptables-1.3.5
make BINDIR=/sbin LIBDIR=/lib MANDIR=/usr/share/man install
我没做最后那步.
我重新安装一此就找到了.
作者: ellyzyl    时间: 2006-05-31 19:16
不过嘛又有点麻烦了
禁止内网某台机子上QQ :
iptables -t mangle -A POSTROUTING -m layer7 --l7proto qq -s 10.0.0.2 -j DROP
这条规则对吗?
当试图在这台机子上登录QQ的时候,我的机子就会死机.这是什么原因呢?
作者: platinum    时间: 2006-05-31 19:30
原帖由 ellyzyl 于 2006-5-31 19:16 发表
不过嘛又有点麻烦了
禁止内网某台机子上QQ :
iptables -t mangle -A POSTROUTING -m layer7 --l7proto qq -s 10.0.0.2 -j DROP
这条规则对吗?
当试图在这台机子上登录QQ的时候,我的机子就会死机.这是什么原因呢?

应该是

  1. iptables -A FORWARD -s 10.0.0.2 -m layer7 --l7proto qq -j DROP
复制代码

因为
1、过滤应该在 filter 表的 FORWARD 链里做,专链专用、专表专用,这点反复强调过
2、你的写法是先匹配的 qq 协议,后匹配的原地址,由于 l7-filter 是内容过滤,所以你的写法效率较低
作者: platinum    时间: 2006-05-31 19:32
原帖由 ellyzyl 于 2006-5-31 19:16 发表
版主说的没错 ,就是IPTABLE 没装好,根本在/lib/下就没有.
cd /usr/src/iptables-1.3.5
export KERNEL_DIR=/usr/src/linux-2.6.16.15
export IPTABLES_DIR=/usr/src/iptables-1.3.5
make BINDIR=/sbin LIBDIR=/lib MANDIR=/usr/share/man install

你可以写成

  1. make clean
  2. make KERNEL_DIR=/usr/src/linux-2.6.16.15 IPTABLES_DIR=/usr/src/iptables-1.3.5 BINDIR=/sbin LIBDIR=/lib MANDIR=/usr/share/man install
复制代码

另外,如果你用的是 2.6.16 的内核,service iptables restart 可能会有错误,这是发行版的问题
作者: ellyzyl    时间: 2006-05-31 20:07
我在网上看到很多人都用的下面类似的规则过滤QQ

  1. iptables -t mangle -A POSTROUTING -m layer7 --l7proto qq -s 192.168.0.5/32 -j DROP
复制代码




  1. [root@localhost ~]# service iptables restart
  2. 清除防火墙规则:                                           [  确定  ]
  3. 把 chains 设置为 ACCEPT 策略:nat mangle filter            [  确定  ]
  4. 正在卸载 Iiptables 模块:                                  [  确定  ]
  5. 应用 iptables 防火墙规则:                                 [  确定  ]
复制代码

没有问题.

[ 本帖最后由 platinum 于 2006-5-31 20:11 编辑 ]
作者: platinum    时间: 2006-05-31 20:10
网上很多人的东西都未必正确

另外,可否在防火墙正常工作的情况下贴一下 lsmod 的结果?
顺便问一句,你用的是什么发行版?版本是多少?

[ 本帖最后由 platinum 于 2006-5-31 20:12 编辑 ]
作者: ellyzyl    时间: 2006-05-31 20:17
[root@localhost ~]# lsmod
Module                  Size  Used by
ipt_layer7             14632  1
ipt_MASQUERADE          4608  1
iptable_nat             8708  1
ip_nat                 18348  2 ipt_MASQUERADE,iptable_nat
我用的RedHat enterprise AS4
曾看到tgy0234的帖子说这个版本及以后的没有内核源码.所以我下载的是比较新的2.6.16.15
作者: platinum    时间: 2006-05-31 20:26
奇怪,记得有应该有 x_iptable 这样的模块的,怎么没有了呢?
作者: ellyzyl    时间: 2006-05-31 20:33
我也不知道啊.我是个新手.没有x_iptable也应该是正常工作的吧,因为我没有发现有什么错误.我现在仍然是在那台主机上登录QQ我就死机.对方是把我的机子当路由的.
作者: ippen    时间: 2006-06-01 13:38
编译过2.6.16.x的内核,成功,没有错误,能启动,但实际用起来就是出现些莫名其妙的问题,建议lz换个2.6.15.x试试
作者: ellyzyl    时间: 2006-06-01 15:39
唉,我真是遇到莫名其妙的问题,有人还跟我说我用的iptables-1.3.5版本太新~~~~~~~~~郁闷!
作者: ippen    时间: 2006-06-01 17:43
试试用kernel 2.6.13+iptables1.3.3+l7filter2.0,我用了8个多月了,状态不错
作者: ellyzyl    时间: 2006-06-02 11:26
我下载了iptables-1.3.3.可问题是怎么把原来的卸载掉呢?删除了/lib/iptables/ 还是不行的,也就是我现在是两个iptables
[root@localhost ~]# service iptables start 清除防火墙规则:                                           [  确定  ]
把 chains 设置为 ACCEPT 策略:nat mangle filter            [  确定  ]
正在卸载 Iiptables 模块:                                  [  确定  ]
应用 iptables 防火墙规则:iptables-restore: target `MASQUERADE' v1.3.5 (I'm v1.3.3).
                                                           [失败]
作者: ippen    时间: 2006-06-02 11:45
找一下iptables的执行文件,又可能在 /usr/sbin or /usr/bin or /sbin or /bin,将他们全部删除,然后再装新的iptables

还有 /usr/local/bin   /usr/local/sbin

[ 本帖最后由 ippen 于 2006-6-2 11:46 编辑 ]




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2