登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

飞哥的技术博客

世上无难事,只怕有心人!

 
 
 

日志

 
 
 
 

squid限制下载文件大小和限制下载电影问题  

2009-08-22 13:27:56|  分类: Linux |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 

squid限制下载文件大小和限制下载电影问题

2009-06-24 17:22

--------------------------------------------------------------------------------

 

最近公司有人下载电影,严重影响上网速度,为杜绝此类情况再次发生,上面要求从技术手段上解决这个问题。

公司服务器用linux作为网关,通过squid+iptables透明代理上网,也有做QoS流量限制,但仍然有人在流量被限制的情况下开多线程下载电影,所以此次准备从squid代理入手,限制下载电影。

以下是squid.conf部分代码

 

CODE:[Copy to clipboard]#用户分类

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

其中

 

CODE:[Copy to clipboard]acl UPLIMIT req_header Content-Length [5-9][0-9]{5} [0-9]{7,}

是参考了

http://www.squid-cache.org/mail-archive/squid-users/200508/0571.html

理想中,应该能实现限制超过10M大小的文件下载,并限制下载电影类文件。但是实际上并没有实现,电影照样能下载。

另外,通过

 

CODE:[Copy to clipboard]acl download urlpath_regex -i \.mp3$ \.avi$ \.rmvb$ \.rm$ \.ra$ \.ram$ \.mpe$ \.smi$

限制下载此类文件之后,http://www.xyz.com/movie/test.rmvb可以限制,

但http://www.xyz.com/movie/test.rmvb?cc638e95ce56696a7107eb4acccaa308此类下载则无法限制。

这是为何?

请有经验的兄弟帮忙分析一下:)

 

另外,在squid的mime.conf里面,对于rmvb格式文件,应该如何写?

 

CODE:[Copy to clipboard]\.rmvb$         video/mpeg

还是

 

CODE:[Copy to clipboard]\.rmvb$         application/vnd.rn-realmedia

已经搞定了。

通过下载分析,发现下载rmvb格式时,http头返回的下载类型为application/vnd.rn- realmedia,故在mime.conf里面将rmvb格式类型对应为application/vnd.rn-realmedia,就可在 squid.conf里面添加acl控制下载此类文件了。但关于下载文件大小限制,还存在问题,有兄弟实现了请告诉我一声:)

附flashget下载日志

 

CODE:[Copy to clipboard]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: http://music.stedu.net/liuxingyinyue.htm

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秒后重试

QUOTE:

原帖由 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

QUOTE:

原帖由 fangjy2008 于 2006-4-30 08:35 发表

acl rmvb req_mime_type video/mpeg

reply_body_max_size 10240000 deny rmvb

非常感谢。

不过这样好像也并不能只阻止电影文件的下载,其他的都一并阻止了。

其实

acl rmvb req_mime_type video/mpeg

这句好像是多余的了,直接用

reply_body_max_size 10240000 deny

任何大于10M的连接都无法下载。

 

CODE:[Copy to clipboard]ERROR

The requested URL could not be retrieved

--------------------------------------------------------------------------------

While trying to retrieve the URL: http://www.lzgd.net/vcdmulu/%E5%96%9C%E5%89%A7%E7%89%87/%E6%B7%B1%E5%85%A5%E6%95%8C%E5%90%8E%E6%90%9E%E6%90%9E%E9%9C%87/%E6%B7%B1%E5%85%A5%E6%95%8C%E5%90%8E%E6%90%9E%E6%90%9E%E9%9C%87.rm?

The following error was encountered:

The request or reply is too large.

If you are making a POST or PUT request, then your request body (the thing you are trying to upload) is too large. If you are making a GET request, then the reply body (what you are trying to download) is too large. These limits have been established by the Internet Service Provider who operates this cache. Please contact them directly if you feel this is an error.

Your cache administrator is root.

--------------------------------------------------------------------------------

Generated Fri, 05 May 2006 03:46:06 GMT by Cachegate (squid/2.5.STABLE12-20051024)

不过这样下来,自己也不能下载10M以上的文件了,是不是只有让自己的80不走squid?还是通过squid让自己绕开这个ACL?

引文来源  squid限制下载文件大小和限制下载电影问题_刘晟's Blog 记录LINUX成长之路 | 认真 快速 责任感 | 每天进步1% 不断超越自我

  评论这张
 
阅读(618)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018