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

 

10-8 IP/UDP 封包過濾

內容:

10-8-1 UDP 過濾訊息

UDP 協定是屬於非連接方式,每一個封包都是獨立的,因此,決定 IP/UDP封包是否給予通過的判斷訊息如圖 10-13 所示:

10-13 IP/UDP 封包過濾訊息

  • 來源位址(SA):封包的來源位址。

  • 目的位址(DA):封包的目的位址。

  • 協定型態(Protocol, Pro):UDP 型態。

  • 來源埠口(Source Port, SP:封包的來源 UDP 埠口。

  • 目的埠口(Destination Port, DP:封包的目的 UDP 埠口。

雖然 UDP 封包只有來源和目的埠口可作為過濾條件的判斷,但 UDP 協定並沒有交談式的建立連線(三向握手式連絡法),每一個封包的進出都是獨立的,因此,只要針對封包的目的埠口做過濾判斷即可。

一般來講,我們設定防火牆都是以所提供的服務為基礎,並且以伺服器的傳輸埠口與所使用的協定(TCP UDP)為過濾條件。但有許多伺服器為了方便連結使用都會同時使用 UDP TCP 協定,也就是說,伺服器是固定在某一傳輸埠口(如 161),客戶端可使用 TCP 協定去連接它(TCP/161)或 UDP 協定來連接(UDP/161),因此,我們在設定過濾規則時,必須同時考慮到可能連接的兩種協定。

10-8-2 SNMP 封包過濾範例

我們舉一個較複雜的範例來說明,如何同時考慮到 UDP TCP 協定。圖 13-14 『簡易網路管理協定』(Simple Network Management Protocol, SNMP的運作程序。一般網路只允許所有 SNMP 封包在內部網路運作,而不能跨越防火牆到外部網路;另一方面,也禁止外部使用者以 SNMP 命令來入侵內部網路,從事破壞或偷竊內部網路的狀態(SNMP 資料)。但某些情況,為了管理方便而允許外部使用者管理內部網路,我們就以這個範例說明 UDP/TCP 同時過濾的情況,但需先瞭解 SNMP 協定的運作程序:

  • 命令運作程序: SNMP Manager 下達命令(Set/Get/GetNext/GetBulk)給 SNMP Agent,其中目的埠口為 161SNMP Agent 收到命令後,並回應訊息給 SNMP Manager,其中來源埠口為 161

  • Trap 運作程序: SNMP Agent 有異常事件時,會以 Trap 命令傳送訊息給 SNMP Manager,而 SNMP Manager 聆聽埠口 162,隨時等待 SNMP Agent Trap 訊息,如收到訊息便回應給 SNMP Agent,其中來源埠口為 162

13-14 SNMP 封包過濾設定範例

(A) SNMP 封包訊息表

假設外部網路有一個 SNMP Manager,想通過防火牆來操控內部網路的 SNMP Agent(使用 Set/Get 等命令),此外,內部 SNMP Agent 也可能以 Trap 命令,將網路狀態傳送給外部 SNMP Manager。若採用 TCP UDP 協定傳輸,則可能出現的封包如表 13-8

13-8 SNMP 封包訊息表

    編號

    封包

    方向

    來源

    位址

    目的

    位址

    封包

    型態

    來源

    埠口

    目的

    埠口

    ACK

    封包功能

    1

    進入

    外部

    內部

    UDP

    >1024

    161

    Null

    外部 Manager 傳送命令給內部 AgentUDP)。

    2

    出去

    內部

    外部

    UDP

    161

    >1024

    Null

    內部 Agent 回應訊息給外部 ManagerUDP)。

    3

    進入

    外部

    內部

    TCP

    > 1024

    161

    No

    外部 Manager 向內部 Agent 要求TCP 連線。

    4

    出去

    內部

    外部

    TCP

    161

    >1024

    Yes

    內部 Agent 同意外部 Manager TCP 連線要求。

    5

    出去

    內部

    外部

    TCP

    >1024

    161

    No

    內部 Agent 向外部 Manager 要求 TCP 連線,以備傳送 Response

    6

    進入

    外部

    內部

    TCP

    161

    >1024

    Yes

    外部 Manager 同意內部 Agent 要求 TCP 連線,以備傳送 Response

    7

    出去

    外部

    內部

    UDP

    >1024

    162

    Null

    內部 Agent 傳送 Trap 訊息給外部 ManagerUDP)。

    8

    進入

    內部

    外部

    UDP

    162

    >1024

    Null

    外部 Manager 回應 Trap 訊息給內部 AgentUDP)。

    9

    出去

    外部

    內部

    TCP

    >1024

    162

    No

    內部 Agent 向外部 Manager 要求建立 TCP 連線,以備傳送 Trap 訊息。

    10

    進入

    內部

    外部

    TCP

    162

    >1024

    Yes

    外部 Manager 同意內部 Agent 所要求的 TCP 連線(Trap 訊息)。

    11

    進入

    外部

    內部

    TCP

    162

    >1024

    No

    外部 Manager 向內部 Agent 要求建立 TCP 連線,以備回應 Trap 訊息。

    12

    出去

    內部

    外部

    TCP

    >1024

    162

    Yes

    內部 Agent 同意外部 Manager 所要求的 TCP 連線(回應 Trap)。

(B)僅允許外部某主機連線

我們假設允許某一外部主機(138.45.6.32),可以經過防火牆來管理內部網路,但不允許內部網路設備以 Trap 命令通知外部 SNMP Manager,所設定的規則如表 13-9 所示。

13-9 SNMP 封包過濾表

    規則

    封包方向

    來源位址

    目的位址

    協定

    來源埠口

    目的埠口

    ACK 設定

    措施

    A

    進入

    138.45.6.32

    內部

    UDP

    >1024

    161

    Null

    允許

    B

    出去

    內部

    138.45.6.32

    UDP

    161

    >1024

    Null

    允許

    C

    進入

    138.45.6.32

    內部

    TCP

    >1024

    161

    皆可

    允許

    D

    出去

    內部

    138.45.6.32

    TCP

    161

    >1024

    允許

    E

    皆可

    任意

    任意

    TCP

    任意

    任意

    皆可

    拒絕

    F

    皆可

    任意

    任意

    UDP

    任意

    任意

    皆可

    拒絕

如果欲增加內部電腦可以利用 Trap 命令與外部電腦(138.45.6.32)通訊,可再加入 Trap 的相關規則,這留給讀者自行練習,作者不再贅言。

主講人:粘添壽博士

 

資訊與網路安全技術