iptables禁止网页,qq,msn等的功能总结
iptables禁止网页,qq,msn等的功能总结1)iptables -i forward -d www.baid .com -j accept,在这条命令中,www.baid 。com字符串里可不可以使用通配符,如:iptables -i forward -d *.baid .com -j accept。这样的字符串iptables可以识别吗？不可以识别是不是跟iptables版本的高低有关呢(我先在用的是iptables1.30)？如果和版本高低没关系那怎么实现带通配符的字符串呢？谢谢！ 2)如果以上不可以,可以用l7来实现,我把些好的web.pat放在etcl7-protocolsprotocols下,那怎么调用这个正则表达式呢？我的shell脚本写有这样的语句:iptables -t mangle -i $web_chain -s $f2 -d $f4 -m layer7 --l7proto web -j drop。我测试了下,但好像没起做用,是不是脚本与正则表达式中间没联系起来呢？ web.pat的代码是: web http(s)？:([w-]+.)+[w-]+([w.？%&=])？ 3)同理,可以用l7来实现对qq进行禁用,我看了语句实现了,语句如下: iptables -t mangle -i $im_chain -m layer7 --l7proto qq -j drop 其中qq的正则表达式如下: # tencent qq protocol - chinese instant messenger protocol -  # pattern attrib tes: good fast fast # protocol gro ps: chat # wiki:  我乘车时想到的计算组合数算法  # # over six million people se qq in china, according to wsgtrsys. # # this pattern has been tested and is believed to work well. # # qq ses three (two？) methods to connect to server(s？). # one is dp, and another is tcp # dp protocol: the first byte is 02 and last byte is 03 # tcp protocol: the second byte is 02 and last byte is 03 # pattern written by  tercl  wsgtrsys qq ^.？x02.+x03$帖 iptables-save 输出结果回复 #2 ssffzz1 的帖子root$ iptables -t mangle -l chain forward (policy accept) target prot opt so rce destination chain input (policy accept) target prot opt so rce destination chain output (policy accept) target prot opt so rce destination chain postrouting (policy accept) target prot opt so rce destination mangle-weball--anywhere anywhere mangle-imall--anywhere anywhere chain prerouting (policy accept) target prot opt so rce destination chain mangle-im (1 references) target prot opt so rce destination chain mangle-web (1 references) target prot opt so rce destination drop all--  layer7 l7proto web drop all--  layer7 l7proto web root$ 我输入 lin.com的网址是baid .com。你把baid .com直接放入到那个规则文件。不用指定目标地址。 另外不建议在mangel 链里做。不过也不影响结果。回复 #4 ssffzz1 的帖子web.pat的代码: web http(s)？:([w-]+.)+[w-]+([w.？%&=])？ baid .com 命令如下: iptables -t mangle -i $web_chain -s $f2 -m layer7 --l7proto web -j drop 但是没能禁止到百度,还有我要的目的是可以禁止含通配符的。 chain mangle-web (1 references) target prot opt so rce destination drop all-- anywhere layer7 l7proto web [ 本帖最后由 ch izx 于 2008-8-25 13:55 编辑 ]你就是想封掉对域名*.baid .com的访问是吗？还是内容包含baid .com的网页？ 另外你的网络内pc的dns是如何设置的？你是用linux本身测试的结果吗？回复 #4 ssffzz1 的帖子据我了解,有2种方法可以禁止某一网站: 1)对服务器ip进行禁止,要通过dns解析域名,这用就导致只能写全网址,不支持通配符。可在filter链中实现。 2)可以通过l7在应用层直接对域名进行过滤,这用应该就可以支持通配符。但是就楼上这些代码还没能实现。。。请教！！ x.china  参考以上链接。 不过你要保证你的dns查询是经过此机器的。回复 #6 ssffzz1 的帖子不是就想对百度进行封。而是所有的网址。比如www.qq.com,news。qq.com。mail。qq.com。要只要写入*。qq.com就可以禁止上面3个网址了。我是在路由上做的(开发路由)。哦。 那就参考那个帖子就对了。