作者mcsr0 (mcsr0)
看板P2PSoftWare
标题[新闻] 使用Iptables的功能扩展全面封杀P2P流量
时间Wed Aug 15 00:17:16 2007
http://0rz.tw/3f2WA
布时间:2007.07.18 06:35 来源:赛迪网 作者:skid
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/project ... ables-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
3. SourceForge的IPTABLES-P2P
下载位置:
http://sourceforge.net/projects/iptables-p2p
得到套装软体为: iptables-p2p-0.3.0a.tar.gz
三、版本选择的说明:
由於对P2P下载软体的限制主要是依靠ip2pp-0.8.0和iptables-p2p,所以选择iptables和
Linux内核版本均要兼顾他们的实际需求,这样主要是避免各种版本间的互相冲突,出现不
可预知的错误.
首先ip2pp-0.8.0,也是目前发布的最新稳定版本,从说明文档可以看到
发布者在以下版本已经测试通过:
-Linux-Kernels 2.6: 2.6.3, 2.6.4, 2.6.6
-Linux-Kernels 2.4: 2.4.18, 2.4.19, 2.4.20, 2.4.21, 2.4.22, 2.4.23, 2.4.26
-iptables (from netfilter.org) 1.2.7a, 1.2.8, 1.2.9, 1.2.11, 1.3.0, 1.3.1
再看iptables-p2p最新版本是0.30a,从相关文档资料中看到,最後更新日期大概是
2004/03/06 22:39:00,而且明确的看到在iptables 1.2.9下测试通过,对Linux内核的支援
2.4也支援2.6, 但没有明确哪个具体版本.
综合以上资讯笔者选了以上iptables1.2.9, kernel 2.4.20-8, 目的是避免以上两个套装
软体出现问题的可能性.
四、安装套装软体
1.首先当然是你自己安装好RedHat Linux 9.0, 这个我想非常简单, 主要在分区时新手的
问题多点,网上资料众多,随便拿个作为参考就可以了,如果比较懒的话就按Linux预先定制
安装就可以了!
2.登陆系统把两个套装软体放到适合的位置,然後解压缩
一般软体的包的源码都放在/usr/src下,我下载的套装软体都在这下面准备使用
#cd /usr/src
#tar xjvf iptables-1.2.9.tar.bz2
#tar zxvf ipp2p-0.8.0.tar.gz
#tar zxvf iptables-p2p-0.3.0a.tar.gz
3.升级IPTABLES
RedHat 9.0自带的iptables版本是.1.2.7a,所以先升级iptables到1.2.9
#cd /usr/src/iptables-1.2.9
#export KERNEL_DIR=/usr/src/linux-2.4
#export IPTABLES_DIR=/usr/src/iptables-1.2.9
#make BINDIR=/sbin LIBDIR=/lib MANDIR=/usr/share/man install
4.安装IPP2P套装软体
#cd /usr/src/ipp2p-0.8.0
#make
#cp libipt_ipp2p.so /lib/iptables
#insmod ipt_ipp2p.o
5.安装iptables-p2p套装软体
#cd /usr/src/iptables-p2p-0.3.0a
#cp –a /usr/src/iptables-1.2.9/include/* /usr/include
#make
#cp kernel/ipt_p2p.o /lib/modules/2.4.20-8/kernel/net/ipv4/netfilter
#cp iptables/libipt_p2p.o /lib/iptables/
所有安装工作完成了,是不是很简单!
五、功能简介
1.ipp2p的使用说明
#iptables -m ipp2p –help
关於ipp2p段的说明:
IPP2P v0.8.0 options:
--ipp2p Grab all known p2p packets
--edk [TCP&UDP] All known eDonkey/eMule/Overnet packets
--dc [TCP] All known Direct Connect packets
--kazaa [TCP&UDP] All known KaZaA packets
--gnu [TCP&UDP] All known Gnutella packets
--bit [TCP&UDP] All known BitTorrent packets
--apple [TCP] All known AppleJuice packets
--winmx [TCP] All known WinMX
--soul [TCP] All known SoulSeek
--ares [TCP] All known Ares
Note that the follwing options will have the same meaning:
'--ipp2p' is equal to '--edk --dc --kazaa --gnu --bit --apple --winmx --soul
--ares'
IPP2P was intended for TCP only. Due to increasing usage of UDP we needed to
change this.
You can now use -p udp to search UDP packets only or without -p switch to
search UDP and TCP packets.
See README included with this package for more details or visit
http://www.ipp2p.org
Examples:
iptables -A FORWARD -m ipp2p --ipp2p -j MARK --set-mark 0x01
iptables -A FORWARD -p udp -m ipp2p --kazaa --bit -j DROP
iptables -A FORWARD -p tcp -m ipp2p --edk --soul -j DROP
2.iptables-p2p的使用说明
#iptables -m p2p –help
P2P段的说明:
P2P match v0.3.0a options:
--p2p-protocol [!] protocol[,...]
--p2p ...
match application-layer protocol
Valid p2p protocols:
fasttrack
gnutella
edonkey
dc
bittorrent
openft
OK,一切准备就绪,就等你使用了,有专门识别包类型的控制(ipp2p),也有专门对准协议的
控制(iptables-p2p),一切允许与否就看你的几条命令了!
注:以上所有过程本人都经过测试通过,没发现任何问题,本人初次原创,不足之处希望大家
谅解,如果能对一些朋友有帮助,在下非常荣幸!另外本人参考过网上多篇文章,再此对他们
表示感谢!
後记:写这篇文章的目的并不是要求所有网路管理人员全部遮罩P2P下载软体,本人也是P2P
软体使用的爱好者,但是使用软体时从来都是先设置连接数量和下载速度限制,以免影响别
人的网路使用.由於深深感受到不加限制使用P2P下载软体对整个网路系统性能造成的严重
影响,所以建议大家能在使用P2P下载软体时考虑网路环境,先设置连接数量和下载速度限
制.同时也建议网路管理同行们根据情况到最後再考虑是否完全遮罩掉P2P.
给文章原文出处
http://jammyse.blogchina.com/5444126.html,那我的BLOG,开了很久了,
内容比较少,欢迎大家去参观啊!
(责任编辑:淩云通)
--
___ ____ ◤\◢\
◢\__ __ ◢◤\_ ◤\ ◢◤\__ ◤\ ◢\◢◤\ ◢◤\\/◢◤\
◢◤\◢◤\◢◤\ ◢◤\/ \/ \_\__ \/ ◢◤\\_\/ ◢◤\/ ◢◤\/
◢◤\◢◤\◢◤\/ ◢\/_◤\ ◤\__◢◤\ ◢◤\/ ◢\/ ◤\_\/
\_\/\_\/\_\/ \_\___\/ \/__\_\/ \_\/ \_\___\/ ψRockMetal
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 125.231.4.163