基于LINUX操作系統(tǒng)的防火墻技術(shù)及其具體實(shí)現(xiàn)(1)_第1頁(yè)
基于LINUX操作系統(tǒng)的防火墻技術(shù)及其具體實(shí)現(xiàn)(1)_第2頁(yè)
基于LINUX操作系統(tǒng)的防火墻技術(shù)及其具體實(shí)現(xiàn)(1)_第3頁(yè)
基于LINUX操作系統(tǒng)的防火墻技術(shù)及其具體實(shí)現(xiàn)(1)_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于LINUX操作系統(tǒng)的防火墻技術(shù)及其具體實(shí)現(xiàn)(1)    摘要  本文介紹了LINUX下常用的防火墻規(guī)則配置軟件Ipchains;從實(shí)現(xiàn)原理、配置方法以及功能特點(diǎn)的角度描述了LINUX防火墻的三種功能;并給出了一個(gè)LINUX防火墻實(shí)例作為參考。關(guān)鍵字    LINUX防火墻  ipchains  包過濾  代理  IP偽裝1      前言防火墻作為網(wǎng)絡(luò)安全措施中的一個(gè)重要組成部分,一直受到人們的普遍關(guān)注。LINUX是這幾年

2、一款異軍突起的操作系統(tǒng),以其公開的源代碼、強(qiáng)大穩(wěn)定的網(wǎng)絡(luò)功能和大量的免費(fèi)資源受到業(yè)界的普遍贊揚(yáng)。LINUX防火墻其實(shí)是操作系統(tǒng)本身所自帶的一個(gè)功能模塊。通過安裝特定的防火墻內(nèi)核,LINUX操作系統(tǒng)會(huì)對(duì)接收到的數(shù)據(jù)包按一定的策略進(jìn)行處理。而用戶所要做的,就是使用特定的配置軟件(如ipchains)去定制適合自己的“數(shù)據(jù)包處理策略”。2      LINUX防火墻配置軟件IpchainsIpchains是LINUX 2.1及其以上版本中所帶的一個(gè)防火墻規(guī)則管理程序。用戶可以使用它來建立、編輯、刪除系統(tǒng)的防火墻規(guī)則。但通常,需要自己創(chuàng)建一個(gè)防火墻規(guī)則

3、腳本 /etc/rc.d/rc.firewall,并使系統(tǒng)啟動(dòng)時(shí)自動(dòng)運(yùn)行這個(gè)腳本。一個(gè)LINUX防火墻系統(tǒng)的安全機(jī)制是通過Input、Output、Forward這三個(gè)“防火鏈”來實(shí)現(xiàn)的。而用戶正是使用ipchains在這三個(gè)“鏈”上分別創(chuàng)建一套“防火規(guī)則”,來完成對(duì)到來數(shù)據(jù)包層層限制的目的,其組織結(jié)構(gòu)如圖1所示。     其中,每個(gè)鏈都包括一組由用戶創(chuàng)建的過濾規(guī)則,數(shù)據(jù)包依次到達(dá)每個(gè)鏈,并比較其中的每條規(guī)則,直到找出匹配規(guī)則并執(zhí)行相應(yīng)策略(如通過、拒絕等),否則執(zhí)行默認(rèn)策略。實(shí)際中,數(shù)據(jù)包在到達(dá)Input鏈之前還要進(jìn)行測(cè)試和正常性檢查,在到路由表之前還

4、要被判斷是否被偽裝,這些,在本圖中都被省略了。Ipchains 經(jīng)常使用的命令行格式如下:Ipchains A chain i interface p protocol ! -ys source-ip port -d destination-ip port j policy -l對(duì)各選項(xiàng)的說明如下表:-A <chain>      添加一規(guī)則到鏈尾。chain可為input、output、forward。-i <interface>      指定本規(guī)則適用的網(wǎng)絡(luò)接口。通

5、常有eth0、eth1、lo、ppp0等。-p <protocol>      指定本規(guī)則適用的IP協(xié)議,如tcp、udp、icmp等。! y      -y表明tcp握手中的連接請(qǐng)求標(biāo)志位SYN; ! y 表示對(duì)該請(qǐng)求的響應(yīng)。-s src-ip port      指明數(shù)據(jù)包的源IP地址,port表示本規(guī)則適用的端口號(hào)。-d dst-ip port      指明數(shù)據(jù)包的目的IP地址

6、及端口號(hào)。-j policy      指定本規(guī)則對(duì)匹配數(shù)據(jù)包的處理策略:ACCEPT、DENY或REJECT。-l      在系統(tǒng)日志/var/log/messages中記錄與該規(guī)則匹配的數(shù)據(jù)包。3      LINUX防火墻的幾種常見功能由于每一個(gè)用戶的要求和所處的環(huán)境都不一樣,LINUX防火墻會(huì)根據(jù)用戶的設(shè)置實(shí)現(xiàn)各種不同的功能。但一般說來,以下三種功能是大多數(shù)用戶最常用到的。3.1 包過濾對(duì)數(shù)據(jù)包進(jìn)行過濾可以說是任何防火墻所具備的最基本的

7、功能,而LINUX防火墻本身從某個(gè)角度也可以說是一種“包過濾防火墻”。在LINUX防火墻中,操作系統(tǒng)內(nèi)核對(duì)到來的每一個(gè)數(shù)據(jù)包進(jìn)行檢查,從它們的包頭中提取出所需要的信息,如源IP地址、目的IP地址、源端口號(hào)、目的端口號(hào)等,再與已建立的防火規(guī)則逐條進(jìn)行比較,并執(zhí)行所匹配規(guī)則的策略,或執(zhí)行默認(rèn)策略,這個(gè)過程在圖1中已經(jīng)形象的表現(xiàn)出來。值得注意的是,在制定防火墻過濾規(guī)則時(shí)通常有兩個(gè)基本的策略方法可供選擇:一個(gè)是默認(rèn)允許一切,即在接受所有數(shù)據(jù)包的基礎(chǔ)上明確地禁止那些特殊的、不希望收到的數(shù)據(jù)包;還有一個(gè)策略就是默認(rèn)禁止一切,即首先禁止所有的數(shù)據(jù)包通過,然后再根據(jù)所希望提供的服務(wù)去一項(xiàng)項(xiàng)允許需要的數(shù)據(jù)包通過

8、。一般說來,前者使啟動(dòng)和運(yùn)行防火墻變得更加容易,但卻更容易為自己留下安全隱患。通過在防火墻外部接口處對(duì)進(jìn)來的數(shù)據(jù)包進(jìn)行過濾,可以有效地阻止絕大多數(shù)有意或無意地網(wǎng)絡(luò)攻擊,同時(shí),對(duì)發(fā)出的數(shù)據(jù)包進(jìn)行限制,可以明確地指定內(nèi)部網(wǎng)中哪些主機(jī)可以訪問互聯(lián)網(wǎng),哪些主機(jī)只能享用哪些服務(wù)或登陸哪些站點(diǎn),從而實(shí)現(xiàn)對(duì)內(nèi)部主機(jī)的管理??梢哉f,在對(duì)一些小型內(nèi)部局域網(wǎng)進(jìn)行安全保護(hù)和網(wǎng)絡(luò)管理時(shí),包過濾確實(shí)是一種簡(jiǎn)單而有效的手段。3.2 代理LINUX防火墻的代理功能是通過安裝相應(yīng)的代理軟件實(shí)現(xiàn)的。它使那些不具備公共IP的內(nèi)部主機(jī)也能訪問互聯(lián)網(wǎng),并且很好地屏蔽了內(nèi)部網(wǎng),從而有效保障了內(nèi)部主機(jī)的安全。為了清楚地描述這一重要功能的

9、實(shí)現(xiàn)過程,特假設(shè)以下典型情況,如圖2所示:     steven為內(nèi)部網(wǎng)中一臺(tái)IP是的主機(jī),其上安裝有IE5.0瀏覽器,并配置為使用防火墻主機(jī):8080作為代理。firewall就是我們討論的LINUX防火墻,有兩個(gè)網(wǎng)絡(luò)接口,分別是內(nèi)部接口eth1=、外部接口eth0=。在firewall主機(jī)上安裝有Web代理軟件“squid”,并配置其代理端口為8080。為263網(wǎng)站的Web服務(wù)器,IP為31,Web服務(wù)端口80。如果要從steven主機(jī)

10、訪問263的主頁(yè),其具體的通信過程如圖中所示:(1)IE通過steven的非專用端口1110 (在102465535之間隨機(jī)產(chǎn)生)與防火墻的代理端口8080建立連接,請(qǐng)求“”頁(yè)面。(2)squid代理接收到請(qǐng)求后,先查找域名“”,得到地址31(該步驟圖中省略),然后通過防火墻端口1050與該地址的80端口建立一個(gè)連接,請(qǐng)求頁(yè)面。(3)服務(wù)器接到請(qǐng)求后將頁(yè)面?zhèn)鹘osquid代理。(4)防火墻代理得到頁(yè)面后,把數(shù)據(jù)復(fù)制到(1)中所建立的連接上,IE得到數(shù)據(jù)并將“”頁(yè)面顯示出來。    通過以上描述,可以清楚地了解到內(nèi)部主機(jī)、LINUX代理防火墻以

11、及外部服務(wù)器之間是如何進(jìn)行數(shù)據(jù)傳輸?shù)?,那么,在LINUX防火墻內(nèi)部,那些“防火鏈”又是如何工作的呢?其工作過程如圖3所示:     steven主機(jī)發(fā)來的數(shù)據(jù)包經(jīng)由內(nèi)部接口eth1進(jìn)來后,首先接受INPUT鏈的“檢查”:系統(tǒng)內(nèi)核從包頭中提取出信息,與INPUT鏈中所有適用于eth1接口的過濾規(guī)則逐個(gè)比較,直到匹配通過。之后,該數(shù)據(jù)包被轉(zhuǎn)發(fā)給本地的代理進(jìn)程。同樣,代理進(jìn)程發(fā)送給遠(yuǎn)程Web服務(wù)器的數(shù)據(jù)包在從防火墻外部接口發(fā)送出去之前,也要經(jīng)過OUTPUT鏈的“檢查”,即與OUTPUT鏈中所有適用于eth0接口的規(guī)則一一比較。返回的過程正好與上述相反,在此就不

12、再贅述為了實(shí)現(xiàn)以上過程,我們必須在防火墻規(guī)則腳本中添加以下規(guī)則:ipchains A input i eth1 p tcp s 1110 d 8080 j ACCEPTipchains A output i eth0 p tcp s 1050 d 31 80 j ACCEPTipchains A input i eth0 p tcp !-y s 31 80 d 1050 j ACCEPTipchains A output i eth1 p tc

13、p ! y s 8080 d 1110 j ACCEPT    從上文對(duì)代理功能的原理和實(shí)現(xiàn)的敘述中,我們可以看出,LINUX防火墻實(shí)際上扮演了一個(gè)“代理網(wǎng)關(guān)”的角色。內(nèi)部主機(jī)和遠(yuǎn)程服務(wù)器分別都只與防火墻進(jìn)行連接,而真正的“起點(diǎn)”和“終點(diǎn)”之間卻毫無聯(lián)系。3.3 IP偽裝IP偽裝(IP Masquerade)是LINUX操作系統(tǒng)自帶的又一個(gè)重要功能。通過在系統(tǒng)內(nèi)核增添相應(yīng)的偽裝模塊,內(nèi)核可以自動(dòng)地對(duì)經(jīng)過的數(shù)據(jù)包進(jìn)行“偽裝”,即修改包頭中的源目的IP信息,以使外部主機(jī)誤認(rèn)為該包是由防火墻主機(jī)發(fā)出來的。這樣做,可以有效解

14、決使用內(nèi)部保留IP的主機(jī)不能訪問互聯(lián)網(wǎng)的問題,同時(shí)屏蔽了內(nèi)部局域網(wǎng)。這一點(diǎn),與前面所講的代理所達(dá)到的目的是很類似的。關(guān)于IP偽裝在LINUX防火墻內(nèi)部的具體實(shí)現(xiàn)過程,請(qǐng)看圖4。 仍以圖2中所示的典型情況為例,steven主機(jī)的IE進(jìn)程直接與遠(yuǎn)程的Web服務(wù)器建立一個(gè)連接。當(dāng)數(shù)據(jù)包到達(dá)防火墻的內(nèi)部接口后,照樣要例行INPUT鏈的檢查。之后,數(shù)據(jù)包被送到FORWARD鏈,接受系統(tǒng)內(nèi)核的“偽裝處理”,即將包頭中的源IP地址改為防火墻外部接口eth0的地址,并在系統(tǒng)中做下記錄,以便一會(huì)兒對(duì)其回應(yīng)包的目的IP進(jìn)行“恢復(fù)”。這樣,當(dāng)該數(shù)據(jù)包順利從外部接口出來時(shí),其包頭中源IP已被改為202.11

15、7.120.1。遠(yuǎn)程服務(wù)器會(huì)認(rèn)為這是從防火墻的合法地址發(fā)來的,從而對(duì)其做出響應(yīng)。當(dāng)遠(yuǎn)程服務(wù)器返回的回應(yīng)包到達(dá)防火墻時(shí),先經(jīng)過INPUT鏈,然后會(huì)根據(jù)系統(tǒng)關(guān)于IP偽裝的記錄對(duì)數(shù)據(jù)包的目的IP進(jìn)行恢復(fù),即將改為,最后再經(jīng)過OUTPUT鏈返回到steven主機(jī)。    為了實(shí)現(xiàn)這個(gè)過程,我們必須在防火墻規(guī)則腳本中添加以下規(guī)則:ipchains A input i eth1 p tcp s 1110 d 31 80 j ACCEPTipchains A output i eth

16、0 p tcp s 1050 d 31 80 j ACCEPTipchains A input i eth0 p tcp !-y s 31 80 d 1050 j ACCEPTipchains A output i eth1 p tcp ! y s 31 80 d 1110 j ACCEPT  ipchains A forward i eth0 s 1110 d 31 80 j MASQ

17、    與代理功能比較而言,IP偽裝不需要安裝相應(yīng)的代理軟件,數(shù)據(jù)包的偽裝對(duì)用戶來說都是“透明”的,并且整個(gè)過程都是在IP層實(shí)現(xiàn),因此實(shí)現(xiàn)速度較快。缺點(diǎn)是不能對(duì)經(jīng)過的數(shù)據(jù)包作詳細(xì)的記錄。以上介紹了LINUX防火墻在實(shí)際的設(shè)置中常用到的三種功能。但一般說來,用戶在創(chuàng)建自己的防火墻規(guī)則腳本時(shí),可以根據(jù)自己的需要將這三種功能組合起來實(shí)現(xiàn)。4      一個(gè)LINUX防火墻實(shí)例以下是我前一段時(shí)間為某辦公室搭建的LINUX防火墻的實(shí)際配置,給出以供參考。    該室網(wǎng)絡(luò)拓?fù)鋱D如圖5: 

18、   有兩個(gè)局域網(wǎng),LAN1地址:5/48為公共網(wǎng)絡(luò)IP,LAN2地址為/,為內(nèi)部保留地址。LINUX防火墻有兩個(gè)內(nèi)部接口:0接LAN1;接LAN2?,F(xiàn)對(duì)防火墻進(jìn)行配置,使LAN2的主機(jī)通過IP偽裝訪問互聯(lián)網(wǎng),但只允許使用外部Web代理服務(wù)器4的1252端口。LAN1中的主機(jī)被限制使用幾種常用的互聯(lián)網(wǎng)服務(wù)(DNS、SMTP、POP3、HTTP和FTP)。下面就是創(chuàng)建的防火墻規(guī)則腳本:#/etc/rc.d

19、/rc.firewall#!/bin/sh# eth0-External_interface# eth1-LAN1_interface# eth2-LAN2_interfaceecho "Starting firewalling . . ."#Flush any existing rules from all chainsipchains -F#Set the default policy to denyipchains -P input DENYipchains -P output REJECTipchains -P forward REJECT#Enable traff

20、ic on the loopback interfaceipchains -A input -i lo -j ACCEPTipchains -A output -i lo -j ACCEPT#Enable the traffic on the eth1ipchains -A input -i eth1 -j ACCEPTipchains -A output -i eth1 -j ACCEPT#the traffic on the eth2 only enablling using the WEB PROXY ipchains -A input -i eth2 -p tcp -s 192.168

21、.0.0/24 1024:65535 -d 4 1252 -j ACCEPTipchains -A output -i eth2 -p tcp ! -y -s 4 1252 -d /24 1024:65535 -j ACCEPT#Forwarding rulesipchains -A forward -i eth0 -s 4/29  -j ACCEPTipchains -A forward -i eth0 -s /24  -j MASQipchains

22、-A forward -i eth1 -d 4/29 -j ACCEPT#Enable outgoing the packets from LAN on the External_Interfaceipchains -A output -i eth0 -j ACCEPT#Enable incoming some ICMP messages on eth# 1.Dest_Unreachable,Service_Unavailableipchains -A input -i eth0 -p icmp -s any/0 3 -d 4/29 -j A

23、CCEPT# 2.Time_Exceededipchains -A input -i eth0 -p icmp -s any/0 11 -d 4/29 -j ACCEPT# 3.Allow outgoing pings to anywhere ipchains -A input -i eth0 -p icmp -s any/0 0 -d 4/29 -j ACCEPT#Enable Proxy of 4:1252ipchains -A input -i eth0 -p tcp ! -y -s

24、4 1252 -j ACCEPT#DNS (53) (DNS:)client modesipchains -A input -i eth0 -p udp -s 53 -d 4/29 1024:65535 -j ACCEPTipchains -A input -i eth0 -p tcp ! -y -s 53 -d 4/29 1024:65535 -j ACCEPT#SMTP(25)Enable sending mail through a remote SMTP gatewayipchains -A input -i eth0 -p tcp ! -y -s any/0 25 -d 4/29 1024:65535 -j ACC

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論