由于ubuntu 9.10 的发布,SRT ubuntu源最近的流量可是飙得厉害~ 昨天一天的平均流量是 9.6MB/s ,算算一天就有800GB了。。。
更可恶的是,一分析日志,有一个“Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)”的User_Agent(据说是迅雷的),很是夸张,居然占了八成的流量,看我下面的日志分析:
$ tail -n 1000 /var/log/nginx/mirror.access.log | awk -F\" '{A[$(NF-1)]++}END{for(k in A)print A[k],k}' | sort -n | tail 3 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) 4 SAMSUNG-SGH-E250/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.0 (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html) 5 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322) 6 Ubuntu APT-HTTP/1.3 (0.7.20.2ubuntu6) 16 Mozilla/4.0 (compatible; MSIE 5.00; Windows 98) 18 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) 39 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0) 41 Ubuntu APT-HTTP/1.3 (0.7.23.1ubuntu2) 94 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ) 767 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727) |
于是,我不得不想办法禁掉了这个UA,不然也太影响访问了,最近有很多用户都出现访问不畅的状况了。但是网上这方面的资料还真不太好找,于是请教ubuntu-cn的一叶老大,终于找到办法了:
建立一个 /etc/nginx/agent.conf 内容如下(需要注意的是,空格和括弧需要使用“\”进行转义,这也是我摸索了好久得出的结论):
if ($http_user_agent ~ "Mozilla/4.0\ \(compatible;\ MSIE\ 6.0;\ Windows\ NT\ 5.1;\ SV1;\ .NET\ CLR\ 1.1.4322;\ .NET\ CLR\ 2.0.50727\)") { return 404; } |
然后在这个site的配置里include这个conf文件,比如 /etc/nginx/sites-enabled/ubuntu-mirror 里添加如下一行: include /etc/nginx/agent.conf;
lfeng
我很好奇这个是什么的User_Agent….
kangkang
迅雷V5.9,看样子很有必要专门维护一个UA列表,不过那样估计这些软件会更流氓。
为了这破玩意,在apache/lighttpd/nginx/squid上都做UA识别了。做源还好,可以搞成准入的,只允许apt/wget这些,做公共服务真是郁闷。
oldherl
以后可以要求网站用户必须使用网站指定的UA(就像是验证码)才能进入。
因为Firefox之类都能手动改UA,哈哈
bones7456
这个真是迅雷啊?nnd。。。
Xuander
迅雷邪恶的没办法说,我用别的下载一个4G的东西的用几天。迅雷到好5小时,上帝啊,这显然不是一个级别上面的BT更邪恶
muxueqz
哈哈,我用aria2c比迅雷还快……
TualatriX
我也很好奇,是IE 6.0不?
est
那个UA是迅雷。
土也
对,封杀迅雷。
oldherl
凡是出现MSIE的一律封掉就可以了
依云
支持!Ubuntu 的源要 IE 之辈掺和个啥?
muzuiget
同意封掉。
老犁
不查IP?这样一棒子打死,不把用户惹毛了才怪。
打击UA还是小心为上吧,除非逼不得已。
bones7456
查IP不管用,迅雷用户的IP都各不相同的。
nomyself
nginx有一些很好用的变量……
无限
以后下载整用户名和密码就是 如果某个用户把自己的用户名和密码给别人用 那就禁了他
base64 验证的那个就o 了
bones7456
这不可能啊,人家apt-get的时候,还让人家输密码不成?
kangkang
apt没有ua?抓下试试呗。
kangkang
APT的UA:
User-Agent: Ubuntu APT-HTTP/1.3 (0.7.23.1ubuntu1)
只允许这个吧,不过一般迅雷都是下ISO的,得另想办法。
bones7456
对,apt就是这个UA,但是浏览器也要能访问才好啊,不然出问题都不知道是不是源的问题了。
ubuntulover
骨头辛苦了!
upsuper
推荐一个听来的不错反迅雷的想法吧~
就是你弄个热门资源放自己网站上然后不公开地址(就是其他页面无法链入),然后用迅雷下一次,然后以后就跟踪这个文件的UA就行了~
bones7456
只根据UA恐怕阻止不了迅雷,你能保证以后它都老老实实发送自己的UA吗?
upsuper
我猜他总归不会发fx或cr的UA……
至于IE的……其实ban掉也是无所谓的我想……
shan
能否将MSIE限速2K。
bones7456
这个倒挺好的,但是怎么搞呢??我去找找看~
zerox
我看迅雷迟早会加入自定义UA功能……
druggo
UA不可靠啊。。。
bones7456
呵呵,不需要很可靠,够用就行~
DBLobster
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
装了 .Net 2.0 和 .Net 1.1 的 XP IE6 就是这个 UA.
真的…
一或九
我也想屏不敢屏。。。xp的ie6.。。的确是这个UA。。。。。
bones7456
呵呵,那也好办啊,不彻底屏蔽的话,就限速好了。
ManofPhysics
可以研究一下NginxHttpAccessKeyModule,他可以封杀迅雷。
monface
怎么我用这个无效呢
Zhaofeng Li
封UA没用的,谁知迅雷这个流氓以后会不会发随机UA?