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,其中目的埠口為 161;SNMP 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 |
|
外部 Manager 傳送命令給內部 Agent(UDP)。 |
2 |
出去 |
內部 |
外部 |
UDP |
161 |
>1024 |
Null |
內部 Agent 回應訊息給外部 Manager(UDP)。 |
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 訊息給外部 Manager(UDP)。 |
8 |
進入 |
內部 |
外部 |
UDP |
162 |
>1024 |
Null |
外部 Manager 回應 Trap 訊息給內部 Agent(UDP)。 |
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 |
內部 |
|
>1024 |
161 |
皆可 |
允許 |
D |
出去 |
內部 |
138.45.6.32 |
|
161 |
>1024 |
是 |
允許 |
E |
皆可 |
任意 |
任意 |
|
任意 |
任意 |
皆可 |
拒絕 |
F |
皆可 |
任意 |
任意 |
|
任意 |
任意 |
皆可 |
拒絕 |
如果欲增加內部電腦可以利用 Trap 命令與外部電腦(138.45.6.32)通訊,可再加入 Trap 的相關規則,這留給讀者自行練習,作者不再贅言。
|