日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

怎樣用Netfilter/IPtables控制P2P流量

一則報(bào)道說(shuō)盡管某寬帶公司現(xiàn)有技術(shù)可以容納的網(wǎng)絡(luò)用戶容量為400至600萬(wàn)用戶,可是目前,在容納了45萬(wàn)用戶的情況下,網(wǎng)絡(luò)已經(jīng)擁擠不堪,時(shí)常出現(xiàn)斷網(wǎng)情況,一到上網(wǎng)高峰,網(wǎng)速就會(huì)急劇下降 。
為何網(wǎng)絡(luò)會(huì)如此擁擠不堪?這是因?yàn)樽詮某霈F(xiàn)諸如電驢、Kazaa、BT等P2P軟件之后,海量的數(shù)據(jù)文件(如大容量文件交換、視頻文件下載等)逐漸占據(jù)了大部分的網(wǎng)絡(luò)帶寬 。P2P這一新應(yīng)用給用戶帶來(lái)了前所未有的方便和豐富的資源,但同時(shí)也引發(fā)了網(wǎng)絡(luò)帶寬和安全問(wèn)題 。
如何在發(fā)揮P2P強(qiáng)大功能的情況下對(duì)其進(jìn)行一些必要的限制呢?本文將介紹在Linux中如何利用netfilter/iptables實(shí)現(xiàn)對(duì)P2P應(yīng)用流量的限制 。
升級(jí)內(nèi)核
由于在公開發(fā)布的Linux內(nèi)核文件中,有關(guān)iptables的各種參數(shù)里沒(méi)有關(guān)于P2P屬性的參數(shù),所以必須通過(guò)升級(jí)Linux內(nèi)核和iptables來(lái)打上這個(gè)補(bǔ)丁,使其支持P2P屬性設(shè)置 。
在具體操作之前,先要了解一下升級(jí)內(nèi)核補(bǔ)丁需要的一些相關(guān)軟件:linux-2.4.20-8.tar.gz、patch-o-matic-20040609.tar.bz2、iptables-1.2.8.tar.bz2、iptables-p2p-0.3.0a.tar.gz和ipp2p-0.5c.tar.gz 。
這里的測(cè)試環(huán)境為Red Hat 9.0,內(nèi)核為2.4.20-8 。由于2.4.*是一個(gè)穩(wěn)定的內(nèi)核,因此不能把當(dāng)前開發(fā)的一些新功能提交到主內(nèi)核中去,而只能首先在patch-o-matic中測(cè)試,然后打補(bǔ)丁到內(nèi)核中 。在CVS中可以找到最新的patch-o-matic包―Patch-o-matic-20040609.tar.bz2 。
有了內(nèi)核支持后,還需要iptables支持,其中iptables-p2p-0.3.0a.tar.gz為netfilter/iptables組織開發(fā)的專門支持P2P的iptables擴(kuò)展軟件包;ipp2p-0.5c.tar.gz為Eicke Friedrich開發(fā)的一個(gè)支持P2P的iptables擴(kuò)展包 。這兩個(gè)擴(kuò)展包各有特色,后面將會(huì)分別介紹 。
裝載模塊
首先在/usr/src下解壓軟件包:
#bzip2 -d patch-o-matic-20040609.tar.bz2生成patch-o-matic-20040609.tar.out 。

#tar xvf patch-o-matic-20040609.tar.out
生成補(bǔ)丁目錄patch-o-matic-20040609 。Red Hat 9.0中默認(rèn)的內(nèi)核目錄為/usr/src/linux-2.4 。進(jìn)入補(bǔ)丁目錄/usr/src/patch-o-matic-20040609,由于支持P2P協(xié)議控制選項(xiàng)需要CONNMARK模塊,該模塊在extra子目錄下,因此需要運(yùn)行如下命令來(lái)升級(jí)內(nèi)核補(bǔ)丁 。
#KERNEL_DIR=/usr/src/linux-2.4 ./runme extra
運(yùn)行該命令后會(huì)出現(xiàn)一個(gè)模塊選擇界面,界面有兩個(gè)區(qū)域,一個(gè)給出相關(guān)的模塊名、模塊功能、用法和語(yǔ)法實(shí)例;另一個(gè)給出各種選項(xiàng),如N/y/b/r.../q/?,其中第一個(gè)為大寫字母,表示缺省選項(xiàng),n表示下一個(gè)模塊,y表示確定,b表示上一個(gè)模塊,q表示退出 。
首先應(yīng)該確定當(dāng)前的模塊是否需要,不需要就按“N”鍵后回車,繼續(xù)顯示下一個(gè)模塊的相關(guān)信息 。當(dāng)出現(xiàn)需要的模塊時(shí),按“Y”鍵確認(rèn),同時(shí)應(yīng)該將里面的相關(guān)語(yǔ)法實(shí)例抄錄下來(lái)以備用 。選擇完所有需要的模塊后,按“Q”鍵退出 。
編譯內(nèi)核
進(jìn)入內(nèi)核文件所在目錄/usr/src/linux-2.4,開始編譯內(nèi)核:

#make mrproper#make xconfig(或#make menuconfig)注意,在配置選項(xiàng)中必須選擇Networking options→IP:Netfilter Configuration→Connection mark tracking support和CONNMARK target support兩個(gè)選項(xiàng) 。確保關(guān)鍵文件在正確位置:

#make dep編譯大內(nèi)核:#make bzImage編譯選擇的模塊:
#make modules將編譯后的模塊轉(zhuǎn)移到系統(tǒng)標(biāo)準(zhǔn)位置:
#make modules_install讓系統(tǒng)自動(dòng)修改啟動(dòng)配置文件grub.conf:
#make install重新啟動(dòng)系統(tǒng),選擇Red Hat Linux(2.4.20-8custom)選項(xiàng),則啟動(dòng)了新編譯的內(nèi)核 。
升級(jí)iptables
安裝iptables-1.2.8
首先解壓iptables-1.2.8.tar.bz2文件:
#bzip2 -d iptables-1.2.8.tar.bz2#tar xvf iptables-1.2.8.tar.out編譯iptables-1.2.8:
#make KERNEL_DIR=/usr/src/linux-2.4#make install KERNEL_DIR=/usr/src/linux-2.4#make install-devel拷貝可執(zhí)行文件到相應(yīng)目錄:

推薦閱讀