当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 26 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : 将迅雷拒于Linux服务器门外
帖子发表于 : 2009-10-13 22:28 
头像

注册: 2009-02-24 13:07
帖子: 40
送出感谢: 0 次
接收感谢: 0 次
首次发贴,如有考虑不周之处还请版主指出。

本文最先发布在我自己的博客上,不过考虑到那边人少,看到的人不多,为了让更多人知道如何对付迅雷,就转到这里来了。此外,为了避免广告嫌疑,我把原文中的一些不太重要的自家链接和说明都去掉了。

发此文的另一个目的是,希望有牛人能看到libantixunlei并为pureftpd之外的其他FTP服务器软件加上反迅雷的功能。
----------------------------------

在Apache上屏蔽迅雷

在 HTTP协议上识别迅雷是通过迅雷的用户代理(User Agent)字串来进行识别的。我对我自己的网站的IIS访问日志以及一个评分系统的评分记录里面记录的用户字串进行了分析,之后发现迅雷使用的几个用户代理应该是唯一的,在访问日志中,除了下载文件的记录,只发现了极少量使用了和迅雷相同的用户代理的记录,这可能是个别用户出于杂七杂八的目使用迅雷下载普通网页而留下的日志。

有了这个分析结果,就可以保证通过用户代理来识别迅雷不会误杀普通用户了。但通过用户代理来识别迅雷有一个问题,如果以后迅雷把自己的用户代理改成和IE的用户代理一样的话怎么办?没关系,至少到现在为止(09年国庆),我还没有发现迅雷做此举动,等迅雷有动作了再想对策也不迟。另外,这里还有一个“脏数据”的方法(题外话,链接删掉了),如果迅雷很不厚道地把自己伪装成IE的话,我们就只好也很不厚道地使用脏数据方法先反击一下迅雷。虽然脏数据对屏蔽迅雷没有什么帮助,至少可以出出气,让非最新版迅雷用户下载不到正确的内容,就这点应该够迅雷受的了,用户体验大受打击,我想大多数用户都不会追着使用最新版的。

于是,我在废话里面说了,使用Apache的mod_rewrite模块就可以很容易地屏蔽迅雷,因为这个模块的重写规则可以将用户代理作为判断条件。我们只要把用户代理和迅雷是一样的连接请求重定向到一个错误页面,或者干脆直接返回403,就可以在HTTP协议上屏蔽迅雷了。

到目前为止,我们观察到的迅雷使用的用户代理有以下几个:
代码:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; )     
Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.0)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 3.5.20706)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)

放心,根据网站访问日志和评分系统的日志,这些用户代理应该都是迅雷特有的,在.htaccess文件里面把带有这些用户代理的请求重定向到错误页面就可以了。

当然对于普通网页来说,是没有必要屏蔽迅雷的,所以我们只需要屏蔽访问大文件的请求就可以了,于是.htaccess里面的内容就像下面这样:
代码:
RewriteEngine On

#Anti Thunder
RewriteCond  %{HTTP_USER_AGENT}  ^Mozilla/4\.0\ \(compatible;\ MSIE\ 6\.0;\ Windows\ NT\ 5\.1\)$  [NC,OR]
RewriteCond  %{HTTP_USER_AGENT}  ^Mozilla/4\.0\ \(compatible;\ MSIE\ 6\.0;\ Windows\ NT\ 5\.0\)$  [NC,OR]
RewriteCond  %{HTTP_USER_AGENT}  ^Mozilla/5\.0\ \(compatible;\ MSIE\ 6\.0;\ Windows\ NT\ 5\.0\)$  [NC,OR]
RewriteCond  %{HTTP_USER_AGENT}  ^Mozilla/4\.0\ \(compatible;\ MSIE\ 6\.0;\ Windows\ NT\ 5\.1;\ \)$   [NC,OR]
RewriteCond  %{HTTP_USER_AGENT}  ^Mozilla/4\.0\ \(compatible;\ MSIE\ 6\.0;\ Windows\ NT\ 5\.0;\ \.NET\ CLR\ 3\.5\.20706\)$  [NC,OR]
RewriteCond  %{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\)$  [NC]
RewriteRule  ^.*\.(gif|jpg|bmp|zip|rar|exe|mp3|swf)$   /   [NC,F] 

如果你想制定更复杂的重写规则,可以参考Apache手册中mod_rewrite的部分,见: http://lamp.linux.gov.cn/Apache/ApacheM ... write.html

对于其他Web服务器软件,多多少少都能提供一些可将用户代理作为判断条件的网址重写模块或插件,参照上面Apache的设置方法对这些软件进行设置,都能达到屏蔽迅雷的效果。

在FTP协议上反迅雷

在 FTP上反迅雷就比较麻烦,这需要获得每一个FTP会话的会话唯一标识和客户端发送的每一条FTP指令。因为这样的需求很少见,所以Linux下的FTP 软件很少有提供相应的接口供我们使用。不过还好,Linux下的FTP软件大多都是开源的,我们可以自己修改源码。于是我就写了 libantixunlei,然后针对不同的FTP软件,就套用libantixunlei来修改其源码,然后编译安装就可以了。

因为要修改FTP服务器软件的源码,这对技术的要求就比较高了,不见得每个服务器管理员都会C语言,所以对大多数服务器管理员来说目前还是只能等待别人为FTP软件写插件(如果支持的话),或者发布经过修改的FTP服务器软件源码。

于是,如果你想为某个FTP软件加入反迅雷的功能,请访问 http://code.google.com/p/libantixunlei 。如果对libantixunlei的用法不太清楚的话,请给我发邮件,我会告诉你FTP协议上屏蔽迅雷的原理和应该使用libantixunei的哪些接口来识别迅雷。

不过先不要失望,现在已经有了可以反迅雷的Linux上的FTP服务器软件了,在我写这篇文章的时候我已经给pure-ftpd 1.0.22版本成功地打上了反迅雷补丁,补丁文件请到: http://code.google.com/p/libantixunlei/downloads/list 去下载,下载回来以后给纯净的pure-ftpd-1.0.22版本打上这个补丁(进入pureftpd/src目录后使用patch命令),然后编译安装就支持反迅雷了。对于其他版本的 pure-ftpd我没有试验过是否能使用这个补丁,不知道能否正常使用。另外在此提醒一下没有自己编译安装过软件的管理员,pureftpd的一些功能需要在./configure的时候加上一些参数才能使用,具体请看源码根目录下面的说明文件,偷懒的话可以 ./configure –with-everything,不过印象中官方并不推荐使用这个参数。

另外,因为我很懒,所以把一些特性写死在程序里面了,是否屏蔽使用迅雷的IP和屏蔽IP的时间是写死在程序里面的,要改变的话只能重新编译。这两个配置在libantixunlei.h文件里面可以修改。

libantixunlei 使用了pthread库,而在一些平台上编译的时候如果要使用pthread库需要显式指定-lpthread参数,我在PBS服务器上编译的时候没有问题,但是在自家的一台电脑上编译的时候却出错了。如果编译失败的话,点击这个地址查看处理方法: http://code.google.com/p/libantixunlei/ ... anYiShiBai


_________________
叫我greensea吧 [@lvhai]

虽然现在这个用户名是midoriumi,但实际上是我把自己注册的greensea的密码给忘记了,于是只好再注册一个midoriumi,字面意思也和greensea一样是緑海(みどりうみ)。所以,叫我greensea或GS吧。


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 将迅雷拒于Linux服务器门外
帖子发表于 : 2009-10-13 22:30 
头像

注册: 2008-12-13 19:39
帖子: 13284
地址: 物华天宝人杰地灵
送出感谢: 1
接收感谢: 6
:em11 强贴啊,必顶之,学习之。 :em11
打击流氓是件好事,支持楼主首贴即成精华。 :em09
来U坛发贴你是来对了,很快本贴会砌成高楼。 :em05


_________________
行到水穷处,坐看云起时。
海内生明月,天涯共此夕。
--------------------吾本独!


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 将迅雷拒于Linux服务器门外
帖子发表于 : 2009-10-13 22:34 
头像

注册: 2008-04-07 17:36
帖子: 4010
地址: 泰安人在阜新
送出感谢: 0 次
接收感谢: 0 次
还是处贴呢

但是就是个牛贴

得顶


_________________
宇宙数学物理 sssssssss Ubuntu 桌面培训 sssssssss 问打包的问题之前先看
和我一样的新手请看,我看过了,腰不酸了,腿不疼了,上楼也有劲了
想去IRC的点这里——一个比QQ群好N多的东西


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 将迅雷拒于Linux服务器门外
帖子发表于 : 2009-10-13 22:38 
头像

注册: 2007-10-18 17:40
帖子: 1006
送出感谢: 0 次
接收感谢: 0 次
个人电脑,正在等牛人的amule 反迅雷开源补丁。


_________________

千帖户,享有论坛特权!


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 将迅雷拒于Linux服务器门外
帖子发表于 : 2009-10-14 0:03 

注册: 2009-08-02 7:44
帖子: 200
地址: 圣彼得堡
送出感谢: 6
接收感谢: 3
:em11 :em07 :em12


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 将迅雷拒于Linux服务器门外
帖子发表于 : 2009-10-14 3:14 
头像

注册: 2007-01-06 21:00
帖子: 920
送出感谢: 2
接收感谢: 0 次
wzssyqa 写道:
还是处贴呢

但是就是个牛贴

得顶

不会是哪个高人的马甲


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 将迅雷拒于Linux服务器门外
帖子发表于 : 2009-10-14 9:31 

注册: 2008-11-13 16:03
帖子: 817
送出感谢: 0 次
接收感谢: 0 次
好帖,牛贴,顶上去


_________________
HP ProBook4321s,I3+ATI
OS : Fedora + Debian

http://box-look.org/


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 将迅雷拒于Linux服务器门外
帖子发表于 : 2009-10-14 9:34 
头像

注册: 2008-11-21 20:26
帖子: 36913
送出感谢: 1
接收感谢: 36
再次帮忙手动置顶 :em11


_________________
讨厌我的人可以试着点一下
浏览全部ubuntu技巧


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 将迅雷拒于Linux服务器门外
帖子发表于 : 2009-10-14 13:12 
头像

注册: 2008-04-07 17:36
帖子: 4010
地址: 泰安人在阜新
送出感谢: 0 次
接收感谢: 0 次
princelai 写道:
wzssyqa 写道:
还是处贴呢

但是就是个牛贴

得顶

不会是哪个高人的马甲

应该不是,一般马甲的处贴都水了


_________________
宇宙数学物理 sssssssss Ubuntu 桌面培训 sssssssss 问打包的问题之前先看
和我一样的新手请看,我看过了,腰不酸了,腿不疼了,上楼也有劲了
想去IRC的点这里——一个比QQ群好N多的东西


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 将迅雷拒于Linux服务器门外
帖子发表于 : 2009-10-14 14:36 
头像

注册: 2007-09-10 20:20
帖子: 1352
地址: 南京
系统: Debian
送出感谢: 0 次
接收感谢: 0 次
amule什么时候能antixulei呢


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 将迅雷拒于Linux服务器门外
帖子发表于 : 2009-10-14 14:41 

注册: 2008-01-09 22:41
帖子: 18311
送出感谢: 0 次
接收感谢: 6
woaiwojia 写道:
amule什么时候能antixulei呢

吸血雷真讨厌!

支持lz!处女贴即成为精华! :em09

继续加油,好好干!:em11


页首
 用户资料  
 
12 楼 
 文章标题 : Re: 将迅雷拒于Linux服务器门外
帖子发表于 : 2009-10-14 16:09 
头像

注册: 2007-10-23 12:54
帖子: 1688
送出感谢: 0 次
接收感谢: 13
%70%32%73%70%2E%64%6C%6C


页首
 用户资料  
 
13 楼 
 文章标题 : Re: 将迅雷拒于Linux服务器门外
帖子发表于 : 2009-10-14 18:48 
头像

注册: 2008-07-21 9:44
帖子: 2371
地址: 深圳
送出感谢: 0 次
接收感谢: 0 次
强贴,收藏学习 :em11


_________________

My blog


页首
 用户资料  
 
14 楼 
 文章标题 : Re: 将迅雷拒于Linux服务器门外
帖子发表于 : 2009-10-14 19:00 
头像

注册: 2008-02-24 14:15
帖子: 693
地址: 江苏
系统: Ubuntu
送出感谢: 17
接收感谢: 0 次
这么NB


_________________

怀念以前的老台式机。可惜现在租的地方没条件用了。目前只能用笔记本和手机了。


页首
 用户资料  
 
15 楼 
 文章标题 : Re: 将迅雷拒于Linux服务器门外
帖子发表于 : 2009-10-14 19:38 
头像

注册: 2009-05-13 14:31
帖子: 449
送出感谢: 0 次
接收感谢: 0 次
:em11 :em11 :em11 :em11


_________________
代码:
御风而行


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 26 篇帖子 ]  前往页数 1, 2  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译