


下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
基于LINUX操作系統(tǒng)的防火墻技術及其具體實現(xiàn)
摘要本文介紹了LINUX下常用的防火墻規(guī)則配置軟件Ipchains;從實現(xiàn)原理、配置方法以及功能特點的角度描述了LINUX防火墻的三種功能;并給出了一個LINUX防火墻實例作為參考。關鍵字
LINUX防火墻ipchains包過濾代理IP偽裝1
前言防火墻作為網(wǎng)絡安全措施中的一個重要組成部分,一直受到人們的普遍關注。LINUX是這幾年一款異軍突起的操作系統(tǒng),以其公開的源代碼、強大穩(wěn)定的網(wǎng)絡功能和大量的免費資源受到業(yè)界的普遍贊揚。LINUX防火墻其實是操作系統(tǒng)本身所自帶的一個功能模塊。通過安裝特定的防火墻內(nèi)核,LINUX操作系統(tǒng)會對接收到的數(shù)據(jù)包按一定的策略進行處理。而用戶所要做的,就是使用特定的配置軟件(如ipchains)去定制適合自己的“數(shù)據(jù)包處理策略”。2
LINUX防火墻配置軟件—IpchainsIpchains是LINUX2.1及其以上版本中所帶的一個防火墻規(guī)則管理程序。用戶可以使用它來建立、編輯、刪除系統(tǒng)的防火墻規(guī)則。但通常,需要自己創(chuàng)建一個防火墻規(guī)則腳本/etc/rc.d/rc.firewall,并使系統(tǒng)啟動時自動運行這個腳本。一個LINUX防火墻系統(tǒng)的安全機制是通過Input、Output、Forward這三個“防火鏈”來實現(xiàn)的。而用戶正是使用ipchains在這三個“鏈”上分別創(chuàng)建一套“防火規(guī)則”,來完成對到來數(shù)據(jù)包層層限制的目的,其組織結構如圖1所示。
其中,每個鏈都包括一組由用戶創(chuàng)建的過濾規(guī)則,數(shù)據(jù)包依次到達每個鏈,并比較其中的每條規(guī)則,直到找出匹配規(guī)則并執(zhí)行相應策略(如通過、拒絕等),否則執(zhí)行默認策略。實際中,數(shù)據(jù)包在到達Input鏈之前還要進行測試和正常性檢查,在到路由表之前還要被判斷是否被偽裝,這些,在本圖中都被省略了。Ipchains經(jīng)常使用的命令行格式如下:Ipchains–Achain[–iinterface][–pprotocol][[!]-y][–ssource-ip[port]][-ddestination-ip[port]]–jpolicy[-l]對各選項的說明如下表:-A<chain>
添加一規(guī)則到鏈尾。chain可為input、output、forward。-i<interface>
指定本規(guī)則適用的網(wǎng)絡接口。通常有eth0、eth1、lo、ppp0等。-p<protocol>
指定本規(guī)則適用的IP協(xié)議,如tcp、udp、icmp等。[!]–y
-y表明tcp握手中的連接請求標志位SYN;!–y表示對該請求的響應。-ssrc-ip[port]
指明數(shù)據(jù)包的源IP地址,port表示本規(guī)則適用的端口號。-ddst-ip[port]
指明數(shù)據(jù)包的目的IP地址及端口號。-jpolicy
指定本規(guī)則對匹配數(shù)據(jù)包的處理策略:ACCEPT、DENY或REJECT。-l
在系統(tǒng)日志/var/log/messages中記錄與該規(guī)則匹配的數(shù)據(jù)包。3
LINUX防火墻的幾種常見功能由于每一個用戶的要求和所處的環(huán)境都不一樣,LINUX防火墻會根據(jù)用戶的設置實現(xiàn)各種不同的功能。但一般說來,以下三種功能是大多數(shù)用戶最常用到的。3.1包過濾對數(shù)據(jù)包進行過濾可以說是任何防火墻所具備的最基本的功能,而LINUX防火墻本身從某個角度也可以說是一種“包過濾防火墻”。在LINUX防火墻中,操作系統(tǒng)內(nèi)核對到來的每一個數(shù)據(jù)包進行檢查,從它們的包頭中提取出所需要的信息,如源IP地址、目的IP地址、源端口號、目的端口號等,再與已建立的防火規(guī)則逐條進行比較,并執(zhí)行所匹配規(guī)則的策略,或執(zhí)行默認策略,這個過程在圖1中已經(jīng)形象的表現(xiàn)出來。值得注意的是,在制定防火墻過濾規(guī)則時通常有兩個基本的策略方法可供選擇:一個是默認允許一切,即在接受所有數(shù)據(jù)包的基礎上明確地禁止那些特殊的、不希望收到的數(shù)據(jù)包;還有一個策略就是默認禁止一切,即首先禁止所有的數(shù)據(jù)包通過,然后再根據(jù)所希望提供的服務去一項項允許需要的數(shù)據(jù)包通過。一般說來,前者使啟動和運行防火墻變得更加容易,但卻更容易為自己留下安全隱患。通過在防火墻外部接口處對進來的數(shù)據(jù)包進行過濾,可以有效地阻止絕大多數(shù)有意或無意地網(wǎng)絡攻擊,同時,對發(fā)出的數(shù)據(jù)包進行限制,可以明確地指定內(nèi)部網(wǎng)中哪些主機可以訪問互聯(lián)網(wǎng),哪些主機只能享用哪些服務或登陸哪些站點,從而實現(xiàn)對內(nèi)部主機的管理??梢哉f,在對一些小型內(nèi)部局域網(wǎng)進行安全保護和網(wǎng)絡管理時,包過濾確實是一種簡單而有效的手段。3.2代理LINUX防火墻的代理功能是通過安裝相應的代理軟件實現(xiàn)的。它使那些不具備公共IP的內(nèi)部主機也能訪問互聯(lián)網(wǎng),并且很好地屏蔽了內(nèi)部網(wǎng),從而有效保障了內(nèi)部主機的安全。為了清楚地描述這一重要功能的實現(xiàn)過程,特假設以下典型情況,如圖2所示:
steven為內(nèi)部網(wǎng)中一臺IP是的主機,其上安裝有IE5.0瀏覽器,并配置為使用防火墻主機:8080作為代理。firewall就是我們討論的LINUX防火墻,有兩個網(wǎng)絡接口,分別是內(nèi)部接口eth1=、外部接口eth0=。在firewall主機上安裝有Web代理軟件“squid”,并配置其代理端口為8080。為263網(wǎng)站的Web服務器,IP為31,Web服務端口80。如果要從steven主機訪問263的主頁,其具體的通信過程如圖中所示:(1)IE通過steven的非專用端口1110(在1024~65535之間隨機產(chǎn)生)與防火墻的代理端口8080建立連接,請求“”頁面。(2)squid代理接收到請求后,先查找域名“”,得到地址31(該步驟圖中省略),然后通過防火墻端口1050與該地址的80端口建立一個連接,請求頁面。(3)服務器接到請求后將頁面?zhèn)鹘osquid代理。(4)防火墻代理得到頁面后,把數(shù)據(jù)復制到(1)中所建立的連接上,IE得到數(shù)據(jù)并將“”頁面顯示出來。
通過以上描述,可以清楚地了解到內(nèi)部主機、LINUX代理防火墻以及外部服務器之間是如何進行數(shù)據(jù)傳輸?shù)模敲?,在LINUX防火墻內(nèi)部,那些“防火鏈”又是如何工作的呢?其工作過程如圖3所示:
steven主機發(fā)來的數(shù)據(jù)包經(jīng)由內(nèi)部接口eth1進來后,首先接受INPUT鏈的“檢查”:系統(tǒng)內(nèi)核從包頭中提取出信息,與INPUT鏈中所有適用于eth1接口的過濾規(guī)則逐個比較,直到匹配通過。之后,該數(shù)據(jù)包被轉(zhuǎn)發(fā)給本地的代理進程。同樣,代理進程發(fā)送給遠程Web服務器的數(shù)據(jù)包在從防火墻外部接口發(fā)送出去之前,也要經(jīng)過OUTPUT鏈的“檢查”,即與OUTPUT鏈中所有適用于eth0接口的規(guī)則一一比較。返回的過程正好與上述相反,在此就不再贅述為了實現(xiàn)以上過程,我們必須在防火墻規(guī)則腳本中添加以下規(guī)則:ipchains–Ainput–ieth1–ptcp–s1110–d8080–jACCEPTipchains–Aoutput–ieth0–ptcp–s1050–d3180–jACCEPTipchains–Ainput–ieth0–ptcp!-y–s3180–d1050–jACCEPTipchains–Aoutput–ieth1–ptcp!–y–s8080–d1110–jACCEPT
從上文對代理功能的原理和實現(xiàn)的敘述中,我們可以看出,LINUX防火墻實際上扮演了一個“代理網(wǎng)關”的角色。內(nèi)部主機和遠程服務器分別都只與防火墻進行連接,而真正的“起點”和“終點”之間卻毫無聯(lián)系。3.3IP偽裝IP偽裝(IPMasquerade)是LINUX操作系統(tǒng)自帶的又一個重要功能。通過在系統(tǒng)內(nèi)核增添相應的偽裝模塊,內(nèi)核可以自動地對經(jīng)過的數(shù)據(jù)包進行“偽裝”,即修改包頭中的源目的IP信息,以使外部主機誤認為該包是由防火墻主機發(fā)出來的。這樣做,可以有效解決使用內(nèi)部保留IP的主機不能訪問互聯(lián)網(wǎng)的問題,同時屏蔽了內(nèi)部局域網(wǎng)。這一點,與前面所講的代理所達到的目的是很類似的。關于IP偽裝在LINUX防火墻內(nèi)部的具體實現(xiàn)過程,請看圖4。仍以圖2中所示的典型情況為例,steven主機的IE進程直接與遠程的Web服務器建立一個連接。當數(shù)據(jù)包到達防火墻的內(nèi)部接口后,照樣要例行INPUT鏈的檢查。之后,數(shù)據(jù)包被送到FORWARD鏈,接受系統(tǒng)內(nèi)核的“偽裝處理”,即將包頭中的源IP地址改為防火墻外部接口eth0的地址,并在系統(tǒng)中做下記錄,以便一會兒對其回應包的目的IP進行“恢復”。這樣,當該數(shù)據(jù)包順利從外部接口出來時,其包頭中源IP已被改為。遠程服務器會認為這是從防火墻的合法地址發(fā)來的,從而對其做出響應。當遠程服務器返回的回應包到達防火墻時,先經(jīng)過INPUT鏈,然后會根據(jù)系統(tǒng)關于IP偽裝的記錄對數(shù)據(jù)包的目的IP進行恢復,即將改為,最后再經(jīng)過OUTPUT鏈返回到steven主機。
為了實現(xiàn)這個過程,我們必須在防火墻規(guī)則腳本中添加以下規(guī)則:ipchains–Ainput–ieth1–ptcp–s1110–d3180–jACCEPTipchains–Aoutput–ieth0–ptcp–s1050–d3180–jACCEPTipchains–Ainput–ieth0–ptcp!-y–s3180–d1050–jACCEPTipchains–Aoutput–ieth1–ptcp!–y–s3180–d1110–jACCEPTipchains–Aforward–ieth0–s1110–d3180–jMASQ
與代理功能比較而言,IP偽裝不需要安裝相應的代理軟件,數(shù)據(jù)包的偽裝對用戶來說都是“透明”的,并且整個過程都是在IP層實現(xiàn),因此實現(xiàn)速度較快。缺點是不能對經(jīng)過的數(shù)據(jù)包作詳細的記錄。以上介紹了LINUX防火墻在實際的設置中常用到的三種功能。但一般說來,用戶在創(chuàng)建自己的防火墻規(guī)則腳本時,可以根據(jù)自己的需要將這三種功能組合起來實現(xiàn)。4
一個LINUX防火墻實例以下是我前一段時間為某辦公室搭建的LINUX防火墻的實際配置,給出以供參考。
該室網(wǎng)絡拓撲圖如圖5:
有兩個局域網(wǎng),LAN1地址:5/48為公共網(wǎng)絡IP,LAN2地址為/,為內(nèi)部保留地址。LINUX防火墻有兩個內(nèi)部接口:0接LAN1;接LAN2。現(xiàn)對防火墻進行配置,使LAN2的主機通過IP偽裝訪問互聯(lián)網(wǎng),但只允許使用外部Web代理服務器4的1252端口。LAN1中的主機被限制使用幾種常用的互聯(lián)網(wǎng)服務(DNS、SMTP、POP3、HTTP和FTP)。下面就是創(chuàng)建的防火墻規(guī)則腳本:#/etc/rc.d/rc.firewall#!/bin/sh#eth0External_interface#eth1LAN1_interface#eth2LAN2_interfaceecho"Startingfirewalling..."#Flushanyexistingrulesfromallchainsipchains-F#Setthedefaultpolicytodenyipchains-PinputDENYipchains-PoutputREJECTipchains-PforwardREJECT#Enabletrafficontheloopbackinterfaceipchains-Ainput-ilo-jACCEPTipchains-Aoutput-ilo-jACCEPT#Enablethetrafficontheeth1ipchains-Ainput-ieth1-jACCEPTipchains-Aoutput-ieth1-jACCEPT#thetrafficontheeth2onlyenabllingusingtheWEBPROXYipchains-Ainput-ieth2-ptcp-s/241024:65535-d41252-jACCEPTipchains-Aoutput-ieth2-ptcp!-y-s41252-d/241024:65535-jACCEPT#Forwardingrulesipchains-Aforward-ieth0-s4/29-jACCEPTipchains-Aforward-ieth0-s/24-jMASQipchains-Aforward-ieth1-d4/29-jACCEPT#EnableoutgoingthepacketsfromLANontheExternal_Interfaceipchains-Aoutput-ieth0-jACCEPT#EnableincomingsomeICMPmessagesoneth#1.Dest_Unreachable,Service_Unavailableipchains-Ainput-ieth0-picmp-sany/03-d4/29-jACCEPT#2.Time_Exceededipchains-Ainput-ieth0-picmp-sany/011-d4/29-jACCEPT#3.Allowoutgoingpingstoanywhereipchains-Ainput-ieth0-picmp-sany/00-d4/29-jACCEPT#EnableProxyof4:1252ipchains-Ainput-ieth0-ptcp!-y-s41252-jACCEPT#DNS(53)(DNS:)—clientmodesipchains-Ainput-ieth0-pudp-s53-d4/291024:65535-jACCEPTipchains-Ainput-ieth0-ptcp!-y-s53-d4/291024:65535-jACCEPT#SMTP(25)EnablesendingmailthrougharemoteSMTPgatewayipchains-Ainput-ieth0-ptcp!-y-sany/025-d4/291024:65535-jAC
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小朋友簽約合同協(xié)議書
- 合同一次性買斷協(xié)議書
- 開花店合同合作協(xié)議書
- 建豬場租地合同協(xié)議書
- 幼兒園裝修合同協(xié)議書
- 賽事策劃合同協(xié)議書
- ic卡電表合同協(xié)議書
- 三人合股開店協(xié)議書
- 2025年超大型特厚板軋機合作協(xié)議書
- 2025辦公用房租賃合同協(xié)議書
- 租賃法律知識講座課件
- 2025屆吉林省長春市高三質(zhì)量監(jiān)測(三)政治試題及答案
- GB/T 24894-2025動植物油脂甘三酯分子2-位脂肪酸組分的測定
- 2024年江蘇常州中考滿分作文《那么舊那樣新》8
- 4P營銷理論課件
- 幕墻工程施工方案及述標文件
- 《生鮮農(nóng)產(chǎn)品供應鏈中雙渠道模式合作演化博弈實證研究》17000字
- 湖北省武漢市華師一附中2025屆中考生物押題試卷含解析
- 竣工結算審計服務投標方案(2024修訂版)(技術方案)
- 某藥業(yè)公司管理制度匯編
- 《佛與保險》課件
評論
0/150
提交評論