使用iptables的功能扩展全面封杀P2P流量
P2P下载软件这几年的突然兴起,受到大部分网友的异常欢迎.确实,有了P2P下载软件,网络的资源共享从某种程度上得到了进一步提升,因为资料容量的下载上限得到了很大的提高,在以前看来,下载一个1G以上的文件,无论你的网络环境如何,相信对绝大多数人来说那肯定是一个噩梦,但是有了P2P下载软件(BitTorrent,EMule,EDonkey等)和众多资源的支持,下载3G左右的文件已经是非常的轻松,看到P2P资源站点上放的那么多50-100G多(比如有人把国家地理100多张DVD共享:))的下载资源,我想很多网友已经见识过了P2P下载的能力.但是这一切对任何一个网络管理人员来说并不是一件值的高兴的事情.
任何事物的发展都有他的另一面,撇开各种什么版权等法律问题的因素不说,就P2P下载软件的对网络性能的影响来说,这几年一直就是被吵的沸沸扬扬.P2P软件最初兴起时,笔者曾看到过有报纸整版专页讨论P2P下载软件的是是非非,重庆电信为此曾经专门屏蔽了所有用户的P2P下载软件而引发了大量用户的愤怒.的确,由于P2P下载软件设计的技术原理,如果普通用户为了追求下载速度,而不加限制的使用,那么对所在网络出口性能的影响是灾难性的, 很多人会感觉网络速度和以前相比变的非常慢,严重时候网络甚至会出现断断续续的现象,网络管理人员在出口处爪包,回看到一个P2P下载软件运行的电脑上保持着数量大的惊人的连接,怎么办?封工作端口?P2P下载软件设计者在不断升级过程中好象意识到了这点,他们已经可以在使用者的设置下,是软件工作在任意端口,甚至工作时随机选择端口!封资源站点的IP?P2P的资源站,除了主要的外,数量多的惊人,而且一个站点也可能有很多工作IP,同时可能有新的资源站点出来!报告行政部门开了他?更直接去拔了该用户的电脑网线?_ _!使用具有限制P2P下载软件和限制单流量等市场产品能解决问题,你向BOSS递交请求采购某某产品,预算X万元?BOSS会不解的看着你的!其实并不是每个公司都具备这些条件, 所以始终感觉以上这些都不是解决实际问题的恰当方法,如果有一种价格低廉,适合各种应用环境灵活的解决方法就好了!于是笔者想起了Linux….
Linux真是好东西啊!Linux系统不但稳定,平台相对安全,而且还是开放源代码且是免费的,其中的iptables更是功能强大,所以笔者公司一直在用他做公司的内部网关, 并通过iptables 的设置做一些安全方面的初步设定.于是从网上查询iptables资料,呵呵,很多网友已经做过了相关的尝试,并且由于P2P在网络上的影响,使很多Linuxer们开发出了相关的patch,专门来应对P2P对网络性能的不良影响,通过研究网上的绝大多数资料,看到很多种解决方法,见的最多的是使用netfilter的patch-o-matic-ng补定包,打上ipp2p的补丁,然后再编译netfilter,还有就是先编译内核再结合多种软件包再来完成这种功能等,所有的方法有一点是相同的,就是都必须先打上补丁后,要重新编译内核,然后才能使功能得的扩展,暂不说众多的补丁如何正确的应用和重新编译内核步骤的纷杂,稍有不熟悉内核编译或者补丁应用就会造成有版本冲突,致使整个过程失败.笔者使用网上的很多方法,反复测试,最后还是不能完全成功,总是有这样那样的错误,冲突!经过了约一周的反复测试,和受到网上各位大侠的启发,终于发现了一种更简单的方法可以完全实现对P2P流量的完全控制,该方法最大的特点是不用任何重新编译内核和模块.
一.测试工作环境:
RedHat Linux 9.0
内核版本:2.4.20-8
二.需要的软件包:
1.Netfilter的IPTABLES 1.2.9
下载位置: http://www.netfilter.org/projects/iptables/files/iptables-1.2.9.tar.bz2
得到软件包为: iptables-1.2.9.tar.bz2
2. IP2PP 0.80
下载位置: http://www.ipp2p.org/downloads/ipp2p-0.8.0.tar.gz
得软件包为: ipp2p-0.8.0.tar.gz
