防火牆

防火牆（Firewall）在電腦科學領域中是一個架設在網際網路與內網之間的網路安全設備，根據持有者預定的策略來監控往來的傳輸。防火牆可能是一台專屬的網路設備，也可執行於主機之上，以檢查各個網路介面的網路傳輸。它是目前最重要的一種網路防護設備，從專業角度來說，防火牆是位於兩個或以上網路間，實行網路間訪問或控制的一組元件集合之硬體或軟體。

## 功能

防火牆最基本的功能就是隔離網路，透過將網路劃分成不同的區域（通常情況下稱為ZONE），制定出不同區域之間的訪問控制策略來控制不同信任程度區域間傳送的數據流。例如網際網路是不可信任的區域，而內部網絡是高度信任的區域。以避免安全策略中禁止的一些通信。它有控制資訊基本的任務在不同信任的區域。典型信任的區域包括網際網路(一個沒有信任的區域) 和一個內部網絡(一個高信任的區域)。最終目標是：根據最小特權原則，在不同水平的信任區域，透過連通安全政策的運行，提供受控制的連通性。

例如：TCP/IP Port 135~139是 Microsoft Windows 的【網上鄰居】所使用的。如果電腦有使用【網上鄰居】的【分享資料夾】，又沒使用任何防火牆相關的防護措施的話，就等於把自己的【分享資料夾】公開到Internet，使得任何人都有機會瀏覽目錄內的檔案。且早期版本的Windows有【網上鄰居】系統溢位的無密碼保護的漏洞（這裡是指【分享資料夾】有設密碼，但可經由此系統漏洞，達到無須密碼便能瀏覽資料夾的需求）。防火牆的本義，是指古代構築和使用木製結構房屋時，為防止火災發生及蔓延，人們將堅固石塊堆砌在房屋周圍做為屏障，這種防護結構建築就被稱為防火牆。現代網路時代引用此喻意，指隔離本地網路與外界網路或是區域網路間與網際網路或網際網路的一道防禦系統，藉由控制過濾限制訊息來保護內部網路資料的安全。

## 防火牆類型

針對普通使用者的個人防火牆，通常是在一部電腦上具有封包過濾功能的軟體，如ZoneAlarm及Windows XP SP2後內建的防火牆程式。而專業的防火牆通常為網路設備，或是擁有2個以上網路介面的電腦。以作用的TCP/IP堆疊區分，主要分為網路層防火牆和應用層防火牆兩種，但也有些防火牆是同時運作於網路層和應用層。

### 網路層(封包過濾型)防火牆

運作於TCP/IP協定堆疊上。管理者會先根據企業/組織的策略預先設定好封包通過的規則或採用內建規則，只允許符合規則的封包通過。

一般而言，由於來源IP不易阻擋，通常藉由阻擋非80/443的埠，以阻擋來自非80/443的埠的不需要的流量。

網路層防火牆可分為：狀態感知(stateful)與無狀態感知(stateless)。

- 狀態感知(stateful)

狀態感知防火牆會針對活動中的連線維護前後傳輸的脈絡，並使用這些狀態資訊來加速封包過濾處理。

根據需求，現行的網路連線由各種性質描述，包括：來源端IP位置，目的端IP位置、UDP或TCP埠口號碼，以及連線所處的狀態階段(連線初始化、交握中，資料傳輸中、或完成連線)。

如果有封包與現存連線不符，防火牆會根據規則來評估此封包是否該屬於另外一個新連線。如果封包符合現存連線，防火牆會根據自己所建立的狀態表完成比對，該封包就不必額外處理，即可通過兩端網路。

- 無狀態感知(stateless)

無狀態感知防火牆所需較少的記憶體，針對於通過的封包，作比較簡易與快速的過濾。如此，相較於查詢對話工作期間(session)，無狀態感知防火牆所耗的時間也較少。

這種防火牆可處理無狀態網路通訊協定，這種協定並沒有對話工作期間(session)的概念。

反之，這種防火牆無法根據溝通的兩端所處的狀態階段作出複雜的決策。

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

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

### 應用層防火牆

<image>

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

防火牆藉由監測所有的封包並找出不符規則的內容，可以防範電腦蠕蟲或是木馬程式的快速蔓延。實際上，這個方法繁復（因軟體種類極多），所以大部分防火牆都不會考慮以這種方法設計。

截至2012年，所謂的下一代防火牆（NGFW）都只是「拓寬」並「深化」了在應用棧檢查的能力。例如，現有支持深度分組檢測的現代防火牆均可擴展成入侵預防系統（IPS），使用者身份集成（使用者ID與IP或MAC地址綁定），和Web應用防火牆（WAF）。

### 代理服務

代理（Proxy）伺服器（可以是一台專屬的網路設備，或是在一般電腦上的一套軟體）採用應用程式的運作方式，回應其所收到的封包（例：連線要求）來實現防火牆的功能，而封鎖/拋棄其他封包。

代理伺服器用來連接一個網路(例：網際網路)到另一個特定子網(例：企業內網)的轉送者。

代理會使從外部網路竄改一個內部系統更加困難，且只要對於代理有良好的設定，即使內部系統出現問題也不一定會造成安全上的漏洞。相反地，入侵者也許劫持一個公開可及的系統和使用它作為代理人為他們自己的目的；代理人偽裝作為那個系統對其它內部機器。當對內部地址空間的用途增加安全，破壞者也許仍然使用方法譬如IP欺騙（IP spoofing）試圖通過封包對目標網路。

防火牆經常有網路地址轉換(NAT) 的功能，並且主機被保護在防火牆之後共同地使用所謂的「私人地址空間」，定義在RFC 1918。

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

## 防火牆架構

<image>

### 主機型防火牆

此防火牆需有兩張網路卡，一張與網際網路連接，另一張與內聯網連接，如此網際網路與內聯網的通道無法直接接通，所有封包都需要透過主機傳送。

### 雙閘型防火牆

此防火牆除了主機型防火牆的兩張網路卡外，另安裝應用服務轉送器的軟體，所有網路封包都須經過此軟體檢查，此軟體將過濾掉不被系統所允許的封包。

### 屏障單機型防火牆

此防火牆的硬體設備除需要主機外，還需要一個路由器，路由器需具有封包過濾的功能，主機則負責過濾及處理網路服務要求的封包，當網際網路的封包進入屏障單機型防火牆時，路由器會先檢查此封包是否滿足過濾規則，再將過濾成功的封包，轉送到主機進行網路服務層的檢查與傳送。

### 屏障雙閘型防火牆

將屏障單機型防火牆的主機換成雙閘型防火牆。

### 屏障子網域型防火牆

此防火牆藉由多台主機與兩個路由器組成，電腦分成兩個區塊，屏障子網域與內聯網，封包經由以下路徑，第一個路由器->屏障子網域->第二路由器->內聯網，此設計因有階段式的過濾功能，因此兩個路由器可以有不同的過濾規則，讓網路封包更有效率。若一封包通過第一過濾器封包，會先在屏障子網域進行服務處理，若要進行更深入內聯網的服務，則要通過第二路由器過濾。

## 缺點

正常狀況下，所有網際網路的封包軟體都應經過防火牆的過濾，這將造成網路交通的瓶頸。例如在攻擊性封包出現時，攻擊者會不時寄出封包，讓防火牆疲於過濾封包，而使一些合法封包軟體亦無法正常進出防火牆。

## 外部連結

- 科摩多免費防火牆
- 賽門鐵克在線檢測
- 資訊安全機構Matousec.com對個人防火牆進行的防漏洞測試（Leak test）排名
- Juniper 網路公司防火牆 / IPSec VPN