隨著網路的普及與上網費用的大幅降低,現今企業及機構大量運用 Internet 及區域網路以達成資訊快速流通與提高整體生產力的目的。而 Microsoft Windows 2000 Server 系列產品,適時的提供企業方便而有效的建立 Internet、Intranet 與 Extranet 等各種規模的網路服務,更大大的降低企業資訊網路建置與維護成本。
然而,企業在應用網路便利性的同時,應重視網路資源的適當使用與資訊安全的問題。Windows 2000 Server 系列產品在網路流量管制提供 IP 封包篩選器(IP Packet Filtering) 與 QoS 等功能可供利用,而對網路資訊與資源的安全管制除了使用者身份驗證、共用資源存取控制、檔案加密與存取控制及各種稽核外,並提供 IP 封包篩選器、IP Security 與虛擬私有網路(VPN) 來對 IP 封包驗證及加密所傳輸的資料。我們就對如何使用 Windows 2000 Server 路由及遠端存取服務的 IP 封包篩選器來管制 IP 網路封包的進出,並降低重要資料與共用資源被駭客與網路蠕蟲危害的程度,提供您參考。
IP 封包篩選器的功能
無論您使用 Windows 2000 Server 做為 IP 網路路由器或遠端存取伺服器,您都可以使用 IP 封包篩選器功能,針對每一個 IP 界面獨立指定特定的篩選條件。當然,您也可以配合網路位址轉譯(NAT)與指定撥號路由(DDR)的功能來使用它。在您每一個 IP 網路界面上的輸入篩選器與輸出篩選器的預設規則為接收(或傳輸)所有的封包。您可以重新設定篩選的規則為接收(或傳輸)所有的封包,除非它符合您所特別指定的條件才丟棄它;或是變更篩選規則為丟棄所有的封包,除非它符合您所特別指定的條件才接收(或傳輸)它。而您可以指定的篩選條件包括來源網路、目的地網路、通訊協定、來源連接埠與目的連接埠。
例如,我們可以設定 RRAS Server 界面 A 的輸入篩選為接收除了 ICMP 協定以外的所有的封包,來禁止由界面 A 所連接的 IP 網路將 ICMP 封包傳輸給界面 B 與界面 C 所連接的 IP 網路;並設定界面 B 的輸出篩選為傳輸除了 SNMP 協定以外的所有的封包,來禁止界面 B 所連接的 IP 網路接收到由界面 A 或界面 C 連接的 IP 網路所傳來的 SNMP 封包。
圖 1. IP 封包篩選應用範例
IP 封包傳輸
在每一個 IP 封包中,皆有 IP Header 標示著這個封包透過 IP 網路傳送到目的地電腦(或設備)所需要的資訊,其中含有來源端的 IP Address、目的地的 IP Address、上層協定的編號與 TTL 等。在 IP 協定上層有 TCP 與 UDP 等協定,而 TCP 與 UDP 協定皆有 Port Number 用以與應用層的各種協定及服務連接,而 IP 網路上常用的應用服務大多採用 Client/Server 架構,在同一部電腦可能同時安裝 Client 與 Server 軟體,並且或許會同時開啟多個同種類的 Client 與不同部電腦上的 Server 服務通訊。例如:在同一部 Windows 2000 Professional 工作站上同時開啟 2 個 Internet Explorer,其中一個連接 Microsoft Web Server ,而另一個連接 Intranet 的 Web Server。所以,通常 Client 與 Server 所使用的 Port 並不相同。在 Internet 上給公眾所使用的 Server 服務,它們的 Port Number 通常是固定的,並且使用 1024 以前的號碼;而 Client 通常使用 1024 以後的 Port Number,並且是動態決定的。
讓我們以使用 Internet Explorer 瀏覽 Web 網頁為例,來檢視封包傳輸與 Packet Filtering 的運作。依圖 2 所示,我們有一部 Windows 2000 Professional 工作站(Client),IP 為 192.168.42.71,使用者在這部工作站上使用 Internet Explorer 瀏覽 192.168.143.234 的 Web Server。此時,Client 對 Server 送出的 HTTP Request 封包中的 IP Header 中標示著來源 IP 為 192.168.42.71、目的地為 192.168.143.234,TCP Header 標示著來源 Port 為 1057(動態取得,並非固定)、目的地 Port 為 80,當這個封包經由 IP 網路轉送至 RRAS Server 的界面 A 時,我們為界面 A 所設定的封包篩選條件的輸入篩選即運作,若符合所設定的規則 RRAS 就接收這個封包,並經 IP 路由機制決定由界面 B 傳出(若規則不符,則丟棄),在由界面 B 傳出之前,我們為界面 B 所設定的封包篩選條件的輸出篩選即運作,若符合所設定的規則 RRAS 就將這個封包透過界面 B 往 192.168.143.0 網段傳輸(若規則不符,則丟棄)。當 192.168.143.234 的 Web Server 接收到 Client 所傳來的瀏覽要求後,Web Server 送出 HTTP Response 封包,該封包的 IP Header 中標示著來源 IP 為 192.168.143.234、目的地為 192.168.42.71,TCP Header 標示著來源 Port 為 80、目的地 Port 為 1057(原 Client 的 Port Number),當這個封包經由 IP 網路轉送至 RRAS Server 的界面 B 時,我們為界面 B 所設定的封包篩選條件的輸入篩選即運作,若符合所設定的規則 RRAS 就接收這個封包,並經 IP 路由機制決定由界面 A 傳出(若規則不符,則丟棄),在由界面 A 傳出之前,我們為界面 A 所設定的封包篩選條件的輸出篩選即運作,若符合所設定的規則 RRAS 就將這個封包透過界面 A 往 192.168.42.0 網段傳輸(若規則不符,則丟棄) 。
圖 2. IP 封包傳輸
開啟您所選擇的網路界面後,您可以看到 [輸入篩選器] 與 [輸入篩選器] 的設定按鈕(如圖 4)。點選篩選器按鈕後,您即可看到該界面的輸出或輸入篩選規則。
圖 4. 篩選器
禁止不必要的存取以控制網路的流量
如果貴公司希望禁止員工使用 FTP 直接由 Internet 下載大量非必要的檔案,您可以對連接公司區域網路的界面設定輸入篩選,並對連接 Internet 的界面也設定對應的輸入篩選:
1. 開啟「連接公司區域網路的界面」。
2. 點選 [輸入篩選器]。
3. 點選 [新增],將 [通訊協定] 指定為 [TCP],並在目的連接埠輸入 21 後按 [確定](如圖 5)。
4. 再次點選 [新增],將 [通訊協定] 指定為 [TCP],並在目的連接埠輸入 20 後按 [確定]。
圖 5. 篩選 FTP 封包
6. 開啟「連接 Internet 網路的界面」。
圖 6. 接收所有非 FTP 的封包
6. 開啟「連接 Internet 網路的界面」。
7. 點選 [輸入篩選器]。
8. 點選 [新增],將 [通訊協定] 指定為 [TCP],並在來源連接埠輸入 21 後按 [確定]。
9. 再次點選 [新增],將 [通訊協定] 指定為 [TCP],並在來源連接埠輸入 20 後按 [確定]。
10. 確定規則為 [接收所有封包(除了那些符合下列條件的封包以外)] 後,按 [確定]。
說明:
1. FTP 使用 TCP/21 傳送命令並使用 TCP/20 傳送資料。
2. [步驟 6] 至 [步驟 10] 若沒有設定,公司內部同仁仍無法存取 Internet 的 FTP Server,這是因為使用 FTP 時封包需傳出並傳入,封包傳不出去當然就存取不到。
3. 依照上述的設定,若[步驟 6] 至 [步驟 10] 沒有設定,您的 RRAS Server 仍可以存取 Internet 的 FTP Server,因為在 RRAS Server 上使用 FTP 時,封包並未由連接公司區域網路的界面傳入,所以該界面的輸入篩選器規則並沒有使用,若要讓 RRAS Server 也無法存取 Internet 的 FTP Server 則可改由對 RRAS 「連接 Internet 網路的界面」設定[輸出篩選器]即可(設定方法同 [步驟 3] 至 [步驟 5])。
假設貴公司內部有 203.66.136.0 這一個 IP 子網路,希望禁止 IP Address 在 203.66.136.16 至 203.66.136.31 這個範圍的電腦直接存取 Internet 的資源, 您可以參考上述的步驟,而將 [連接公司區域網路界面] 的 [輸入篩選器] 條件設為:勾選 [來源網路] 並指定 IP 位址為 203.66.136.16 子網路遮罩為 255.255.255.240 即可(如圖 7)。
圖 7. 禁止 一段 IP Address 的電腦存取 Internet
使用 Packet Filtering 來降低駭客與網路蠕蟲的威脅
降低來自網路的威脅應管制封包的進出,只允許絕對必要的協定及電腦透過您的 RRAS Server 進行溝通。所以,您應該先查出您網路中有哪些電腦的哪些服務需要讓 Internet 大眾存取,以及您企業內的使用者需要使用 Internet 的哪些服務。表 1 列出企業常用的協定編號與 Port Number,您可再參考相關的 RFC 文件得到更詳細的資料。請特別注意,如果您已設定好您的篩選器讓企業內同仁能夠使用 Client 軟體存取 Internet 的 Server,並不代表 Internet 的 Client 可以存取您企業內的 Server!因為 Client 與 Server 的 Port Number 通常不相同,且封包傳輸的方向也不同。我們曾經遇到少數的客戶在啟用篩選器後,造成 Mail Server(在 RRAS 後端,DMZ) 只能對 Internet 發信或只能收信的狀況。
表 1. 常用的網路服務所使用的協定與 Port
|
服務 |
連接埠 / 通訊協定 |
|
DNS |
53/tcp,53/udp |
|
SMTP |
25/tcp |
|
POP3 |
110/tcp |
|
NNTP |
119/tcp |
|
FTP |
21/tcp,20/tcp |
|
Telnet |
23/tcp |
|
Gopher |
70/tcp |
|
HTTP |
80/tcp |
|
HTTPS |
443/tcp |
|
PPTP 的建立 |
1723/tcp |
|
GRE,一般路由壓縮 (使用 PPTP) |
IP 通訊協定 47 |
|
Kerberos |
88/tcp,88/udp |
|
IKE, Internet Key Exchange |
500/udp |
|
IPSec ESP,壓縮式的安全性有效負荷 |
IP 通訊協定 50 |
|
IPSec AH,驗證標頭 |
IP 通訊協定 51 |
|
RPC 終點對應程式 |
135/tcp,135/udp |
|
網路基本輸入 / 輸出系統 (NetBIOS) 名稱服務 |
137/tcp,137/udp |
|
NetBIOS 資料流服務 |
138/udp |
|
NetBIOS 工作階段服務 |
139/tcp |
|
RPC 動態指派 |
1024-65535/tcp |
|
透過 IP 的伺服器訊息區 (SMB) (Microsoft-DS) |
445/tcp,445/udp |
|
輕型目錄存取通訊協定 (LDAP) |
389/tcp |
|
SSL 上的 LDAP |
636/tcp |
|
通用類別目錄 LDAP |
3268/tcp |
|
SSL 上的通用類別目錄 LDAP |
3269/tcp |
|
Windows 網際網路名稱服務 (WINS) 解析 |
1512/tcp,1512/udp |
|
WINS 複寫 |
42/tcp,42/udp |
|
Terminal Service |
3389/tcp |
|
MSN Messenger Service (instant messaging) |
1863/tcp |
設定 Internet 用戶可以存取在 RRAS Server 後端(DMZ)的網路服務
在這類的應用狀況下,Internet 的 Client(動態連接埠) 將封包送往位於您 RRAS 後端的 Server(固定連接埠),並由您的 Server 將回應資料傳給 Internet 的Client。因此,我們必需在「連接 Internet 網路的界面」的輸出篩選器中允許[來源連接埠]為「您允許被 Internet 存取的 Service 所用的連接埠」、目的連接埠為[任一]的封包傳輸,而輸入篩選器中允許接收[來源連接埠]為[任一]、目的連接埠為「您允許被 Internet 存取的 Service 所用的連接埠」的封包。且對「連接 Internet 網路的界面」設定[輸入篩選器],並調整規則為 [丟棄所有封包(除了那些符合下列條件的封包以外)];同時將[輸出篩選器]規則也調整為 [丟棄所有封包(除了那些符合下列條件的封包以外)] ,來禁止所有未被允許的封包傳輸。
我們舉 SMTP 協定為範例進行設定:
1. 在「連接 Internet 網路界面」的 [輸出篩選器] 新增 IP 篩選器,通訊協定為 TCP [來源連接埠] 為 25,目的連接埠保持空白 (即任一)。
2. 在「連接 Internet 網路界面」的 [輸入篩選器] 新增 IP 篩選器,通訊協定為 TCP [目的連接埠] 為 25,來源連接埠保持空白(即任一)。
對於要讓 PPTP 協定的 VPN 通過 RRAS 的 IP 封包篩選,除了要設定 TCP Port 1723 外,尚需設定允許通訊協定編號 47 通過,請在[通訊協定]選擇[其他]並在 [通訊協定編號] 輸入 47(如圖 10)。
圖 10. 允許 PPTP 協定通過 RRAS
設定企業內用戶可以存取 Internet 的網路服務
在這類的應用狀況下,企業內電腦的 Client (動態連接埠)將封包送往 Internet 的 Server(固定連接埠,見表 1),並由 Internet 的 Server 將回應資料傳回企業內的電腦。因此,我們必需在「連接 Internet 網路的界面」的輸出篩選器中允許[來源連接埠]為[任一]、目的連接埠為「所允許存取的 Internet Service 所用的連接埠」的封包傳輸,而輸入篩選器中允許接收[來源連接埠]為「所允許存取的 Internet Service 所用的連接埠」、目的連接埠為[任一]的封包。我們可對「連接 Internet 網路的界面」設定[輸入篩選器],並調整規則為 [丟棄所有封包(除了那些符合下列條件的封包以外)];且將[輸出篩選器]規則也調整為 [丟棄所有封包(除了那些符合下列條件的封包以外)] ,來禁止所有未被允許的封包傳輸。通常需要設定的篩選器之篩選條件包括:DNS(53/udp)、HTTP(80/tcp)、HTTPS(443/tcp)、SMTP(25/tcp) 服務等(如圖 8)。
開啟您所選擇的網路界面後,您可以看到 [輸入篩選器] 與 [輸入篩選器] 的設定按鈕(如圖 4)。點選篩選器按鈕後,您即可看到該界面的輸出或輸入篩選規則。
圖 8. 設定企業內用戶可以存取 Internet 的網路服務(連接 Internet 網路界面)
我們舉 HTTP 協定為範例進行設定:
1. 在「連接 Internet 網路界面」的 [輸出篩選器] 新增