資訊與網路安全技術 第 十章 防火牆  上一頁      下一頁

 

10-6 IP/TCP 封包過濾

內容:

 10-6-1 IP/TCP 過濾訊息

對一般應用而言,僅利用 IP 封包標頭從事過濾條件是不夠的,若能拆解到上一層協定(如TCPUDP)標頭,了解該封包功能之後,再判斷是否允許通過防火牆,這樣可能比較實際一點。圖 13-10 IP 封包中包裝 TCP 訊息,一般防火牆所採用的判斷訊息如下:

  • 來源位址(SA): IP 標頭取得,表示該封包的來源 IP 位址。

  • 目的位址(DA): IP 標頭取得,表示該封包的目的 IP 位址。

  • 協定型態(Pro): IP 標頭取得,表示該封包所承載的協定,如 TCP 協定。

  • 來源埠口(Source Port, SP):此封包的來源傳輸埠口(TCP Port)。

  • 目的埠口(Destination Port, DP):此封包之目的傳輸埠口(TCP Port)。

  • 位元碼(Code bits):此為 TCP 標頭欄位,包含有 URGACKPSHRSTSYS FIN 等位元控制訊息。至於應該取用那些控制訊息,作為封包過濾的判斷條件,管理者可依照防火牆的安全條件決定,但較常取用的訊息有:

    • ACKAcknowledge):表示回應確認給原發送端。此旗號是判斷條件的關鍵性因素,但它必須配合三向握手式連絡法的運作程序,容後說明。

    • SYNSynchronous):表示通知對方要求連線的控制訊息。

10-10 IP/TCP 過濾封包訊息

一般 TCP/UDP 1024 以前的埠口皆歸劃為系統管理者使用,並且將較常用的『著名埠口』(Well-known設定在 1024 之前的埠口,至於使用者的隨機埠口都介於 1024 ~ 65535 之間。在正常的情況下,由埠口號碼就可以知道該封包所欲連結之伺服器,譬如,HTTP 伺服器固定在埠口 80Telnet 伺服器則在埠口 23

封包過濾條件是由 IP TCP 標頭上的訊息所構成,更能表示出封包的特性。再說,一般系統為了達到多重連線的功能(譬如,一個 Web 伺服器可同時接受多個客戶端連線),每一個通訊連線都是由雙方的 IP 位址與 TCP 埠口號碼來表示,譬如,192.38.24.50:80 ←→ 163.15.2.30:3456,則表示兩部電腦(192.38.24.50 163.15.2.30)的傳輸埠口(80 3456)之間的連線。由此可見,的確須拆解到 TCP 封包標頭,對於封包過濾的條件判斷才具意義。

10-6-2 TCP ack 參數 判斷

我們不可能為了架設防火牆設施,去修改目前運作中的 TCP 協定,只能就現有運作的程序中找尋可能過濾的條件因素。TCP 協定是屬於連接導向的傳輸方式,通訊雙方必須先建立連線,才可以傳輸資料。因此,如欲限制 TCP 連線是否可通過防火牆的話,只要限制其連線與否即可。也就是說,只要過濾 TCP 建立連線的封包,即可決定是否允許該訊息通過防火牆。

TCP 連線是採用三向握手式連絡法,如圖 10-11 所示。它是利用封包標頭上的兩個旗號SYNSynchronous,要求連線)與 ACKAcknowledge,確認),達到雙方溝通的目的,其運作程序如下:發起者發送要求連線封包(SYN = 1ACK = 0訊號 (1)),回應者發送同意連線封包(SYN = 0ACK = 1訊號 (2)),發起者再確認同意連線(SYN = 0ACK = 1訊號 (3))。由此可以發現一個重要現象,除了要求連線封包的 ACK 旗號為零外(ACK=0),其它封包的 ACK 旗號都為 1ACK=1),因此只要從 ACK 的內容即可判斷是否為連線要求封包,其中:

  • ACK = 0表示連線要求訊號。

  • ACK = 1表示回應同意連線訊號。

如此一來,再由 ACK 旗號、目的位址、以及來源位址,便可判斷出是外出或進入的連線要求,或是回應連線要求的訊號;如果再增加傳輸埠口號碼,更可以瞭解該連線所欲連接的應用系統(如 Telnet FTP),一般只要利用這些參數來過濾封包,皆可達到防火牆的功能。

10-11 TCP 三向握手式連絡法

主講人:粘添壽博士

 

資訊與網路安全技術