防火牆[網路術語]

防火牆[網路術語]

防火牆(Firewall),也稱防護牆,是由Check Point創立者Gil Shwed於1993年發明並引入國際網際網路(US5606668(A)1993-12-15)。防火牆是位於內部網和外部網之間的屏障,它按照系統管理員預先定義好的規則來控制數據包的進出。防火牆是系統的第一道防線,其作用是防止非法用戶的進入。 防火牆的發明者是吉爾·舍伍德。

基本信息

基本定義

詳細解釋

所謂防火牆指的是一個由軟體和硬體設備組合而成、在內部網和外部網之間、專用網與公共網之間的界面上構造的保護屏障.是一種獲取安全性方法的形象說法,它是一種計算機硬體和軟體的結合,使Internet與Intranet之間建立起一個安全網關(Security Gateway),從而保護內部網免受非法用戶的侵入,防火牆主要由服務訪問規則、驗證工具、包過濾和套用網關4個部分組成,防火牆就是一個位於計算機和它所連線的網路之間的軟體或硬體。該計算機流入流出的所有網路通信和數據包均要經過此防火牆。

在網路中,所謂“防火牆”,是指一種將內部網和公眾訪問網(如Internet)分開的方法,它實際上是一種隔離技術。防火牆是在兩個網路通訊時執行的一種訪問控制尺度,它能允許你“同意”的人和數據進入你的網路,同時將你“不同意”的人和數據拒之門外,最大限度地阻止網路中的黑客來訪問你的網路。換句話說,如果不通過防火牆,公司內部的人就無法訪問Internet,Internet上的人也無法和公司內部的人進行通信。

什麼是防火牆 XP系統相比於以往的Windows系統新增了許多的網路功能(Windows 7的防火牆一樣很強大,可以很方便地定義過濾掉數據包),例如Internet連線防火牆(ICF),它就是用一段"代碼牆"把電腦和Internet分隔開,時刻檢查出入防火牆的所有數據包,決定攔截或是放行那些數據包。防火牆可以是一種硬體、固件或者軟體,例如專用防火牆設備就是硬體形式的防火牆,包過濾路由器是嵌有防火牆固件的路由器,而代理伺服器等軟體就是軟體形式的防火牆。

ICF工作原理 ICF被視為狀態防火牆,狀態防火牆可監視通過其路徑的所有通訊,並且檢查所處理的每個訊息的源和目標地址。為了防止來自連線公用端的未經請求的通信進入專用端,ICF保留了所有源自ICF計算機的通訊表。在單獨的計算機中,ICF將跟蹤源自該計算機的通信。與ICS一起使用時,ICF將跟蹤所有源自ICF/ICS計算機的通信和所有源自專用網路計算機的通信。所有Internet傳入通信都會針對於該表中的各項進行比較。只有當表中有匹配項時(這說明通訊交換是從計算機或專用網路內部開始的),才允許將傳入Internet通信傳送給網路中的計算機。 源自外部源ICF計算機的通訊(如Internet)將被防火牆阻止,除非在“服務”選項卡上設定允許該通訊通過。ICF不會向你傳送活動通知,而是靜態地阻止未經請求的通訊,防止像連線埠掃描這樣的常見黑客襲擊。

防火牆的種類

防火牆從誕生開始,已經歷了四個發展階段:基於路由器的防火牆、用戶化的防火牆工具套、建立在通用作業系統上的防火牆、具有安全作業系統的防火牆。常見的防火牆屬於具有安全作業系統的防火牆,例如NETEYE、NETSCREEN、TALENTIT等。

從結構上來分,防火牆有兩種:即代理主機結構和路由器+過濾器結構,後一種結構如下所示:內部網路過濾器(Filter)路由器(Router)Internet

從原理上來分,防火牆則可以分成4種類型:特殊設計的硬體防火牆、數據包過濾型、電路層網關和套用級網關。安全性能高的防火牆系統都是組合運用多種類型防火牆,構築多道防火牆“防禦工事”。

吞吐量

網路中的數據是由一個個數據包組成,防火牆對每個數據包的處理要耗費資源。吞吐量是指在沒有幀丟失的情況下,設備能夠接受的最大速率。其測試方法是:在測試中以一定速率傳送一定數量的幀,並計算待測設備傳輸的幀,如果傳送的幀與接收的幀數量相等,那么就將傳送速率提高並重新測試;如果接收幀少於傳送幀則降低傳送速率重新測試,直至得出最終結果。吞吐量測試結果以比特/秒或位元組/秒表示。

吞吐量和報文轉發率是關係防火牆套用的主要指標,一般採用FDT(Full Duplex Throughput)來衡量,指64位元組數據包的全雙工吞吐量,該指標既包括吞吐量指標也涵蓋了報文轉發率指標。

主要類型

網路層防火牆

網路層防火牆可視為一種 IP 封包過濾器,運作在底層的TCP/IP協定堆疊上。我們可以以枚舉的方式,只允許符合特定規則的封包通過,其餘的一概禁止穿越防火牆(病毒除外,防火牆不能防止病毒侵入)。這些規則通常可以經由管理員定義或修改,不過某些防火牆設備可能只能套用內置的規則。

我們也能以另一種較寬鬆的角度來制定防火牆規則,只要封包不符合任何一項“否定規則”就予以放行。作業系統及網路設備大多已內置防火牆功能。

較新的防火牆能利用封包的多樣屬性來進行過濾,例如:來源 IP位址、來源連線埠號、目的 IP 地址或連線埠號、服務類型(如 HTTP 或是 FTP)。也能經由通信協定、TTL 值、來源的網域名稱或網段...等屬性來進行過濾。

套用層防火牆

套用層防火牆是在 TCP/IP 堆疊的“套用層”上運作,您使用瀏覽器時所產生的數據流或是使用 FTP 時的數據流都是屬於這一層。套用層防火牆可以攔截進出某應用程式的所有封包,並且封鎖其他的封包(通常是直接將封包丟棄)。理論上,這一類的防火牆可以完全阻絕外部的數據流進到受保護的機器里。

防火牆藉由監測所有的封包並找出不符規則的內容,可以防範電腦蠕蟲或是木馬程式的快速蔓延。不過就實現而言,這個方法既煩且雜(軟體有千千百百種啊),所以大部分的防火牆都不會考慮以這種方法設計。

XML 防火牆是一種新型態的套用層防火牆。

根據側重不同,可分為:包過濾型防火牆、套用層網關型防火牆、伺服器型防火牆。

資料庫防火牆

資料庫防火牆是一款基於資料庫協定分析與控制技術的資料庫安全防護系統。基於主動防禦機制,實現資料庫的訪問行為控制、危險操作阻斷、可疑行為審計。

資料庫防火牆通過SQL協定分析,根據預定義的禁止和許可策略讓合法的SQL操作通過,阻斷非法違規操作,形成資料庫的外圍防禦圈,實現SQL危險操作的主動預防、實時審計。

資料庫防火牆面對來自於外部的入侵行為,提供SQL注入禁止和資料庫虛擬補丁包功能。

基本特性

(一)內部網路和外部網路之間的所有網路數據流都必須經過防火牆

防火牆布置圖 防火牆布置圖

這是防火牆所處網路位置特性,同時也是一個前提。因為只有當防火牆是內、外部網路之間通信的唯一通道,才可以全面、有效地保護企業網內部網路不受侵害。

根據美國國家安全局制定的《信息保障技術框架》,防火牆適用於用戶網路系統的邊界,屬於用戶網路邊界的安全保護設備。所謂網路邊界即是採用不同安全策略的兩個網路連線處,比如用戶網路和網際網路之間連線、和其它業務往來單位的網路連線、用戶內部網路不同部門之間的連線等。防火牆的目的就是在網路連線之間建立一個安全控制點,通過允許、拒絕或重新定向經過防火牆的數據流,實現對進、出內部網路的服務和訪問的審計和控制。

典型的防火牆體系網路結構如下圖所示。從圖中可以看出,防火牆的一端連線企事業單位內部的區域網路,而另一端則連線著網際網路。所有的內、外部網路之間的通信都要經過防火牆。

(二)只有符合安全策略的數據流才能通過防火牆

防火牆最基本的功能是確保網路流量的合法性,並在此前提下將網路的流量快速的從一條鏈路轉發到另外的鏈路上去。從最早的防火牆模型開始談起,原始的防火牆是一台“雙穴主機”,即具備兩個網路接口,同時擁有兩個網路層地址。防火牆將網路上的流量通過相應的網路接口接收上來,按照OSI協定棧的七層結構順序上傳,在適當的協定層進行訪問規則和安全審查,然後將符合通過條件的報文從相應的網路接口送出,而對於那些不符合通過條件的報文則予以阻斷。因此,從這個角度上來說,防火牆是一個類似於橋接或路由器的、多連線埠的(網路接口>=2)轉發設備,它跨接於多個分離的物理網段之間,並在報文轉發過程之中完成對報文的審查工作。

(三)防火牆自身應具有非常強的抗攻擊免疫力

這是防火牆之所以能擔當企業內部網路安全防護重任的先決條件。防火牆處於網路邊緣,它就像一個邊界衛士一樣,每時每刻都要面對黑客的入侵,這樣就要求防火牆自身要具有非常強的抗擊入侵本領。它之所以具有這么強的本領防火牆作業系統本身是關鍵,只有自身具有完整信任關係的作業系統才可以談論系統的安全性。其次就是防火牆自身具有非常低的服務功能,除了專門的防火牆嵌入系統外,再沒有其它應用程式在防火牆上運行。當然這些安全性也只能說是相對的。

目前國內的防火牆幾乎被國外的品牌占據了一半的市場,國外品牌的優勢主要是在技術和知名度上比國內產品高。而國內防火牆廠商對國內用戶了解更加透徹,價格上也更具有優勢。防火牆產品中,國外主流廠商為思科(Cisco)、CheckPoint、NetScreen等,國內主流廠商為東軟、天融信、山石網科、網御神州、聯想、方正等,它們都提供不同級別的防火牆產品。

(四)套用層防火牆具備更細緻的防護能力

自從Gartner提出下一代防火牆概念以來,信息安全行業越來越認識到套用層攻擊成為當下取代傳統攻擊,最大程度危害用戶的信息安全,而傳統防火牆由於不具備區分連線埠和套用的能力,以至於傳統防火牆僅僅只能防禦傳統的攻擊,基於套用層的攻擊則毫無辦法。

從2011年開始,國內廠家通過多年的技術積累,開始推出下一代防火牆,在國內從第一家推出真正意義的下一代防火牆的網康科技開始,至今包擴東軟,天融信等在內的傳統防火牆廠商也開始相互 效仿,陸續推出了下一代防火牆,下一代防火牆具備套用層分析的能力,能夠基於不同的套用特徵,實現套用層的攻擊過濾,在具備傳統防火牆、IPS、防毒等功能的同時,還能夠對用戶和內容進行識別管理,兼具了套用層的高性能和智慧型聯動兩大特性,能夠更好的針對套用層攻擊進行防護。

(五)資料庫防火牆針對資料庫惡意攻擊的阻斷能力

虛擬補丁技術:針對CVE公布的資料庫漏洞,提供漏洞特徵檢測技術。
高危訪問控制技術:提供對資料庫用戶的登錄、操作行為,提供根據地點、時間、用戶、操作類型、對象等特徵定義高危訪問行為。
SQL注入禁止技術:提供SQL注入特徵庫。
返回行超標禁止技術:提供對敏感表的返回行數控制。
SQL黑名單技術:提供對非法SQL的語法抽象描述。

代理服務

代理服務設備(可能是一台專屬的硬體,或只是普通機器上的一套軟體)也能像應用程式一樣回應輸入封包(例如連線要求),同時封鎖其他的封包,達到類似於防火牆的效果。

代理使得由外在網路竄改一個內部系統更加困難,並且一個內部系統誤用不一定會導致一個安全漏洞可從防火牆外面(只要套用代理剩下的原封和適當地被配置)被入侵。相反地,入侵者也許劫持一個公開可及的系統和使用它作為代理人為他們自己的目的;代理人然後偽裝作為那個系統對其它內部機器。當對內部地址空間的用途加強安全,破壞狂也許仍然使用方法譬如IP 欺騙試圖通過小包對目標網路。

防火牆經常有網路地址轉換(NAT)的功能,並且主機被保護在防火牆之後共同地使用所謂的“私人地址空間”,依照被定義在[RFC 1918] 。 管理員經常設定了這樣的情節:假裝內部地址或網路是安全的。

防火牆的適當的配置要求技巧和智慧型。 它要求管理員對網路協定和電腦安全有深入的了解。 因小差錯可使防火牆不能作為安全工具。

主要優點

(1)防火牆能強化安全策略。

(2)防火牆能有效地記錄Internet上的活動。

(3)防火牆限制暴露用戶點。防火牆能夠用來隔開網路中一個網段與另一個網段。這樣,能夠防止影響一個網段的問題通過整個網路傳播。

(4)防火牆是一個安全策略的檢查站。所有進出的信息都必須通過防火牆,防火牆便成為安全問題的檢查點,使可疑的訪問被拒絕於門外。

使用技巧

一、所有的防火牆檔案規則必須更改。

儘管這種方法聽起來很容易,但是由於防火牆沒有內置的變動管理流程,因此檔案更改對於許多企業來說都不是最佳的實踐方法。如果防火牆管理員因為突發情況或者一些其他形式的業務中斷做出更改,那么他撞到槍口上的可能性就會比較大。但是如果這種更改抵消了之前的協定更改,會導致宕機嗎?這是一個相當高發的狀況。

防火牆管理產品的中央控制台能全面可視所有的防火牆規則基礎,因此團隊的所有成員都必須達成共識,觀察誰進行了何種更改。這樣就能及時發現並修理故障,讓整個協定管理更加簡單和高效。

二、以最小的許可權安裝所有的訪問規則。

另一個常見的安全問題是許可權過度的規則設定。防火牆規則是由三個域構成的:即源(IP位址),目的地(網路/子網路)和服務(套用軟體或者其他目的地)。為了確保每個用戶都有足夠的連線埠來訪問他們所需的系統,常用方法是在一個或者更多域內指定打來那個的目標對象。當你出於業務持續性的需要允許大範圍的IP位址來訪問大型企業的網路,這些規則就會變得許可權過度釋放,因此就會增加不安全因素。服務域的規則是開放65535個TCP連線埠的ANY。防火牆管理員真的就意味著為黑客開放了65535個攻擊矢量?

三、根據法規協定和更改需求來校驗每項防火牆的更改。

在防火牆操作中,日常工作都是以尋找問題,修正問題和安裝新系統為中心的。在安裝最新防火牆規則來解決問題,套用新產品和業務部門的過程中,我們經常會遺忘防火牆也是企業安全協定的物理執行者。每項規則都應該重新審核來確保它能符合安全協定和任何法規協定的內容和精神,而不僅是一篇法律條文。

四、當服務過期後從防火牆規則中刪除無用的規則。

規則膨脹是防火牆經常會出現的安全問題,因為多數運作團隊都沒有刪除規則的流程。業務部門擅長讓你知道他們了解這些新規則,卻從來不會讓防火牆團隊知道他們不再使用某些服務了。了解退役的伺服器和網路以及套用軟體更新周期對於達成規則共識是個好的開始。運行無用規則的報表是另外一步。黑客喜歡從來不刪除規則的防火牆團隊。

五、每年至少對防火牆完整的審核兩次。

如果你是名信用卡活動頻繁的商人,那么除非必須的話這項不是向你推薦的最佳實踐方法,因為支付卡行業標準1.1.6規定至少每隔半年要對防火牆進行一次審核。

相關功能

防火牆具有很好的保護作用。入侵者必須首先穿越防火牆的安全防線,才能接觸目標計算機。你可以將防火牆配置成許多不同保護級別。高級別的保護可能會禁止一些服務,如視頻流等。

防火牆最基本的功能就是控制在計算機網路中,不同信任程度區域間傳送的數據流。例如網際網路是不可信任的區域,而內部網路是高度信任的區域。以避免安全策略中禁止的一些通信,與建築中的防火牆功能相似。它有控制信息基本的任務在不同信任的區域。 典型信任的區域包括網際網路(一個沒有信任的區域)和一個內部網路(一個高信任的區域)。最終目標是提供受控連通性在不同水平的信任區域通過安全政策的運行和連通性模型之間根據最少特權原則。

例如:TCP/IPPort 135~139是Microsoft Windows的【網上鄰居】所使用的。如果計算機有使用【網上鄰居】的【已分享檔案夾】,又沒使用任何防火牆相關的防護措施的話,就等於把自己的【已分享檔案夾】公開到Internet,供不特定的任何人有機會瀏覽目錄內的檔案。且早期版本的Windows有【網上鄰居】系統溢出的無密碼保護的漏洞(這裡是指【已分享檔案夾】有設密碼,但可經由此系統漏洞,達到無須密碼便能瀏覽資料夾的需求)。

防火牆對流經它的網路通信進行掃描,這樣能夠過濾掉一些攻擊,以免其在目標計算機上被執行。防火牆還可以關閉不使用的連線埠。而且它還能禁止特定連線埠的流出通信,封鎖特洛伊木馬。最後,它可以禁止來自特殊站點的訪問,從而防止來自不明入侵者的所有通信。

網路安全

一個防火牆(作為阻塞點、控制點)能極大地提高一個內部網路的安全性,並通過過濾不安全的服務而降低風險。由於只有經過精心選擇的套用協定才能通過防火牆,所以網路環境變得更安全。如防火牆可以禁止諸如眾所周知的不安全的NFS協定進出受保護網路,這樣外部的攻擊者就不可能利用這些脆弱的協定來攻擊內部網路。防火牆同時可以保護網路免受基於路由的攻擊,如IP選項中的源路由攻擊和ICMP重定向中的重定向路徑。防火牆應該可以拒絕所有以上類型攻擊的報文並通知防火牆管理員。

強化網路安全策略

通過以防火牆為中心的安全方案配置,能將所有安全軟體(如口令、加密、身份認證、審計等)配置在防火牆上。與將網路安全問題分散到各個主機上相比,防火牆的集中安全管理更經濟。例如在網路訪問時,一次一密口令系統和其它的身份認證系統完可以不必分散在各個主機上,而集中在防火牆一身上。

監控網路存取和訪問

如果所有的訪問都經過防火牆,那么,防火牆就能記錄下這些訪問並作出日誌記錄,同時也能提供網路使用情況的統計數據。當發生可疑動作時,防火牆能進行適當的報警,並提供網路是否受到監測和攻擊的詳細信息。另外,收集一個網路的使用和誤用情況也是非常重要的。首先的理由是可以清楚防火牆是否能夠抵擋攻擊者的探測和攻擊,並且清楚防火牆的控制是否充足。而網路使用統計對網路需求分析和威脅分析等而言也是非常重要的。

防止內部信息的外泄

通過利用防火牆對內部網路的劃分,可實現內部網重點網段的隔離,從而限制了局部重點或敏感網路安全問題對全局網路造成的影響。再者,隱私是內部網路非常關心的問題,一個內部網路中不引人注意的細節可能包含了有關安全的線索而引起外部攻擊者的興趣,甚至因此而暴漏了內部網路的某些安全漏洞。使用防火牆就可以隱蔽那些透漏內部細節如Finger,DNS等服務。Finger顯示了主機的所有用戶的註冊名、真名,最後登錄時間和使用shell類型等。但是Finger顯示的信息非常容易被攻擊者所獲悉。攻擊者可以知道一個系統使用的頻繁程度,這個系統是否有用戶正在連線上網,這個系統是否在被攻擊時引起注意等等。防火牆可以同樣阻塞有關內部網路中的DNS信息,這樣一台主機的域名和IP位址就不會被外界所了解。

資料庫安全

實現資料庫安全的實時防護

資料庫防火牆通過SQL 協定分析,根據預定義的禁止和許可策略讓合法的SQL 操作通過,阻斷非法違規操作,形成資料庫的外圍防禦圈,實現SQL 危險操作的主動預防、實時審計。
資料庫防火牆面對來自於外部的入侵行為,提供SQL 注入禁止和資料庫虛擬補丁包功能。

其他功能

除了安全作用,防火牆還支持具有Internet服務特性的企業內部網路技術體系VPN(虛擬專用網)。

防火牆的英文名為“FireWall”,它是目前一種最重要的網路防護設備。從專業角度講,防火牆是位於兩個(或多個)網路間,實施網路之間訪問控制的一組組件集合。

相關知識

防火牆在網路中經常是以兩種圖示出現的。一種圖示非常形象,真正像一堵牆一樣。而另一種圖示則是從防火牆的過濾機制來形象化的,在圖示中有一個二極體圖示。而二極體我們知道,它具有單嚮導電性,這樣也就形象地說明了防火牆具有單嚮導通性。這看起來與防火牆過濾機制有些矛盾,不過它卻完全體現了防火牆初期的設計思想,同時也在相當大程度上體現了當前防火牆的過濾機制。因為防火最初的設計思想是對內部網路總是信任的,而對外部網路卻總是不信任的,所以最初的防火牆是只對外部進來的通信進行過濾,而對內部網路用戶發出的通信不作限制。當然防火牆在過濾機制上有所改變,不僅對外部網路發出的通信連線要進行過濾,對內部網路用戶發出的部分連線請求和數據包同樣需要過濾,但防火牆仍只對符合安全策略的通信通過,也可以說具有“單嚮導通”性。

防火牆的本義是指古代構築和使用木製結構房屋的時候,為防止火災的發生和蔓延,人們將堅固的石塊堆砌在房屋周圍作為屏障,這種防護構築物就被稱之為“防火牆”。其實與防火牆一起起作用的就是“門”。如果沒有門,各房間的人如何溝通呢,這些房間的人又如何進去呢?當火災發生時,這些人又如何逃離現場呢?這個門就相當於我們這裡所講的防火牆的“安全策略”,所以在此我們所說的防火牆實際並不是一堵實心牆,而是帶有一些小孔的牆。這些小孔就是用來留給那些允許進行的通信,在這些小孔中安裝了過濾機制,也就是上面所介紹的“單嚮導通性”。

我們通常所說的網路防火牆是借鑑了古代真正用於防火的防火牆的喻義,它指的是隔離在本地網路與外界網路之間的一道防禦系統。防火可以使企業內部區域網路(LAN)網路與Internet之間或者與其他外部網路互相隔離、限制網路互訪用來保護內部網路。

基本架構

防火牆的硬體體系結構曾經歷過通用CPU架構、ASIC架構和網路處理器架構,他們各自的特點分別如下:

通用CPU架構

通用CPU架構最常見的是基於Intel X86架構的防火牆,在百兆防火牆中Intel X86架構的硬體以其高靈活性和擴展性一直受到防火牆廠商的青睞;由於採用了PCI匯流排接口,Intel X86架構的硬體雖然理論上能達到2Gbps的吞吐量甚至更高,但是在實際套用中,尤其是在小包情況下,遠遠達不到標稱性能,通用CPU的處理能力也很有限。

國內安全設備主要採用的就是基於X86的通用CPU架構。

ASIC架構

ASIC(Application Specific Integrated Circuit,專用積體電路)技術是國外高端網路設備幾年前廣泛採用的技術。由於採用了硬體轉發模式、多匯流排技術、數據層面與控制層面分離等技術, ASIC架構防火牆解決了頻寬容量和性能不足的問題,穩定性也得到了很好的保證。

ASIC技術的性能優勢主要體現在網路層轉發上,而對於需要強大計算能力的套用層數據的處理則不占優勢,而且面對頻繁變異的套用安全問題,其靈活性和擴展性也難以滿足要求。

由於該技術有較高的技術和資金門檻,主要是國內外知名廠商在採用,國外主要代表廠商是Netscreen,國內主要代表廠商為天融信、網御神州。

網路處理器架構

由於網路處理器所使用的微碼編寫有一定技術難度,難以實現產品的最優性能,因此網路處理器架構的防火牆產品難以占有大量的市場份額。

基於國產CPU的防火牆

隨著國內通用處理器的發展,逐漸發展了基於中國芯的防火牆,主要架構為國產龍芯2F+FPGA的協定處理器,主要套用政府、軍隊等對國家安全敏感的行業。代表廠商有中科院計算所、博華科技等公司。

三種配置

防火牆配置有三種:Dual-homed方式、Screened- host方式和Screened-subnet方式。

Dual-homed方式最簡單。 Dual-homedGateway放置在兩個網路之間,這個Dual-omedGateway又稱為bastionhost。這種結構成本低,但是它有單點失敗的問題。這種結構沒有增加網路安全的自我防衛能力,而它往往是受“黑客”攻擊的首選目標,它自己一旦被攻破,整個網路也就暴露了。

Screened-host方式中的Screeningrouter為保護Bastionhost的安全建立了一道屏障。它將所有進入的信息先送往Bastionhost,並且只接受來自Bastionhost的數據作為出去的數據。這種結構依賴Screeningrouter和Bastionhost,只要有一個失敗,整個網路就暴露了。

Screened-subnet包含兩個Screeningrouter和兩個Bastionhost。在公共網路和私有網路之間構成了一個隔離網,稱之為”停火區”(DMZ,即DemilitarizedZone),Bastionhost放置在“停火區”內。這種結構安全性好,只有當兩個安全單元被破壞後,網路才被暴露,但是成本也很昂貴。

發展歷史

第一代防火牆

第一代防火牆技術幾乎與路由器同時出現,採用了包過濾(Packet filter)技術。

第二代防火牆

第一代防火牆技術主要在路由器上實現,後來將此安全功能獨立出來專門用來實現安全過濾功能。1989年,貝爾實驗室的Dave Presotto和Howard Trickey推出了第二代防火牆,即電路層防火牆,同時提出了第三代防火牆——套用層防火牆(代理防火牆)的初步結構。

第三代防火牆

代理防火牆出現,原來從路由器上獨立出來的安全軟體迅速發展,並引發了對承載安全軟體本身的作業系統的安全需求。即對防火牆本身的安全問題的安全需求。

第四代防火牆

1992年,USC信息科學院的BobBraden開發出了基於動態包過濾(Dynamic packet filter)技術的第四代防火牆,後來演變為所說的狀態監視(Stateful inspection)技術。1994年,以色列的CheckPoint公司開發出了第一個採用這種技術的商業化的產品。

第五代防火牆

1998年,NAI公司推出了一種自適應代理(Adaptive proxy)技術,並在其產品Gauntlet Firewall for NT中得以實現,給代理類型的防火牆賦予了全新的意義,可以稱之為第五代防火牆。

一體化安全網關UTM

UTM統一威脅管理,在防火牆基礎上發展起來的,具備防火牆、IPS、防病毒、防垃圾郵件等綜合功能的設備。由於同時開啟多項功能會大大降低UTM的處理性能,因此主要用於對性能要求不高的中低端領域。在中低端領域,UTM已經出現了代替防火牆的趨勢,因為在不開啟附加功能的情況下,UTM本身就是一個防火牆,而附加功能又為用戶的套用提供了更多選擇。在高端套用領域,比如電信、金融等行業,仍然以專用的高性能防火牆、IPS為主流。

工作原理

防火牆就是一種過濾塞(你這么理解不算錯),你可以讓你喜歡的東西通過這個塞子,別的玩意都統統過濾掉。在網路的世界裡,要由防火牆過濾的就是承載通信數據的通信包。

防火牆[網路術語] 防火牆[網路術語]

天下的防火牆至少都會說兩個詞:Yes或者No。直接說就是接受或者拒絕。最簡單的防火牆是乙太網橋。但幾乎沒有人會認為這種原始防火牆能管多大用。大多數防火牆採用的技術和標準可謂五花八門。這些防火牆的形式多種多樣:有的取代系統上已經裝備的TCP/IP協定棧;有的在已有的協定棧上建立自己的軟體模組;有的乾脆就是獨立的一套作業系統。還有一些套用型的防火牆只對特定類型的網路連線提供保護(比如SMTP或者HTTP協定等)。還有一些基於硬體的防火牆產品其實應該歸入安全路由器一類。以上的產品都可以叫做防火牆,因為他們的工作方式都是一樣的:分析出入防火牆的數據包,決定放行還是把他們扔到一邊。

所有的防火牆都具有IP位址過濾功能。這項任務要檢查IP包頭,根據其IP源地址和目標地址作出放行/丟棄決定。看看下面這張圖,兩個網段之間隔了一個防火牆,防火牆的一端有台UNIX計算機,另一邊的網段則擺了台PC客戶機。

防火牆[網路術語] 防火牆[網路術語]

當PC客戶機向UNIX計算機發起telnet請求時,PC的telnet客戶程式就產生一個TCP包並把它傳給本地的協定棧準備傳送。接下來,協定棧將這個TCP包“塞”到一個IP包里,然後通過PC機的TCP/IP棧所定義的路徑將它傳送給UNIX計算機。在這個例子裡,這個IP包必須經過橫在PC和UNIX計算機中的防火牆才能到達UNIX計算機。

我們“命令”(用專業術語來說就是配製)防火牆把所有發給UNIX計算機的數據包都給拒了,完成這項工作以後,“心腸”比較好的防火牆還會通知客戶程式一聲呢!既然發向目標的IP數據沒法轉發,那么只有和UNIX計算機同在一個網段的用戶才能訪問UNIX計算機了。

防火牆[網路術語] 防火牆[網路術語]

還有一種情況,你可以命令防火牆專給那台可憐的PC機找茬,別人的數據包都讓過就它不行。這正是防火牆最基本的功能:根據IP位址做轉發判斷。但要上了大場面這種小伎倆就玩不轉了,由於黑客們可以採用IP位址欺騙技術,偽裝成合法地址的計算機就可以穿越信任這個地址的防火牆了。不過根據地址的轉發決策機制還是最基本和必需的。另外要注意的一點是,不要用DNS主機名建立過濾表,對DNS的偽造比IP位址欺騙要容易多了。

伺服器TCP/UDP 連線埠過濾

僅僅依靠地址進行數據過濾在實際運用中是不可行的,還有個原因就是目標主機上往往運行著多種通信服務,比方說,我們不想讓用戶採用 telnet的方式連到系統,但這絕不等於我們非得同時禁止他們使用SMTP/POP郵件伺服器吧?所以說,在地址之外我們還要對伺服器的TCP/ UDP連線埠進行過濾。

比如,默認的telnet服務連線連線埠號是23。假如我們不許PC客戶機建立對UNIX計算機(在這時我們當它是伺服器)的telnet連線,那么我們只需命令防火牆檢查傳送目標是UNIX伺服器的數據包,把其中具有23目標連線埠號的包過濾就行了。這樣,我們把IP位址和目標伺服器TCP/UDP連線埠結合起來不就可以作為過濾標準來實現相當可靠的防火牆了嗎?不,沒這么簡單。

客戶機也有TCP/UDP連線埠

防火牆[網路術語] 防火牆[網路術語]

TCP/IP是一種端對端協定,每個網路節點都具有唯一的地址。網路節點的套用層也是這樣,處於套用層的每個應用程式和服務都具有自己的對應“地址”,也就是連線埠號。地址和連線埠都具備了才能建立客戶機和伺服器的各種套用之間的有效通信聯繫。比如,telnet伺服器在連線埠23偵聽入站連線。同時telnet客戶機也有一個連線埠號,否則客戶機的IP棧怎么知道某個數據包是屬於哪個應用程式的呢?

由於歷史的原因,幾乎所有的TCP/IP客戶程式都使用大於1023的隨機分配連線埠號。只有UNIX計算機上的root用戶才可以訪問1024以下的連線埠,而這些連線埠還保留為伺服器上的服務所用。所以,除非我們讓所有具有大於1023連線埠號的數據包進入網路,否則各種網路連線都沒法正常工作。

這對防火牆而言可就麻煩了,如果阻塞入站的全部連線埠,那么所有的客戶機都沒法使用網路資源。因為伺服器發出回響外部連線請求的入站(就是進入防火牆的意思)數據包都沒法經過防火牆的入站過濾。反過來,打開所有高於1023的連線埠就可行了嗎?也不盡然。由於很多服務使用的連線埠都大於1023,比如X client、基於RPC的NFS服務以及為數眾多的非UNIX IP產品等(NetWare/IP)就是這樣的。那么讓達到1023連線埠標準的數據包都進入網路的話網路還能說是安全的嗎?連這些客戶程式都不敢說自己是足夠安全的。

防火牆[網路術語] 防火牆[網路術語]

雙向過濾

OK,咱們換個思路。我們給防火牆這樣下命令:已知服務的數據包可以進來,其他的全部擋在防火牆之外。比如,如果你知道用戶要訪問Web伺服器,那就只讓具有源連線埠號80的數據包進入網路:

不過新問題又出現了。首先,你怎么知道你要訪問的伺服器具有哪些正在運行的連線埠號呢? 象HTTP這樣的伺服器本來就是可以任意配置的,所採用的連線埠也可以隨意配置。如果你這樣設定防火牆,你就沒法訪問哪些沒採用標準連線埠號的的網路站點了!反過來,你也沒法保證進入網路的數據包中具有連線埠號80的就一定來自Web伺服器。有些黑客就是利用這一點製作自己的入侵工具,並讓其運行在本機的80連線埠!

檢查ACK位

防火牆[網路術語] 防火牆[網路術語]

源地址我們不相信,源連線埠也信不得了,這個不得不與黑客共舞的瘋狂世界上還有什麼值得我們信任呢?還好,事情還沒到走投無路的地步。對策還是有的,不過這個辦法只能用於TCP協定。

TCP是一種可靠的通信協定,“可靠”這個詞意味著協定具有包括糾錯機制在內的一些特殊性質。為了實現其可靠性,每個TCP連線都要先經過一個“握手”過程來交換連線參數。還有,每個傳送出去的包在後續的其他包被傳送出去之前必須獲得一個確認回響。但並不是對每個TCP包都非要採用專門的ACK包來回響,實際上僅僅在TCP包頭上設定一個專門的位就可以完成這個功能了。所以,只要產生了回響包就要設定ACK位。連線會話的第一個包不用於確認,所以它就沒有設定ACK位,後續會話交換的TCP包就要設定ACK位了。

舉個例子,PC向遠端的Web伺服器發起一個連線,它生成一個沒有設定ACK位的連線請求包。當伺服器回響該請求時,伺服器就發回一個設定了ACK位的數據包,同時在包里標記從客戶機所收到的位元組數。然後客戶機就用自己的回響包再回響該數據包,這個數據包也設定了ACK位並標記了從伺服器收到的位元組數。通過監視ACK位,我們就可以將進入網路的數據限制在回響包的範圍之內。於是,遠程系統根本無法發起TCP連線但卻能回響收到的數據包了。

這套機制還不能算是無懈可擊,簡單地舉個例子,假設我們有台內部Web伺服器,那么連線埠80就不得不被打開以便外部請求可以進入網路。還有,對UDP包而言就沒法監視ACK位了,因為UDP包壓根就沒有ACK位。還有一些TCP應用程式,比如FTP,連線就必須由這些伺服器程式自己發起。

FTP帶來的困難

一般的Internet服務對所有的通信都只使用一對連線埠號,FTP程式在連線期間則使用兩對連線埠號。第一對連線埠號用於FTP的“命令通道”提供登錄和執行命令的通信鏈路,而另一對連線埠號則用於FTP的“數據通道”提供客戶機和伺服器之間的檔案傳送。

在通常的FTP會話過程中,客戶機首先向伺服器的連線埠21(命令通道)傳送一個TCP連線請求,然後執行LOGIN、DIR等各種命令。一旦用戶請求伺服器傳送數據,FTP伺服器就用其20連線埠 (數據通道)向客戶的數據連線埠發起連線。問題來了,如果伺服器向客戶機發起傳送數據的連線,那么它就會傳送沒有設定ACK位的數據包,防火牆則按照剛才的規則拒絕該數據包同時也就意味著數據傳送沒戲了。通常只有高級的、也就是夠聰明的防火牆才能看出客戶機剛才告訴伺服器的連線埠,然後才許可對該連線埠的入站連線。

UDP連線埠過濾

好了,我們回過頭來看看怎么解決UDP問題。剛才說了,UDP包沒有ACK位所以不能進行ACK位過濾。UDP 是發出去不管的“不可靠”通信,這種類型的服務通常用於廣播、路由、多媒體等廣播形式的通信任務。NFS、DNS、WINS、NetBIOS-over-TCP/IP和 NetWare/IP都使用UDP。

看來最簡單的可行辦法就是不允許建立入站UDP連線。防火牆設定為只許轉發來自內部接口的UDP包,來自外部接口的UDP包則不轉發。問題是,比方說,DNS名稱解析請求就使用UDP,如果你提供DNS服務,至少得允許一些內部請求穿越防火牆。還有IRC這樣的客戶程式也使用UDP,如果要讓你的用戶使用它,就同樣要讓他們的UDP包進入網路。我們能做的就是對那些從本地到可信任站點之間的連線進行限制。但是,什麼叫可信任!如果黑客採取地址欺騙的方法不又回到老路上去了嗎?

有些新型路由器可以通過“記憶”出站UDP包來解決這個問題:如果入站UDP包匹配出站UDP包的目標地址和連線埠號就讓它進來。如果在記憶體中找不到匹配的UDP包就只好拒絕它了!但是,我們如何確信產生數據包的外部主機就是內部客戶機希望通信的伺服器呢?如果黑客詐稱DNS伺服器的地址,那么他在理論上當然可以從附著DNS的UDP連線埠發起攻擊。只要你允許DNS查詢和反饋包進入網路這個問題就必然存在。辦法是採用代理伺服器。

所謂代理伺服器,顧名思義就是代表你的網路和外界打交道的伺服器。代理伺服器不允許存在任何網路內外的直接連線。它本身就提供公共和專用的DNS、郵件伺服器等多種功能。代理伺服器重寫數據包而不是簡單地將其轉發了事。給人的感覺就是網路內部的主機都站在了網路的邊緣,但實際上他們都躲在代理的後面,露面的不過是代理這個假面具。

注意事項

防火牆實現了你的安全政策

1.

防火牆實現了你的安全政策

防火牆加強了一些安全策略。如果你沒有在放置防火牆之前制定安全策略的話,那么就是制定的時候了。它可以不被寫成書面形式,但是同樣可以作為安全策略。如果你還沒有明確關於安全策略應當做什麼的話,安裝防火牆就是你能做的最好的保 護你的站點的事情,並且要隨時維護它也是很不容易的事情。要想有一個好的防火牆,你需要好的安全策略---寫成書面的並且被大家所接受。

一個防火牆在許多時候並不是一個單一的設備

1.

一個防火牆在許多時候並不是一個單一的設備

除非在特別簡單的案例中,防火牆很少是單一的設備,而是一組設備。就算你購買的是一個商用的“all-in-one”防火牆應用程式,你同樣得配置其他機器(例如你的網路伺服器)來與之一同運行。這些其他的機器被認為是防火牆的一部分,這包含了對這些機器的配置和管理方式,他們所信任的是什麼,什麼又將他們作為可信的等等。你不能簡單的選擇一個叫做“防火牆”的設備卻期望其擔負所有安全責任。

2. 防火牆並不是現成的隨時獲得的產品

選擇防火牆更像買房子而不是選擇去哪裡度假。防火牆和房子很相似,你必須每天和它待在一起,你使用它的期限也不止一兩個星期那么多。都需要維護否則都會崩潰掉。建設防火牆需要仔細的選擇和配置一個解決方案來滿足你的需求,然後不斷的去維護它。需要做很多的決定,對一個站點是正確的解決方案往往對另外站點來說是錯誤的。

3. 防火牆並不會解決你所有的問題

並不要指望防火牆靠自身就能夠給予你安全。防火牆保護你免受一類攻擊的威脅,人們嘗試從外部直接攻擊內部。但是卻不能防止從LAN內部的攻擊,它甚至不能保護你免受所有那些它能檢測到的攻擊。

4. 使用默認的策略

正常情況下你的手段是拒絕除了你知道必要和安全的服務以外的任何服務。但是新的漏洞每天都出現,關閉不安全的服務意味著一場持續的戰爭。

5. 有條件的妥協,而不是輕易的

人們都喜歡做不安全的事情。如果你允許所有的請求的話,你的網路就會很不安全。如果你拒絕所有的請求的話,你的網路同樣是不安全的,你不會知道不安全的東西隱藏在哪裡。那些不能和你一同工作的人將會對你不利。你需要找到滿足用戶需求的方式,雖然這些方式會帶來一定量的風險。

6. 使用分層手段

並在一個地點以來單一的設備。使用多個安全層來避免某個失誤造成對你關心的問題的侵害。

7. 只安裝你所需要的

防火牆機器不能像普通計算機那樣安裝廠商提供的全部軟體分發。作為防火牆一部分的機器必須保持最小的安裝。即使你認為有些東西是安全的也不要在你不需要的時候安裝它。

8. 使用可以獲得的所有資源

不要建立基於單一來源的信息的防火牆,特別是該資源不是來自廠商。有許多可以利用的資源:例如廠商信息,我們所編寫的書,郵件組,和網站。

9. 只相信你能確定的

不要相信圖形界面的手工和對話框或是廠商關於某些東西如何運行的聲明,檢測來確定應當拒絕的連線都拒絕了。檢測來確定應當允許的連線都允許了。

10. 不斷的重新評價決定

你買的房子今天可能已經不適合你了。同樣的,你一年以前所安裝的防火牆對於你現在的情況已經不是最好的解決方案了。對於防火牆你應當經常性的評估你的決定並確認你仍然有合理的解決方案。更改你的防火牆,就像搬新家一樣,需要明顯的努力和仔細的計畫。

11. 要對失敗有心理準備

做好最壞的心理準備。防火牆不是萬能的,對一些新出現的病毒和木馬可能沒有反映,要時常的更新.機器可能會停止運行,動機良好的用戶可能會做錯事情,有惡意動機的用戶可能做壞的事情並成功的打敗你。但是一定要明白當這些事情發生的時候這並不是一個完全的災難,因為病毒發展迅速,而且品種繁多,防火牆不可能全部都能阻攔,所以要做好最壞的心理準備的同時還要為下一步預防做好打算,加強自身的安全防護。

世界排名

Online Armor Free 4.0.0.35-免費版本

Malware Defender 2.6.0-國產防火牆

Kaspersky Internet Security 2010 9.0.0.736

Privatefirewall 7.0.20.36-免費版本

Outpost Firewall Free 2009 6.5.1.2725.381.0687-免費版本

ZoneAlarm Extreme Security 9.1.008.000

Norton Internet Security 2010 17.5.0.127

Jetico Personal Firewall 2.1.0.7.2412

BitDefender Internet Security 2010 13.0.19.347

Trend Micro Internet Security Pro 2010 17.50.1647.0000

avast! Internet Security 5.0.418.0

McAfee Internet Security 2010 11.0.378

Panda Internet Security 2010 15.01.00

具體操作

1、如何關閉windows防火牆
a:打開“開始”選單,“運行”輸入control命令打開控制臺;
b:在控制臺中找到“防火牆”圖示雙擊打開;
c:選擇“關閉(不推薦)”並確定即可關閉防火牆。

2、如何打開windows防火牆
只需將關閉防火牆的第三步改成“啟用(推薦)”即可開啟示windows防火牆。

未來趨勢

套用層安全

必須具有豐富的套用識別,才能確保全全策略更精細,更可視。
動態更新的套用識別技術。隨著網路套用的快速增長,基於各種協定的網路套用日趨增加,新一代防火牆必須能夠依據協定特點識別各種網路套用和網路動作,並且內置到防火牆內部且套用和動作的識別可以動態更新。
用戶識別技術。可以根據用戶類型、用戶部門、用戶許可權、IP組等不同分類對網路用戶進行分類,使每一類用戶有不同的網路許可權。同時應該與AD和RADIUS、單點登錄、智慧卡等結合完善接入用戶的認證。

內容級防護

全面的內容防護至少要包括漏洞掃描、WEB防護、內容過濾三個內容。漏洞掃描要能發現對作業系統、套用系統、網路協定、用戶設備漏洞的防護,對利用漏洞進行的攻擊進行阻斷。WEB防護功能應包括網站攻擊防護、套用隱藏、口令保護和許可權控制。內容過濾功能應該能顯現對關鍵字、URL集、病毒、木馬、惡意控制項/腳本的過濾。

套用層處理

如果使用傳統的硬體架構方式對報文進行處理,不僅對硬體要求高,同時套用層報文處理會大量占用設備資源,很難突破千兆處理。必須對防火牆進行新架構設計,拋棄了傳統防火牆NP、ASIC等適合執行網路層重複計算工作的硬體設計,採用了更加適合套用層靈活計算能力的多核並行處理技術;在系統架構上也要放棄了UTM多引擎,多次解析的架構,需要採用了更為先進的一體化單次解析引擎,將漏洞、病毒、Web攻擊、惡意代碼/腳本、URL庫等眾多套用層威脅統一進行檢測匹配,能夠一次對報文實現從網路層到套用層的解析,達到萬兆處理能力。

安全方案

通過本章的分析,設計網路安全、可視化套用管控、全面套用安全三個大項部署未來防火牆框架。

選購誤區

防火牆是好,但是,若選擇不當的話,可能會起到相反的作用。在這裡,筆者想跟大家交流一下防火牆選購的經驗。筆者結合自己與朋友防火牆管理方面的心得,總結出了防火牆選購中的五大誤區。權當拋磚引玉。

誤區一:太過於相信實驗數據。

在防火牆的產品說明中,往往會有一些性能、功能方面的參考數字。如吞吐量有6G, 抗病毒能力有多強等等。對於這些數字我們在防火牆選購的時候不能夠太過於迷信。而應該以辯證的眼光去看待這些數字。

一方面,這些數字都是實驗數據。也就是說,是在一個相對合理的、干擾因素比較少的情況下得出的數據。但是,說實話,任何一個企業的網路環境都不可能達到他們測試產品的那種水準。當企業主機數量比較多,若分段不合理,就會造成比較多的網路廣播,那時也會影響到這個最終的有效吞吐量。所以,對於實驗室出來的數據,我們往往要打個對摺。

另一方面,不能夠光看某個指標。在選購防火牆的時候,有多大幾十項的指標,若其中一個指標,如吞吐量,即使高達10G,但是,若其他指標跟不上去的話,那么一切都是白搭。有時候,廠商在測試產品的時候,往往會把某些功能關掉後再進行測試。在這種情況下,測試出來的數據,實用價值不會很大。因為若把其他功能關掉,就啟用一項功能,則CPU等硬體資源就不會發生爭奪。如此,某個指標的數字看起來就會好看許多。而在企業中部署防火牆的時候,不可能只用一項功能。把其他功能開起來的話,則這個數字就會打折扣了。

總之,在防火牆選購的時候,不要太過於相信實驗數據。對於他們從實驗室得出來的數字,筆者往往會給他們打個對摺。打折後的數據,可能水分會少一點。所以,實驗數據只能拿來參考。在有條件的情況下,網路管理員要結合自己的公司網路環境,對防火牆產品進行測試。這測試出來的結果,對於我們防火牆選購才會有參考價值。

網路管理員不要走入這個誤區。否則的話,網路管理員只有自己消化由此帶來的苦果了。

誤區二:功能花哨卻不實用。

信息化技術越來越複雜,而且防火牆的競爭也越來越激烈。所以,防火牆廠商為了提供自己產品的市場競爭力,就往往在自己的防火牆產品中集成比較多的功能,以增加市場的賣點。

對於這些功能,我們要冷眼看待。

一方面,要看看這些額外的功能企業是否需要。如有些防火牆產品中會集成VPN等功能。但是,企業是否需要這項功能呢?網路管理員要事先考慮清楚。因為VPN服務不僅在防火牆上可以實現,而且在路由器上也可以實現。如果企業對於VPN有比較高的性能要求的話,甚至可以部署一個專用的VPN伺服器等等。若在防火牆上實現VPN功能,筆者個人認為,有著畫蛇添足的味道。在管理上,沒有其他實現方式那邊簡便與人性化。

另一方面,一些額外的功能會耗費防火牆的資源。上面筆者說過,在實驗室中測試產品的時候,往往只是測試單一的功能。如測試吞吐量的話,會把其他功能關閉掉。若把防火牆的功能都啟用起來的話,則某個指標的數字可能需要打個兩折了。所以,花哨功能多了,就會大大影響防火牆的性能。這就好像一個巨無霸,網路管理員必須為他提供更好的硬體配置,才能夠讓其正常的運行 。

相關詞條

相關搜尋

熱門詞條

聯絡我們