Chinaunix

标题: 用Iptables 做限制后一段时间不能上网 [打印本页]

作者: believe_dou    时间: 2007-06-23 16:06
标题: 用Iptables 做限制后一段时间不能上网

领导让封“基金”“股票”“财经”,封是能封,可是有点问题。
#每个词都用baidu和google识别出来gbk编码和utf-8编码的字串,全封住。
/usr/sbin/iptables -A FORWARD -m string --algo bm --string "股市" -j DROP
/usr/sbin/iptables -A FORWARD -m string --algo bm --string "%E8%82%A1%E5%B8%82" -j DROP
/usr/sbin/iptables -A FORWARD -m string --algo bm --string "%B9%C9%CA%D0" -j DROP
/usr/sbin/iptables -A FORWARD -m string --algo bm --string "基金" -j DROP
/usr/sbin/iptables -A FORWARD -m string --algo bm --string "%E5%9F%BA%E9%87%91" -j DROP
/usr/sbin/iptables -A FORWARD -m string --algo bm --string "%BB%F9%BD%F0" -j DROP
/usr/sbin/iptables -A FORWARD -m string --algo bm --string "股票" -j DROP
/usr/sbin/iptables -A FORWARD -m string --algo bm --string "%E8%82%A1%E7%A5%A8" -j DROP
/usr/sbin/iptables -A FORWARD -m string --algo bm --string "%B9%C9%C6%B1" -j DROP
/usr/sbin/iptables -A FORWARD -m string --algo bm --string "证券" -j DROP
/usr/sbin/iptables -A FORWARD -m string --algo bm --string "%E8%AF%81%E5%88%B8" -j DROP
/usr/sbin/iptables -A FORWARD -m string --algo bm --string "%D6%A4%C8%AF" -j DROP
#下面是些纯英文的词,做起来简洁多了
/usr/sbin/iptables -A FORWARD -m string --algo bm --string "fund" -j DROP
/usr/sbin/iptables -A FORWARD -m string --algo bm --string "finance" -j DROP
/usr/sbin/iptables -A FORWARD -m string --algo bm --string "business" -j DROP
/usr/sbin/iptables -A FORWARD -m string --algo bm --string "money" -j DROP
/usr/sbin/iptables -A FORWARD -m string --algo bm --string "stock" -j DROP
------------------------------------------------
以上是我在NAT上做的策略,封是成功了,但是有个问题,客户机上一会儿网,大约1个多小时,就上不去了(不是这些机器同时),
哪个客户机上不去网了,只要让它重启一下就行了,但过一个多小时又上不去了。打开cmd命令窗口,ping
www.sina.com.cn
ping 网关都没问题,互相ping也是通的,就是浏览器打不开任何页面了,除非重启。
如果把上面的这些string策略去掉,就没这个问题。
答:
可否在客户机上抓包看究竟?
看 TCP 的三次握手是否通过,若页面包含 string 所规定的敏感信息,那么传输该页面的 frame 无法通过 netfilter,但抓包应该可以看到三次握手建立
初步分析,原因是这样的:
1、XP 系统有连接数限制,默认大概是 10 几个,可以通过补丁扩大这个数
2、被 DROP 的数据无法传输到 client,但是三次握手已经建立,XP 系统认为这个连接存在
3、太多的废 DROP 无法得到迅速释放,XP 系统的连接数被占满,重启后释放连接数方可正常
验证以上理论方法:
通过修改连接数程序调整连接数大小,若以前小则设大,看是否时间延长,若以前大则设小,看时间是否缩短



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/42083/showart_327129.html




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