Redhat 9.0下限制P2P流量.doc_第1页
Redhat 9.0下限制P2P流量.doc_第2页
Redhat 9.0下限制P2P流量.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Redhat 9.0下限制P2P流量一、准备工作1、 下载iptables-1.3.5.tar.bz2、patch-o-matic-ng-20040621.tar.bz2、ipp2p-0.8.1_rc1.tar.gz、iproute2-ss050607.tar.gz。注:(1)这儿下载的代码经测试载Redhat 9.0下都是可以使用的;(2)较新的patch-o-matic-ng中已经没有了我们下面所需的CONNMARK模块。2、 解压iptables-1.3.5.tar.bz2、patch-o-matic-ng-20040621.tar.bz2、ipp2p-0.8.1_rc1.tar.gz、iproute2-ss050607.tar.gz到/usr/src目录下。(实际上可以把代码解压到任意目录)3、 Redhat 9.0配置如下:Eth0 192.168.1.215 网关指向192.168.1.2Eth1 10.0.0.1主机配置如下:Eth0 10.0.0.212 网关指向10.0.0.1二、不编译内核完全阻断P2P通信1、 进入ipp2p目录/usr/src/ipp2p-0.8.1_rc1。修改Makefile中的IPTABLES_SRC为IPTABLES_SRC=/usr/src/iptables-1.3.5,使IPTABLES_SRC指向iptables的目录。2、 进入iptables目录/usr/src/iptables-1.3.5。修改Makefile中的KERNEL_DIR为KERNEL_DIR=/usr/src/linux-2.4,使KERNEL_DIR指向内核源代码目录。3、 编译并安装iptables。iptables的默认安装目录为/usr/local/sbin/。4、 编译ipp2p。把编译好的libipt_ipp2p.so拷贝到/usr/local/lib/iptables/目录下。把编译好的ipt_ipp2p.o插入内核,insmod -f ipt_ipp2p.o。5、 测试。执行iptables -m ipp2p -help,若出现ipp2p的相关信息,并且用lsmod可以查看到ipp2p模块,表明ipp2p运行成功。6、 在NAT表中配置规则:iptables -t nat -A POSTROUTING -o eth0 -j SNAT -to-source 192.169.1.215。7、 在FILTER表中配置规则:iptables -A FORWARD -m ipp2p -ipp2p -j DROP。(当前的-ipp2p等价于-edk -dc -kazaa -gnu -bit -apple -winmx -soul -ares)经过如上的配置,可以完全阻断P2P的预连接,使得P2P完全无法通信。我用bitcomet 0.63进行测试,效果非常好,P2P通信流量一直为0。三、编译内核限制P2P流量1、 进入patch-o-matic-ng目录/usr/src/patch-o-matic-ng-20040621。iptables中P2P流量控制需CONNMARK模块支持,该模块在extra仓库中,运行如下命令来升级内核补丁。KERNEL_DIR=/usr/src/linux-2.4 IPTABLES_DIR=/usr/src/iptables-1.3.5 ./runme extra2、 运行该命令后会出现一个模块选择界面,界面有两个区域,一个给出相关的模块名、模块功能、用法和语法实例;另一个给出各种选项,如N/y/b/r./q/?,其中第一个为大写字母,表示缺省选项,n表示下一个模块,y表示确定,b表示上一个模块,q表示退出。首先应该确定当前的模块是否需要,不需要就按“N”键后回车,继续显示下一个模块的相关信息。当出现需要的模块时,按“Y”键确认。选择完所有需要的模块后,按“Q”键退出。3、 给内核打好补丁后,进入源代码文件所在目录/usr/src/linux-2.4,开始编译内核。4、 在make menuconfig时,在配置选项中必须选择Networking optionsIP:Netfilter ConfigurationConnection mark tracking support和CONNMARK target support两个选项。在Networking optionsQos and/or fair queueing中选中所需的队列规程和分类器,如CBQ packet scheduler、HTB packet scheduler对列规程,Firewall based classifier、U32 classifier等。5、 编译完成后用新内核启动。6、 删除系统默认安装的iptables:rpm -e lokkit-0.5-22 iptables-1.2.7a-27、 先按(二)中的方式修改Makefile,再编译安装iptables-1.3.5、ipp2p-0.8.1_rc1、iproute2-ss050607。8、 执行下面的脚本:#!/bin/bash#Limit Bandwidth of P2P#下面的命令清空所有的规则iptables F#下面的命令从CONNMARK目标中恢复标记iptables -t mangle -A PREROUTING -p tcp -j CONNMARK -restore-mark#下面的命令接收所有非0的标记包iptables -t mangle -A PREROUTING -p tcp -m mark ! -mark 0 -j ACCEPT#下面的命令将ipp2p连接标记为“1”iptables -t mangle -A PREROUTING -m ipp2p -ipp2p -j MARK -set-mark 1#下面的命令保存所有标记为“1”的包到CONNMARK目标中iptables -t mangle -A PREROUTING -p tcp -m mark -mark 1 -j CONNMARK -save-mark#注:TC只能控制网卡发送包的速率#下面的命令删除旧有队列tc qdisc del dev eth0 root#下面的命令将一个htb根对列绑定到网络设备eth0上,其编号为1:0tc qdisc add dev eth0 root handle 1: htb default 2#下面的命令建立根分类1:1,速率限制为256Kbittc class add dev eth0 parent 1: classid 1:1 htb rate 256Kbit ceil 256Kbit#下面的命令创建子分类1:2,其父分类为1:1,速率为200Kbittc class add dev eth0 parent 1:1 classid 1:2 htb rate 200Kbit ceil 256Kbit#下面的命令创建子分类1:3,其父分类为1:1,速率为56Kbittc class add dev eth0 parent 1:1 classid 1:3 htb rate 56Kbit ceil 256Kbit#下面的命令为子分类1:2建立过滤器,其中han

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论