設(shè)置防火墻功能通過設(shè)置,F(xiàn)reeBSD系統(tǒng)能夠具備更高的安全性,防止外界入侵者進(jìn)入系統(tǒng),即使入侵者利用人為的問題進(jìn)入系統(tǒng),F(xiàn)reeBSD嚴(yán)密的保護(hù)也將使他們無所作為,不能對系統(tǒng)造成嚴(yán)重的破壞 。然而,除了用于保護(hù)系統(tǒng)本身的能力之外,F(xiàn)reeBSD還能用于保護(hù)同一個網(wǎng)絡(luò)內(nèi)的其他計算機(jī) 。此時這個FreeBSD系統(tǒng)就必須作為內(nèi)部網(wǎng)絡(luò)的缺省網(wǎng)關(guān),擔(dān)負(fù)將內(nèi)部網(wǎng)絡(luò)連接到外部網(wǎng)絡(luò)的任務(wù) 。
FreeBSD系統(tǒng)實現(xiàn)了包過濾能力與網(wǎng)絡(luò)地址轉(zhuǎn)換能力,如果僅將這些能力用作保護(hù)系統(tǒng)本身,顯然不是這些功能的設(shè)計目的,保護(hù)本地系統(tǒng)只是保護(hù)本地網(wǎng)絡(luò)的一部分功能 。包過濾能力是針對路由器等網(wǎng)絡(luò)設(shè)備來設(shè)計的,而網(wǎng)絡(luò)地址轉(zhuǎn)換也是重要的防火墻功能,這些設(shè)計就使得FreeBSD能被十分方便的設(shè)置為防火墻系統(tǒng) 。此外,F(xiàn)reeBSD上也能運(yùn)行其他類型的防火墻軟件,如代理型防火墻軟件fwtk等,作為代理服務(wù)器來保護(hù)本地網(wǎng)絡(luò)內(nèi)的系統(tǒng) 。
即使FreeBSD系統(tǒng)不是用作防火墻,它所支持防火墻能力也同樣能用來保護(hù)本地系統(tǒng)的安全 。
設(shè)置和使用ipfw/natd
在專用路由器系統(tǒng)開始流行之前,Internet上的路由器大部分是基于Unix的軟件路由器,其中多數(shù)是BSD Unix 。顯然這是由于BSD Unix在Internet上占據(jù)的重要地位決定的,即便是在專用硬件路由器流行的今天,當(dāng)由于價格等因素不能考慮硬件路由器時,BSD系統(tǒng)仍然是用作軟件路由器的首選系統(tǒng) 。
由于路由器處于網(wǎng)絡(luò)之間,所有網(wǎng)絡(luò)間需要交換的數(shù)據(jù)包都要通過它轉(zhuǎn)發(fā),因此就可以進(jìn)行一定的限制,即按照預(yù)定義的一定規(guī)則處理每個數(shù)據(jù)包,符合要求的允許通過,不符合要求的就進(jìn)行丟棄 。這樣路由器就能用作一個簡單的防火墻系統(tǒng),保護(hù)內(nèi)部計算機(jī) 。BSD系統(tǒng)中最早使用ipfw過濾器來定義不同的過濾規(guī)則,隨后ipfw也被移植到其他平臺上,并根據(jù)開發(fā)者的理解不同而獨立發(fā)展 。當(dāng)前不同系統(tǒng)上的ipfw已經(jīng)大不相同了,并出現(xiàn)了具備相同功能的其他過濾器,F(xiàn)reeBSD下的ipfw也經(jīng)過了不斷發(fā)展,具備了更強(qiáng)的過濾能力,尤其是它能和natd守護(hù)進(jìn)程相結(jié)合,提供網(wǎng)絡(luò)地址轉(zhuǎn)換能力,具備更完善的防火墻能力 。
使用ipfw設(shè)置過濾
由于包過濾要對每個數(shù)據(jù)包都進(jìn)行判斷,因此在網(wǎng)絡(luò)流量較大時需要較高的處理器處理能力,F(xiàn)reeBSD的包過濾能力是在內(nèi)核中實現(xiàn)的,這樣才能具備最高的效率和性能 。因此為了在FreeBSD上使用這個防火墻功能,需要在編譯內(nèi)核時打開下面選項重新定制內(nèi)核 。
options IPFIREWALLoptions IPFIREWALL_VERBOSEoptions “IPFIREWALL_VERBOSE_LIMIT=100”options IPFIREWALL_DEFAULT_TO_ACCEPToptions IPDIVERT其中第一項設(shè)置IPFIREWALL是用于打開基本的包過濾支持的,只有使用它才能在內(nèi)核中支持包過濾 。IPFIREWALL_VERBOSE和IPFIREWALL_VERBOSE_LIMIT設(shè)置記錄過濾日志,及日志記錄的限制 。IPFIREWALL_DEFAULT_TO_ACCEPT是設(shè)置IPFIREWALL的缺省行為,在數(shù)據(jù)包不符合所有的過濾規(guī)則的情況下進(jìn)行轉(zhuǎn)發(fā),顯然這是一種寬松的限制,此時系統(tǒng)主要用于屏蔽特定地址和特定服務(wù),而提供其他的缺省網(wǎng)絡(luò)能力 。如果沒有定義這個選項,系統(tǒng)就只能允許符合已定義規(guī)則的數(shù)據(jù)包通過,而屏蔽其他任何數(shù)據(jù)包,這樣在沒有定義過濾規(guī)則的情況下,系統(tǒng)不能和其他計算機(jī)相互通信 。最后一個選項IPDIVERT是用于定義IPFIREWALL與natd的接口 。
當(dāng)編譯安裝了內(nèi)核之后,還需要設(shè)置內(nèi)核具備數(shù)據(jù)包的轉(zhuǎn)發(fā)能力 。需要在rc.conf中設(shè)置gateway_enable的值為YES,這樣就能在系統(tǒng)啟動時自動打開包轉(zhuǎn)發(fā)能力 。也可以直接執(zhí)行下面命令來打開內(nèi)核包轉(zhuǎn)發(fā)能力 。
# sysctl -w net.inet.ip.forwarding=1
推薦閱讀
- 66 FreeBSD連載:安裝samba
- FreeBSD Lastcomm介紹
- 一加7pro設(shè)置游戲模式的簡單操作教程
- 掌緣漫畫設(shè)置密碼操作過程
- FreeBSD 常用名詞概述
- 一加7pro中設(shè)置翻轉(zhuǎn)靜音的操作步驟
- 兩臺路由器連接方法
- 63 FreeBSD連載:集成Unix和Windows的方式
- Reno Ace中設(shè)置自由收藏的簡單操作教程
- 紅米note7設(shè)置sos緊急求助操作過程
