编者按:
BT下载正给越来越多的企业办公带来危害,而公众网、电信网中的BT下载,同样也正在吞噬着运营网络带宽。一旦出现第一颗“种子”(下载源),大量的BT用户就会跟进,形成大规模的BT下载网络。与点到点不同的是,这种“群体生存”网络,虽然体现了互联网的自由,但是同样也反映出互联网的无序。而当这种无序性扩散到企业网和电信网中,则变成无法容忍的干扰。
BT全名为Bit Torrent,是一个P2P软件,与传统FTP、HTTP等下载方式不同,使用BT的人数越多,速度越快。传统的FTP、HTTP、PUB是把文件由服务器端传送到客户端,这样会出现一些问题:用户数量的增多要求高带宽和服务器的高性能,也会影响到服务器的稳定性,因此很多服务器都会有用户人数的限制、下载速度的限制,这样就给用户造成了诸多的不便。而BT从根本上解决了这个问题,BT采用的是一种类似传销的方式来达到共享,在下载的同时,也在为其他用户提供上传,所以不会随着用户数的增加而降低下载速度。使用非常方便,其特点简单地说就是:下载的人越多,速度越快。
常用的BT软件有BitTorrent、PTC、Shareaza、BitTorrent++等。
● BitTorrent是一个多点下载的源码公开的P2P软件,使用非常方便,就像一个浏览器插件,很适合新发布的热门下载。
● PTC(Personal Torrents Collector)是目前 BitTorrent下载用户端里最好的软件之一,PTC的多线程能力使用户能够批量更快地下载和上传资源。
● Shareaza集合了eDonkey、Guntella和BT等流行P2P软件的特点,并可以用于HTTP、FTP下载,具有优秀的界面、简洁的操作以及极强的可制定性。
● BitTorrent++在功能上比BitTorrent有很大的改进,也更为人性化,弥补了BitTorrent过于简单缺乏微调的缺陷,尤其是共享方面的功能。如果中途关闭了BitTorrent++,只要再次打开程序,就会继续进行原来的下载,不用像BitTorrent的续传那么麻烦。
这些BT下载软件以其独特的优势受到广大用户的喜爱,不过,麻烦也随之而来:如果多个用户同时使用BT进行下载,会占用大量网络带宽,严重影响其他用户的正常工作。在一些企业的局域网、学校的校园网、运营商的城域网中,都已经出现了BT滥用网络资源的情况,影响到其他正常业务的开展。因此,在一些环境下完全有必要严格限制用户的BT下载流量或完全禁止BT下载。总的来说,有以下七种最直接的方式可用。
限制浏览BT网站
BT网站很多,但考虑到BT下载的特点:下载的人数越多,速度越快;Seed越多,速度越快。只有比较热门BT网站的Torrent文件下载的人才会比较多,一般的BT网站去的人就比较少,下载的人数也少,除非他能忍受每秒几K的速度。 因此针对比较热门的BT网站,在安全网关上配置URL过滤规则,之后,在出接口上启用过滤Http_Filter功能,禁止对它们的访问即可。
禁止访问Tracker服务器
Tracker是指运行于服务器上的一个程序,这个程序能够追踪到底有多少人同时在下载同一个文件。客户端连上Tracker服务器,就会获得一个下载人员 的名单,据此BT会自动连上别人的机器进行下载。一般对tracker服务器的访问以HTTP的形式进行。
如果企业网络的网关具有图形管理日志,则可以查询到关于HTTP信息的所有记录,如果有BT下载,则在日志中发现相应的HTTP报文,根据报文内容可以得到Tracker服务器信息,然后可以在设备中配置规则,禁止内部用户访问该服务器。
Tracker服务器的数量应该远少于热门BT网站的数量,很多网站都是转的其他网站的Torrent,如果可以找出这些Tracker服务器的地址,这是一种非常有效的方法。利用天清汉马多功能安全网关,根据查询日志可以很容易找到Tracker服务器。
封闭BT下载端口
解决BT对局域网的危害,最彻底的方法是不允许进行BT下载,BT一般使用TCP的6881~6889的端口,网络管理员可以根据网络流量的变化进行判断,在网关中将特定的种子发布站点和端口封掉,在BT下载软件中的Track中可以获得这些信息;但是现在大多数BT软件可以修改端口号,因此网管可以根据实际情况,在不影响正常业务的情况下尽可能将封闭的端口范围扩大,把一些特定的种子发布站点和端口进行封闭。
限制用户带宽
BT之所以会危害到局域网,是因为它占用了大量网络带宽。因此,限制每个用户使用的网络带宽,可以明显缓解BT对网络的危害;同时对于一些运营性网络,完全禁止BT使用是不合理的,限制每个BT的使用带宽就成为一个比较好的选择。网络管理员可以通过一些管理软件或者网络硬件配置,针对应用流进行较细粒度的速率限制,例如将BT用户下载的优先级限制为5(0最高,7最低),带宽限制为64Kbps。这样可以确保BT软件使用的同时不会影响其他业务的开展。
限制最大连接数
在使用BT软件时,下载者会周期性地向tracker登记,使得tracker能了解它们的进度,下载者之间通过直接连接进行数据的上传和下载,这种连接使用的是 BitTorrent 对等协议,它基于TCP。因此网络管理员可以针对这些特点,对TCP最大连接数进行控制,从而达到控制BT对网络带宽的占用。
使用HTTP代理对应用层协议进行过滤
当BT客户端下载时,必须进行Tracker查询,Tracker通过HTTP的GET命令的参数来接收信息,而响应给对方(下载者)的是Bencoded编码的消息。在HTTP请求报文中,携带了BT的特征值 User-Agent:BitTorrent。
网络管理员针对该情况,可以通过一些安全管理设备以及流量管理设备,甚至网络管理系统软件,过滤特定的应用层数据包(如HTTP数据包),然后根据BT数据包中的关键字(BitTorrent),从HTTP数据包中过滤BT数据包(如图1所示)。
图1 使用HTTP 代理方式过滤BT
阻断BT流
现在还有一些BT软件不通过HTTP来获取Peers列表,而是采用TCP/UDP协议,但其BT流中还是包含“BitTorrent”特征码;如果网络设备中具有能够针对BT流中包含的“BitTorrent”特征码进行识别的产品,则进行BT阻断或限制其带宽就容易得多了(如图2所示)。
图2 特征码流量识别BT
BT是什么?
BT正式的名称叫“BitTorrent”(被国内网友昵称为“变态下载”),是一种多点共享协议和软件,由美国加州一名叫Bram Cohen的程序员开发出来。
BitTorrent专门为大容量文件的共享而设计,它采用了一种有点像传销的工作方式。
BT首先在上传者端把一个文件分成了很多部分,用户甲随机下载了其中的一些部分,而用户乙则随机下载了另外一些部分。
这样甲的BT就会根据情况(根据与不同电脑之间的网络连接速度自动选择最快的一端)到乙的电脑上去拿乙已经下载好的部分,同样乙的BT就会根据情况去到甲的电脑上去拿甲已经下载好的部分,这样不但减轻了服务器端的负荷,也加快了双方的下载速度。
实际上每个用户在下载的同时,也在作为源在上传(别人从你的电脑上拿那个文件的某个部分)。这种情况有效的利用了上行的带宽,也避免了传统的FTP大家都挤到服务器上下载同一个文件的瓶颈。而加入下载的人越多,实际上传的人也多,其它用户下载得就越快,BT的优势就在这里体现出来。
和通常的FTP、HTTP下载不同,使用BT下载不需要指定服务器,虽然在BT里面还是有服务器的概念,但下载的人并不需要关心服务器在哪里。只有发布原始共享文件的人才需要了解。
提供BT的服务器称为Tracker,把文件用BT发布出来的人需要知道该使用哪个服务器来为要发布的文件提供Tracker。
由于不指定服务器,BitTorrent采用BT文件来确定下载源。BT文件后缀名为torrent,容量很小,通常是几十K的样子,这个文件里面存放了对应的发布文件的描述信息、该使用哪个Tracker(记录下载用户信息的服务器)、文件的校验信息等。BT客户端通过处理BT文件来找到下载源和进行相关的下载操作。
BT把提供完整文件档案的人称为种子(SEED),正在下载的人称为客户(Client),某一个文件现在有多少种子多少客户是可以看到的,只要有一个种子,就可以放心的下载,一定能抓完。当然,种子越多、客户越多的文件抓起来的速度会越快。
如果发现种子数为0,那么就不要去尝试了。通常来说,至少有一个种子,当下载的人多了起来,通常做种子的人也会随之增加,下载速度也就越快。当你下载完成后,如没有选择关闭,其它人就可以从你这里继续下载。
BitTorrent目前最新的版本是3.3,具有跨平台的各种版本。