免费注册 查看新帖 |

Chinaunix

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

这种iptables的规则如何设定?(内详) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-06-29 14:25 |只看该作者 |倒序浏览
如何设置iptables规则使得所有包都通过-j QUEUE到达用户空间的程序?
也就是说,进来一个包,不管它是怎么样的,都用-j QUEUE送到队列由用户程序去处理.

我这么做是想把包全部抓到,这样我可以不必再写抓包程序,并且,必要的时候我能再加一些规则过滤信息.

论坛徽章:
0
2 [报告]
发表于 2005-06-29 14:31 |只看该作者

这种iptables的规则如何设定?(内详)

配合Snort来应用吧,Snort就是抓包和分析的,可以把结果交给Iptables来处理,当然要自己写脚本,也可参考Guardian。

论坛徽章:
0
3 [报告]
发表于 2005-06-29 14:32 |只看该作者

这种iptables的规则如何设定?(内详)

很想学学,虽然不能解决楼主的问题,但是很希望能听楼主多讲解一些

论坛徽章:
0
4 [报告]
发表于 2005-06-29 14:39 |只看该作者

这种iptables的规则如何设定?(内详)

[quote]原帖由 "b2linux"]配合Snort来应用吧,Snort就是抓包和分析的,可以把结果交给Iptables来处理,当然要自己写脚本,也可参考Guardian。[/quote 发表:


你能再讲得详细一点吗?
Snort和Iptables的接口是如何的?
我只知道,Netfilter可以利用-j QUEUE把包传给应用程序处理再返回给Netfilter.
但是如何把应用程序的包(这个包是应用程序自己抓到的)给回Netfilter呢?

论坛徽章:
0
5 [报告]
发表于 2005-06-29 15:07 |只看该作者

这种iptables的规则如何设定?(内详)

[quote]原帖由 "platinum"]很想学学,虽然不能解决楼主的问题,但是很希望能听楼主多讲解一些[/quote 发表:


我这个没什么高深的,
如果自己写一个过滤器,要抓包,分析包头,过滤,再处理.
但是如果用iptables来做的话,我设想由Iptables把抓包,分析包头,过滤都由Iptables来做,这样我的任务就可简化很多.只需要再最后处理一下就行了
在Netfilter的过滤机制里,有一个libipq的库可写成应用程序,然后等待接收由规则-j QUEUE传上来的包.
现在我是想测试一下如何能让Iptables把所有的包都能发到我的应用程序上来.

比如说:
在某个网段上,我的机器A运行着iptables,网卡是被设置成混杂模式的,另外一台机器B在ping一个网络上并不存在的IP:XXX,预先我在机器B上做了ARP的静态绑定,即把不存在的IP:XXX随意绑在一个MAC上.这样PING包就会到达我的机器A的端口上.而我希望能抓到这个包.

这只是一个例子.
那么我应该如何写我的规则可以让Iptables把所有的包都抓到呢?

论坛徽章:
0
6 [报告]
发表于 2005-06-29 15:08 |只看该作者

这种iptables的规则如何设定?(内详)

这样试试
iptables -t nat -N TEST
iptables -t nat -I PREROUTING -j TEST

论坛徽章:
0
7 [报告]
发表于 2005-06-29 17:21 |只看该作者

这种iptables的规则如何设定?(内详)

原帖由 "platinum" 发表:
这样试试
iptables -t nat -N TEST
iptables -t nat -I PREROUTING -j TEST


你这样没有在链里加rule转到-j QUEUE队列中给用户程序,是不行的
不过我尝试了一下,甚至再加了一条:
iptables -t nat -I TEST -j QUEUE

然后我在我的网络上的另外一台机器上向不存在的IP发了一个ping,
但我运行IPTABLES的机器上并没有捉到这个ICMP包.(详细的做法见上面的贴子)

我在IPTABLES上设了如下的规则:
iptables -t nat -A PREROUTING -p icmp -j QUEUE
iptables -t mangle -A PREROUTING -p icmp -j QUEUE
iptables -t filter -A INPUT -p icmp -j QUEUE
仍然不能抓到上面那种ping包,为何?

论坛徽章:
0
8 [报告]
发表于 2005-06-30 09:47 |只看该作者

这种iptables的规则如何设定?(内详)

哇,掉到这么后面去了,顶一下.

论坛徽章:
0
9 [报告]
发表于 2005-06-30 10:11 |只看该作者

这种iptables的规则如何设定?(内详)

原帖由 "kiron" 发表:


你这样没有在链里加rule转到-j QUEUE队列中给用户程序,是不行的
不过我尝试了一下,甚至再加了一条:
iptables -t nat -I TEST -j QUEUE

然后我在我的网络上的另外一台机器上向不存在的IP发了一个ping,
但我?.........

为什么不行?你不是要获取所有信息吗?
如果你想捕捉 ping 包,拦截 icmp 协议好了呀

论坛徽章:
0
10 [报告]
发表于 2005-06-30 10:47 |只看该作者

这种iptables的规则如何设定?(内详)

nat表的状态
# iptables -t nat -L
# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
TEST       all  --  anywhere             anywhere

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain TEST (1 references)
target     prot opt source               destination
QUEUE      icmp --  anywhere             10.10.0.99
#
其他的表都没有规则,
网卡状态为:
#ifconfig eth1
eth1      Link encap:Ethernet  HWaddr 00:01:AF:07:9B:8B
          inet addr:10.10.0.6  Bcast:10.10.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:40441 errors:0 dropped:0 overruns:0 frame:0
          TX packets:51470 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3266336 (3.1 Mb)  TX bytes:9753415 (9.3 Mb)
          Base address:0x4000
已被设置为混杂模式.
然后我在网络上另外一台机器为10.10.0.12的机器上向不存在的IP地址10.10.0.99发送了ICMP包,即ping那个IP,结果我的程序在10.10.0.6上没有抓到这些包,但同样在10.10.0.6上的tcpdump却抓到了由10.10.0.12到10.10.0.99的icmp包


的确没有抓到.另外我的用户程序很简单,抓到一个包,就打印一条信息.就是如此而已.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP