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

79 FreeBSD連載:設(shè)置和使用ipfilter

設(shè)置和使用ipfilter雖然ipfw/natd已經(jīng)是相當(dāng)強(qiáng)大的網(wǎng)絡(luò)地址轉(zhuǎn)換及防火墻系統(tǒng),然而它還是有一定的缺點(diǎn)存在 。其中最重要的一個(gè)缺點(diǎn)是natd是使用守護(hù)進(jìn)程的方法來(lái)進(jìn)行地址轉(zhuǎn)換,因?yàn)樗鼪](méi)有運(yùn)行在內(nèi)核中,而是通過(guò)divert socket來(lái)和內(nèi)核通信,這種方式雖然比較靈活,但效率顯然要低一些 。
另外,natd的功能還不能滿足有些要求,natd能做靜態(tài)地址轉(zhuǎn)換和使用一個(gè)偽裝地址為多個(gè)內(nèi)部地址服務(wù),但其不能從一個(gè)給定的地址池中,為內(nèi)部地址自動(dòng)分配IP地址 。畢竟natd是一個(gè)較早的網(wǎng)絡(luò)地址轉(zhuǎn)換工具,當(dāng)前的發(fā)展已經(jīng)比較遲緩 。但是由于ipfw是FreeBSD系統(tǒng)的一部分,并且過(guò)濾和地址轉(zhuǎn)換是由不同的部分來(lái)完成的,結(jié)構(gòu)清晰,因此對(duì)于大部分情況都很適合,因此一般仍應(yīng)使用ipfw/natd 。
如果ipfw/natd不能滿足使用者的需要,能避免ipfw/natd缺點(diǎn)的另一個(gè)網(wǎng)絡(luò)地址轉(zhuǎn)換和數(shù)據(jù)包過(guò)濾的工具是ipfilter 。雖然FreeBSD是其支持的主要系統(tǒng),但它其實(shí)是一個(gè)支持多平臺(tái)的獨(dú)立軟件,不僅能運(yùn)行在FreeBSD上,也能運(yùn)行在其他多種Unix系統(tǒng)中 。由于它被包括進(jìn)FreeBSD基本系統(tǒng)中,因此在FreeBSD下配置ipfilter同樣也非常輕松 。
ipfilter的網(wǎng)址為http://cheops.anu.edu.au/~avalon/,F(xiàn)reeBSD 3.0之前它不包括在FreeBSD的基本系統(tǒng)中,需要手工設(shè)置 。
由于ipfilter與ipfw同為在內(nèi)核級(jí)對(duì)IP數(shù)據(jù)包進(jìn)行處理的系統(tǒng),因此他們相互沖突,不能同時(shí)并存在一個(gè)內(nèi)核內(nèi),否則內(nèi)核的TCP/IP功能就不能正常執(zhí)行 。為了使用ipfilter,就需要重新定制內(nèi)核,刪除所有IPFIREWALL的設(shè)置,而添加IPFILTER的設(shè)置 。
#optionsIPFIREWALL#optionsIPDIVERToptionsIPFILTERoptionsIPFILTER_LOG選項(xiàng)IPFILTER為支持IPFILTER的基本代碼,IPFILTER_LOG為支持IPFILTER的統(tǒng)計(jì)記錄能力 。需要增加這些選項(xiàng),并注釋IPFIREWALL、IPDIVERT及其相關(guān)選項(xiàng) 。此后,就可以重新定制、安裝新內(nèi)核 。然而在重新啟動(dòng)之前,還需要在rc.conf中設(shè)置firewall_enable的值為NO,當(dāng)系統(tǒng)內(nèi)核不存在IPFIREALL功能又設(shè)置了firewall_enable的時(shí)候,啟動(dòng)文件就會(huì)自動(dòng)載入支持這個(gè)功能的可加載模塊ipfw.ko,載入ipfw.ko之后的系統(tǒng)內(nèi)核就等同于使用IPFIREWALL內(nèi)核選項(xiàng)的系統(tǒng),與ipfilter發(fā)生沖突 。然而ipfilter仍然需要設(shè)置gateway_enable,以打開(kāi)系統(tǒng)內(nèi)核的數(shù)據(jù)包轉(zhuǎn)發(fā)功能 。
使用新內(nèi)核啟動(dòng)系統(tǒng)之后,如果本地計(jì)算機(jī)的網(wǎng)絡(luò)功能正常,此時(shí)再使用ipfw就會(huì)報(bào)告錯(cuò)誤 。這就能使用ipfilter來(lái)設(shè)置包過(guò)濾和網(wǎng)絡(luò)地址轉(zhuǎn)換了 。
設(shè)置地址轉(zhuǎn)換
為了在ipfilter下設(shè)置網(wǎng)絡(luò)地址轉(zhuǎn)換,首先要?jiǎng)?chuàng)建一個(gè)地址轉(zhuǎn)換設(shè)置文件,例如/etc/ipflter.nat 。與ipfw/natd的相似,最基本的用法為使用一個(gè)外部地址來(lái)轉(zhuǎn)換所有內(nèi)部地址,此時(shí)必須進(jìn)行端口轉(zhuǎn)換,因此ipfilter.nat中應(yīng)該包含的NAT規(guī)則為:
map fxp1 192.168.3.0/24 -> 202.102.245.60/32 portmap tcp/udp 10000:65000
這個(gè)設(shè)置中,首先使用map關(guān)鍵字指明是進(jìn)行地址轉(zhuǎn)換的設(shè)置,此后的fxp1為連接外部網(wǎng)絡(luò)的網(wǎng)絡(luò)界面,在這個(gè)網(wǎng)絡(luò)界面上執(zhí)行數(shù)據(jù)包的IP地址和端口地址轉(zhuǎn)換,第三個(gè)參數(shù)為進(jìn)行轉(zhuǎn)換的內(nèi)部地址的范圍,此后跟隨的一個(gè)->符號(hào)表示進(jìn)行地址轉(zhuǎn)換,第五個(gè)參數(shù)為要轉(zhuǎn)換為的外部地址,當(dāng)指定子網(wǎng)掩碼長(zhǎng)度為32時(shí)就表示這只是一個(gè)主機(jī)而非子網(wǎng)范圍,后面portmap關(guān)鍵字對(duì)tcp/udp協(xié)議進(jìn)行端口轉(zhuǎn)換,其使用的映射端口范圍為在10000到65000之間,也可以對(duì)tcp或udp協(xié)議分別指定轉(zhuǎn)換端口的范圍 。
如果使用者擁有的不僅是一個(gè)主機(jī),而是一個(gè)具備多個(gè)合法IP地址的子網(wǎng),這樣就能設(shè)置使用地址池,為內(nèi)部向外連接的計(jì)算機(jī)動(dòng)態(tài)分配合法的外部IP地址,這樣的設(shè)置更為簡(jiǎn)單,因?yàn)椴恍枰付╬ortmap進(jìn)行地址轉(zhuǎn)換 。

推薦閱讀