Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3519593
  • 博文数量: 534
  • 博客积分: 11595
  • 博客等级: 上将
  • 技术积分: 5785
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-22 17:00
文章分类

全部博文(534)

文章存档

2015年(4)

2014年(27)

2013年(15)

2012年(38)

2011年(36)

2010年(85)

2009年(63)

2008年(142)

2007年(124)

分类: LINUX

2008-01-20 19:03:54

最近公司有人下载电影,严重影响上网速度,为杜绝此类情况再次发生,上面要求从技术手段上解决这个问题。
公司服务器用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:




原文链接:
转载请注明作者名及原文出处


阅读(1872) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~