最近公司有人下载电影,严重影响上网速度,为杜绝此类情况再次发生,上面要求从技术手段上解决这个问题。 公司服务器用linux作为网关,通过squid+iptables透明代理上网,也有做QoS流量限制,但仍然有人在流量被限制的情况下开多线程下载电影,所以此次准备从squid代理入手,限制下载电影。
5M以下得都可以下载,超过5M得统统不行 以下是squid.conf部分代码 acl wireless src 192.168.xxx.xxx reply_body_max_size 5120000 allow wireless
#用户分类
acl advance arp 00:03:0d:32:39:92 00:05:5D:F6:B4:82
acl vipuser arp 00:C0:9F:9B:20:53 00:00:E8:18:C1:64
acl LanUser src 192.168.1.3-192.168.1.24/32
acl localhost src 127.0.0.1/32
acl all src 0.0.0.0/0.0.0.0
#行为分类
acl Movies rep_mime_type video/mpeg
acl UPLIMIT req_header Content-Length [5-9][0-9]{5} [0-9]{7,}
acl download urlpath_regex -i \.mp3$ \.avi$ \.rmvb$ \.rm$ \.ra$ \.ram$ \.mpe$ \.smi$
acl denysite dstdomain .tencent.com
acl BadSites url_regex "/opt/squid/etc/badsites"
acl worktime time SMTWHFA 7:40-12:00 13:00-21:30
#具体规则
http_access allow advance
http_reply_access deny Movies worktime
http_access deny UPLIMIT
http_access deny download worktime
http_access allow vipuser
http_access deny badsites
http_access allow localhost
http_access deny denysite worktime
http_access allow LanUser
http_access deny all
其中
acl UPLIMIT req_header Content-Length [5-9][0-9]{5} [0-9]{7,} 是参考了
理想中,应该能实现限制超过10M大小的文件下载,并限制下载电影类文件。但是实际上并没有实现,电影照样能下载。 另外,通过
acl download urlpath_regex -i \.mp3$ \.avi$ \.rmvb$ \.rm$ \.ra$ \.ram$ \.mpe$ \.smi$
限制下载此类文件之后,可以限制, 但?cc638e95ce56696a7107eb4acccaa308此类下载则无法限制。 这是为何?
请有经验的兄弟帮忙分析一下:):em18:
[ 本帖最后由 thatday 于 2006-4-27 09:35 编辑 ]
回复于:2006-04-27 09:42:06
另外,在squid的mime.conf里面,对于rmvb格式文件,应该如何写? 是
\.rmvb$ video/mpeg 还是
\.rmvb$ application/vnd.rn-realmedia
回复于:2006-04-27 09:55:33
已经搞定了。 通过下载分析,发现下载rmvb格式时,http头返回的下载类型为application/vnd.rn-realmedia,故在mime.conf里面将rmvb格式类型对应为application/vnd.rn-realmedia,就可在squid.conf里面添加acl控制下载此类文件了。但关于下载文件大小限制,还存在问题,有兄弟实现了请告诉我一声:):D
附flashget下载日志
Thu Apr 27 09:49:24 2006 已连接.
Thu Apr 27 09:49:24 2006 GET /down/movie/tv/gong/01.rmvb HTTP/1.1
Thu Apr 27 09:49:24 2006 Host: down3.tfol.com
Thu Apr 27 09:49:24 2006 Accept: */*
Thu Apr 27 09:49:24 2006 Referer:
Thu Apr 27 09:49:24 2006 User-Agent: Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)
Thu Apr 27 09:49:24 2006 Range: bytes=334680-
Thu Apr 27 09:49:24 2006 Pragma: no-cache
Thu Apr 27 09:49:24 2006 Cache-Control: no-cache
Thu Apr 27 09:49:24 2006 Connection: close
Thu Apr 27 09:49:24 2006 HTTP/1.0 403 Forbidden
Thu Apr 27 09:49:24 2006 Server: squid/2.5.STABLE13
Thu Apr 27 09:49:24 2006 Mime-Version: 1.0
Thu Apr 27 09:49:24 2006 Date: Thu, 27 Apr 2006 01:50:05 GMT
Thu Apr 27 09:49:24 2006 Content-Type: text/html
Thu Apr 27 09:49:24 2006 Content-Length: 1121
Thu Apr 27 09:49:24 2006 Expires: Thu, 27 Apr 2006 01:50:05 GMT
Thu Apr 27 09:49:24 2006 X-Squid-Error: ERR_ACCESS_DENIED 0
Thu Apr 27 09:49:24 2006 X-Cache: MISS from HttpServer
Thu Apr 27 09:49:24 2006 Connection: close
Thu Apr 27 09:49:24 2006 有错误发生!
Thu Apr 27 09:49:24 2006 等待 5秒后重试
回复于:2006-04-30 08:35:16
引用:原帖由 thatday 于 2006-4-27 09:55 发表 已经搞定了。 通过下载分析,发现下载rmvb格式时,http头返回的下载类型为application/vnd.rn-realmedia,故在mime.conf里面将rmvb格式类型对应为application/vnd.rn-realmedia,就可在squid.conf里面添加acl控制 ...
acl rmvb req_mime_type video/mpeg reply_body_max_size 10240000 deny rmvb
[ 本帖最后由 fangjy2008 于 2006-4-30 10:54 编辑 ]
回复于:2006-05-01 09:47:56
顶,楼主,好贴啊.
回复于:2006-05-03 08:53:26
好贴,支持
回复于:2006-05-05 06:32:02
引用:原帖由 dingjeff 于 2006-5-3 08:53 发表 好贴,支持
:evil::evil::evil::evil:
回复于:2006-05-10 09:38:22
对一些p2p软件怎样做限制如:pplive 还有怎样限制用户用电骡下载
回复于:2006-05-17 14:15:21
reply_body_max_size 10240000 deny !你的组
那样你就可以自由了;-)
回复于:2006-05-24 20:55:18
引用:原帖由 zhouzhennb 于 2006-5-17 14:15 发表 reply_body_max_size 10240000 deny !你的组
那样你就可以自由了;-)
这样也不行的,你有成功吗? 只要有reply_body_max_size限制,所有代理用户全部限制了。:cry:
回复于:2006-05-25 10:51:20
前面的回答都相反了,应该是: reply_body_max_size 10240000 allow ! 你的组
回复于:2006-06-02 17:30:29
不错,都疏忽了,应该是 reply_body_max_size 10240000 allow ! 允许下载的组
或者 reply_body_max_size 10240000 deny 允许下载的组
回复于:2006-06-03 10:10:56
引用:原帖由 ISOneter 于 2006-5-10 09:38 发表 对一些p2p软件怎样做限制如:pplive 还有怎样限制用户用电骡下载
这个可以通过iptables加载ipp2p和layer7模块来实现
如
/sbin/iptables -t mangle -I POSTROUTING -m layer7 --l7proto bittorrent -j DROP
/sbin/iptables -t mangle -I POSTROUTING -m layer7 --l7proto fasttrack -j DROP
/sbin/iptables -t mangle -I POSTROUTING -m layer7 --l7proto edonkey -j DROP
/sbin/iptables -t mangle -I POSTROUTING -m layer7 --l7proto kugoo -j DROP
/sbin/iptables -t mangle -I POSTROUTING -m layer7 --l7proto xunlei -j DROP
/sbin/iptables -t mangle -I POSTROUTING -m layer7 --l7proto code_red -j DROP
/sbin/iptables -t mangle -I POSTROUTING -m layer7 --l7proto kameng -j DROP
/sbin/iptables -t mangle -I POSTROUTING -m layer7 --l7proto poco -j DROP
/sbin/iptables -t mangle -I POSTROUTING -m layer7 --l7proto baiduxiaba -j DROP
/sbin/iptables -t mangle -I POSTROUTING -m layer7 --l7proto 100bao -j DROP
/sbin/iptables -t mangle -I POSTROUTING -m layer7 --l7proto socks -j DROP
/sbin/iptables -t mangle -I POSTROUTING -m layer7 --l7proto nimda -j DROP
/sbin/iptables -t mangle -I POSTROUTING -m layer7 --l7proto live365 -j DROP
/sbin/iptables -A FORWARD -m layer7 --l7proto rtsp -m time --timestart 8:00 --timestop 12:30 --days Mon,Tue,Wed,Thu,Fri,Sat -j DROP
/sbin/iptables -A FORWARD -m layer7 --l7proto rtsp -m time --timestart 13:00 --timestop 21:30 --days Mon,Tue,Wed,Thu,Fri,Sat -j DROP
/sbin/iptables -A FORWARD -m layer7 --l7proto ftp -m time --timestart 8:00 --timestop 12:30 --days Mon,Tue,Wed,Thu,Fri,Sat -j DROP
/sbin/iptables -A FORWARD -m layer7 --l7proto ftp -m time --timestart 13:00 --timestop 21:30 --days Mon,Tue,Wed,Thu,Fri,Sat -j DROP
/sbin/iptables -A FORWARD -m ipp2p --edk --kazaa --bit -j DROP
/sbin/iptables -A FORWARD -p tcp -m ipp2p --ares -j DROP
/sbin/iptables -A FORWARD -p udp -m ipp2p --kazaa -j DROP
回复于:2006-11-13 15:44:50
为何要在mangle表里做限制?
回复于:2007-03-26 10:36:27
用dansguardian,别说电影,连mp3或有关网页都不给他开.
回复于:2007-03-26 10:53:55
加载ipp2p和layer7模块
这个如何加载?
回复于:2007-10-11 19:36:14
呵呵,不错`````````:em10: :em10:
|