基于LinuxIptables限制BT下载的研究

 
摘要:
    当前BT下载技术和软件飞速发展,给人们网上冲浪获取资源带来了极大的便 利, 但同时BT占用大量的网络带宽等资源也给网络和网络管理员带来了压力与负担。本文介绍一种利用Linux系统下的应用层 netfilter从协议上限制BT 下载。
 
    在 BT 应用频繁的今天,如何有效控制 BT 下载成为网络管理员急需解决的问题。 Cisco 3560 系列交换机利用 Class 从硬件过滤禁止 BT 下载,   而笔者在此介绍利用 Linux 系统下的应用层  netfilter 限制 BT 下载。为了使用应用层  netfilter 识别,封锁经过防火墙的 BT 数据流,首先需要对 BT 协议的运作有充分的了解。
 
禁止基于标准协议 BT 下载
一次常规的BT下载要经历一系列的过程。首先需要得到相应的.torrent文件,也就是BT种子文件,然后使用BT客户端软件进行下载。BT客户端首先解析.torrent文件得到Tracker地然后连接Tracker服务器。Tracker服务器回应下载者的请求,提供其他下载者(包括发布者的信息列表。下载者再据此连接其他下载者,根据.torrent文件,双方分别告知对方已有的块,然后下载者之间通过直接连接进行数据的上传和下载,交换对方没有的数据。在上述过程中,下载者和Tracker服务器的交互是通过H1-rP协议完成的,而且在下载过程中,下载者需要周期性地向Tracker登记, 以便Tracker能了解下载者的进度。下载者之间的连接是通过基于TCPBitTorrent对等协议完成的。
通过分析上述过程,要禁止这种BT下载可以从两个方面着手进行:
详情见附件