免费注册 查看新帖 |

Chinaunix

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

[网络管理] 小弟有两个棘手问题(关于l7-filter和P2P),诚心求教了!!!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-08-24 04:33 |只看该作者 |倒序浏览
最近做关于p2p控制方面的事儿

有两个问题请教各位:
1.我安装l7-filter还有ipp2p,经测试,--help帮助和模块都加载了。然后只能对QQ MSN的封堵有
作用,但是根本封不了p2p软件。听说最新的版本采用了协议迷惑等手段,在应用层无法进行
内容过滤了?比如eMule0.47c还有bitcomet 0.91.都不能封。

2.我在使用tc做流量控制的时候,不知道为什么,总是不能正常使用fw。
我用iptables打的标记,可以dorp,但是tc根本不认,不能进行流量控制。我用mark来识别的时候,基
本上全都从default那边走掉了。非常郁闷。。。。。

我想请教各位高人,最好给个具体些的原因
指点一下!!
谢谢!

论坛徽章:
0
2 [报告]
发表于 2007-08-24 05:23 |只看该作者
1.听说现在驴和bt的协议都加密了,看来真实网管的恶梦阿。

论坛徽章:
0
3 [报告]
发表于 2007-08-24 07:48 |只看该作者
现在的 P2P 软件越来越厉害了
http://blog.chinaunix.net/u/311/showart_331227.html

论坛徽章:
0
4 [报告]
发表于 2007-08-24 09:05 |只看该作者
谢谢白金大哥啦!
我知道了。。。。

那么。这里有两个问题一直想不明白

1.我用网络结构是 用虚拟机运行linux系统 ,作主机 Windows系统的缺省网关,Windows通过linux使用
iptables -----nat---MASQUERADE (简写)上网


我必须用两条命令来阻断Windows访问linux的vsftp

iptables -t mangle -A PREROUTING -m layer7 --l7proto ftp -j DROP
iptables -t mangle -A POSTROUTING -m layer7 --l7proto ftp -j MARK --set-mark 1

非常奇怪
哪一条单独放置都没有阻断效果。。。。。为什么啊。。。。drop不需要给数据打包啊,如果l7 识别
ftp,第一句就够了啊

然后把第2句命令换成
iptables -t mangle -A POSTROUTING -m layer7 --l7proto ftp-j DROP
也是,必须两个放一起用,单独没有效果。

论坛徽章:
0
5 [报告]
发表于 2007-08-24 09:25 |只看该作者
第2个问题是:

iptables -t mangle -A PREROUTING -m layer7 --l7proto ftp -j MARK --set-mark 1
  iptables -t mangle -A POSTROUTING -m layer7 --l7proto ftp -j MARK --set-mark 1
我必须用两条命令打上数据包的标记,少一条也不行(很弱的问句。。。。。为什么啊?我比较菜。。。。)

iptables -t mangle -A POSTROUTING -m mark --mark $MARK -j DROP
然后这样就可以阻断Windows访问linux的ftp了,这样是不是说明我给数据包打上标记了?

然后我的tc控制脚本执行后用-x 参数显示就是:
tc qdisc del dev eth1 root
+ iptables -t mangle -F
+ iptables -t filter -F
+ tc qdisc add dev eth1 root handle 1: htb
+ tc class add dev eth1 parent 1: classid 1:1 htb rate 300kbit ceil 300kbit
+ tc class add dev eth1 parent 1: classid 1:100 htb rate 100kbit ceil 100kbit
+ tc class add dev eth1 parent 1: classid 1:300 htb rate 100kbit ceil 300kbit
+ tc filter add dev eth1 protocol ip prio 1 parent 1:0 handle 1 fw flowid 1:100
+ tc qdisc ls dev eth1
qdisc htb 1: r2q 10 default 0 direct_packets_stat 5
+ iptables -t mangle -A PREROUTING -m layer7 --l7proto ftp -j MARK --set-mark 1
+ iptables -t mangle -A POSTROUTING -m layer7 --l7proto ftp -j MARK --set-mark 1

这样根本控制不住ftp流量,除非,我在第四行命令后加default指定走一条。
如果看上面的阻断效果,我原来想应该是打上标记了,可是tc好像不识别。
还有一种可能是:我的tc的控制脚本有问题,请各位大人指点下,哪里不对。

附带问下,我该怎么鉴别我的平台没有错误,l7可以阻断QQ等聊天工具(普通状况下),而且
最少我可以阻断ftp访问,应该是可以用的。现在真不知道怎么才能控制ftp访问流量了。。。

非常感谢,请再帮一下!!!!!

论坛徽章:
0
6 [报告]
发表于 2007-08-24 09:59 |只看该作者
问题1
l7-filter 匹配的是 FTP 的登录过程,若这个过程阻止了,应该是无法数据传输的,因为登录不上,你再试试

问题2
l7-filter 和 tc 联合使用没怎么研究过,本身对 tc 研究不深,因为感觉有点难,很多概念还没弄清……

论坛徽章:
0
7 [报告]
发表于 2007-08-24 11:10 |只看该作者
谢谢
白金大哥

刚测了下:
的确是阻断ftp登录信息就可以了
所以用一条指令:

iptables -t mangle -A INPUT -m layer7 --l7proto ftp -j DROP
就能阻断ftp

现在的问题是,为什么单条
iptables -t mangle -A PREROUTING -m layer7 --l7proto ftp -j DROP
不可以,在netfilter结构里,不是他的逻辑顺序更靠前么
在他处理了之后,才会交由route,然后分给本地进INPUT,或者其他主机,走
FORWARD。那么在PREROUTING识别不是更容易阻断么。

不明白,再请教下。。。。。。

论坛徽章:
0
8 [报告]
发表于 2007-08-24 11:27 |只看该作者
阻断应该放到 filter 表的 FORWARD 链里面
iptables -I FORWARD -m layer7 --l7proto ftp -j DROP

论坛徽章:
0
9 [报告]
发表于 2007-08-24 11:40 |只看该作者
还有,测试之前最好先 service iptables stop,清除所有 netfilter 模块再测试,保证内存没有内核模块残留

论坛徽章:
0
10 [报告]
发表于 2007-08-24 11:42 |只看该作者
弱弱地问下。。。
为什么放在FORWARD链中,专表专用么。。。。

我的vsftp就是本机的linux上。。这个。。就是本地进程。。。数据包应该
交由INPUT链吧。。。。

而且,我刚试了下,单条FORWARD上DROP是阻断不了的啊。。。。


另外还有个问题。l7匹配的时候看前2k字节,那么他是如何给数据做标记的
传输文件的时候,数据包会很多啊,不能匹配所有的包啊。。。。
他是怎么处理的,这样块打标记mark的话,是怎么mark的,每个包都mark么


这块非常不懂,白金大哥有什么文档或者提示,指点下,我可以自己去看看,搜下
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP