Windows Server 2008 防火牆十大安控秘訣

**作者:**顧武雄 Jovi Ku、Microsoft MVP、MCITP、MCTS 認證專家、台灣微軟 Technet、TechEd、Tech Day、Webcast 特約資深顧問講師,讀者可以透過他的技術 Blog 與他聯絡。


Microsoft 打從 Windows XP Service Pack 2 版本開始,便意識到內建個人電腦防火牆的重要性,事實上不僅是 Microsoft 而已,就連如今的許多個人電腦的防毒軟體廠商也都同樣意識到它的重要性,所以會將防毒軟體一併內建防火牆的功能,然而對於一個企業網路而言,究竟為何在有了網路邊際防火牆之後,還需要在廣泛的用戶端電腦上加裝這一些所謂的個人防火牆系統呢?

其實道理很簡單,如今的網路科技應用雖然發達,但是所謂道高一尺魔高一丈,道高一丈魔在頭上的道理是千古不變的,因此對於一些專寫惡意程式的黑客來說,早在多年前的紅色警戒病毒迫害力震驚全球各大網路之後,往後緊接而來的許多各種蠕蟲、病毒在設計上,便開始懂得採用主動攻擊所有在網路中沒有將門窗鎖好(意指防火牆與系統更新)的這一些電腦,弄得企業的 IT 部門雞飛狗跳,並且更狠狠給組織 IT 營運打了一棍。

有了以上這一些慘痛的經驗之後,Microsoft 在繼 Windows XP 之後所推出的 Windows Vista 中,便在內建的防火牆設計上更是大幅強化了許多控管功能,以及整合現有企業 Active Directory 的集中控管理機制,並且也繼續將這一項成功經驗同樣內建在最新的 Windows Server 2008 系統中,這也是由於一般單機的防火牆管理需求,不同於企業網路用戶端電腦的防火牆管理需求所致,因為前者通常只要確認防火牆功能有開啟即可,而後者則必須顧慮到哪一些伺服器在防火牆啟動的狀態下,還必須能夠在不影響企業協同的正常運作,並且還可以進一步透過安全的通訊協定進行資料的傳遞等等。

接下來就讓我們來了解一下筆者所精心整理的 Windows Server 2008 防火牆十大安控秘訣吧。

TOP1 在 Windows Server 2008 中有哪一些方法可以來管理 Windows 防火牆

Q:除了公司網路中的邊際防火牆之外,為了確保一些重要伺服器的安全避免遭受不必要的惡意攻擊,因此我希望可以藉由 Windows Server 2008 內建的防火牆功能來達到這一項安全防護需求,只是不知道對於系統管理員而言,有哪一些方式可以來管理防火牆的各種組態設定呢?

A:在 Windows Server 2008 內建的本機防火牆管理中,可以區分為基本防火牆管理以及進階安全性的防火牆管理,前者可以透過 [控制台] 中的 [Windows 防火牆] 圖示來開啟,後者則可以透過 [系統管理工具] 選單中的 [具有進階安全性的Windows防火牆] 項目來開啟,或是如圖1 所示透過 MMC 的嵌入式管理介面來加入管理也是可以的,此外當然也可以透過內建 Netsh 命令工具來管理,如圖2 所示便是透過此命令工具來查看目前所套用的防火牆設定檔組態資訊,更多有關於 Netsh 的命令使用範例可以參考 https://support.microsoft.com/kb/947709

  • 基本防火牆管理:可設定防火牆功能的啟用與否,以及例外允許連入的程式與通訊協定,並且可以針對不同的網路連線選擇是否套用(例如:區域網路、無線區域網路、VPN 網路)。
  • 進階防火牆管理:可以針對不同網路位置的設定檔,來配置不同的防火牆組態設定,並且可以進行防火牆原則的匯入與匯出、還原系統預設值、進階的輸入與輸出規則設定、監看套用的防火牆原則設定、整合 IPSec 的安全通訊設定等等。


圖1 使用 MMC 管理進階 Windows 防火牆


圖2 使用命令工具管理 Windows 防火牆

TOP2 Windows 防火牆進階設定中的三種不同設定檔用途為何

Q:我發現目前 Windows Server 2008 所提供的進階防火牆管理,與以往版本的 Windows 防火牆相較之下顯得功能多出很多,其中我搞不懂為何一個防火牆組態配置中,會有如圖所示的網域設定檔、私人設定檔、公用設定檔三種選擇,請問究竟什麼時機該使用什麼設定檔,以及可否進行集中控管呢?

A:在 [具有進階安全性的 Windows 防火牆] 管理中,無論是透過網域的群組原則或是本機管理員的自行設定方式,都可以如圖3 所示來設定這三項不同的設定檔防火牆組態,至於它們各自套用的時機可以參考以下說明:

  • 網域設定檔:當此用戶端電腦是屬於 Active Directory 網域成員的電腦之一時,並且目前正在網域中作業以及可以正常與網域控制站連線時,便會套用此設定檔的防火牆組態。
  • 私人設定檔:當這一部電腦是在一個內部網路中透過網路閘道(例如邊緣防火牆)或路由器來連線時便會套用此設定檔的防火牆組態,而此設定的組態變更唯一只有本機的管理員權限使用者可以設定。
  • 公用設定檔:當此電腦在其它非公司的網域環境中(例如網路咖啡廳、機場),而是直接是透過此網路連線到網際網路時,便會套用此設定檔的防火牆組態。


圖3 Windows 防火牆三種設定檔

TOP3 想使用群組原則控管用戶端防火牆設定需要預先完成哪些準備

Q:在我們公司的 Active Directory 網路中,目前有近百部的用戶端電腦與伺服器,這包括了 Windows 2000、Windows Server 2003、Windows Vista以 及 Windows Server 2008,而如今在導入了 Windows Server 2008 的網域控制站之後,我想用它透過群組原則來集中控管各部門電腦的 Windows 防火牆設定,需要預先完成準備哪一些工作呢?以及是否有哪一些注意事項需要特別留意呢?

A:首先您必須在 Windows Server 2008 的網域控制站上,開啟 [系統管理工具] 選單下的 [伺服器管理員],然後在 [功能] 項目節點頁面中點選 [新增功能] 連結,然後如圖4 所示勾選 [群組原則管理] 項目,點選 [下一步] 完成安裝。


圖4 安裝群組群則管理工具

完成功能安裝之後,接下來您便可以在確認 Active Directory 中各組織容器都規劃好的狀態下,緊接著從 [系統管理工具] 下拉選單中開啟 [群組原則管理] 介面來開始進行設定即可。此外請注意!由於在您公司的網路環境還有舊版的 Windows 2000 主機,因此是沒有內建 Windows 防火牆的,而對於 Windows XP Service Pack 2(或 Service Pack 3)來說,也只能控管一般的 Windows 防火牆設定,因為這個版本中並沒有提供進階安全性的 Windows 防火牆設定功能。

TOP4 如何使用群組原則集中控管 Windows 防火牆的啟用

Q:為了預防可能的網路病毒在企業網路中蔓延開來,因此我都會在伺服器上啟用內建的 Windows 防火牆功能,只是對於廣泛分散在各部門網路中的 Windows XP 與 Windows Vista 電腦,我要如何讓這一些電腦的一般使用者或擁有本機系統管理員權限的使用者,無法任意變更防火牆的啟用設定呢?

A:您可以針對指定的群組原則物件在開啟了 [群組原則管理編輯器] 介面之後,請在最上層的項目節點上按下滑鼠右鍵點選 [內容],然後將 [停用使用者組態設定] 的設定勾選,如此一來屬於使用者的群組原則中的各項設定將不會被套用到網域中的電腦了,這樣的主要用意是在於可以簡化群組原則套用管理上的複雜度。


圖5 編輯進階 Windows 防火牆組態

接下來請如圖5 所示展開至 [電腦設定]\[Windows 設定]\[安全性設定]\[具有進階安全性的 Windows 防火牆] 項目節點下,在這個頁面中請點選位在右方的 [Windows 防火牆內容] 連結繼續。在此我們以設定 [網域設定檔] 頁面來作為範例,一般來說我們至少會將 [防火牆狀態] 的下拉選單強制設定為 [開啟],進一步對於廣泛的網域用戶端電腦來說,可以考慮將 [輸入連線] 設定為 [封鎖]。無論如何只要是沒有特定去設定的項目(尚未設定),被套用的電腦上的本機管理員都可以任意去變更這一些設定值。


圖6 完成 Windows 防火牆集中啟用控管

成功套用群組原則之後,以 Windows Vista 為例,當我們從控制台開啟 [Windows 防火牆] 介面時,如圖6 所示便會看到目前的防火牆設定已經被啟用了,並且無法從本機電腦進行這部分的修改,即便是系統管理員群組的成員也一樣。

TOP5 如何使用群組原則集中控管輸入的安全原則

Q:在 Windows 防火牆的進階集中控管中,我們不僅要控管用戶端電腦與伺服器的防火牆功能啟用與否,還要進一步針對特定的通訊協定、連接埠、程式、以及服務的輸入規則進行封鎖,例如:Terminal Server、Telnet Server、Web Server 等等,我該如何來進行這方面的集中管制呢?

A:首先請在開啟 [群組原則管理編輯器] 管理介面之後,展開至 [電腦設定]\[原則]\[Windows 設定]\[安全性設定]\[具有安全性的 Windows 防火牆] 項目節點下,展開至 [輸入規則] 節點上按下滑鼠右鍵點選 [新規則]。


圖7 查看輸入規則設定

接下來筆者以封鎖 Telnet 服務的輸入連線作為範例。請在 [規則類型] 的頁面中選取 [自訂] 項目,接著來到 [程式] 的頁面中請在選取 [這個程式路徑] 之後,點選瀏覽按鈕並且選取位在 \Windows\System32\ 路徑下的 tlntsvr.exe,完成後緊接著點選 [自訂] 按鈕繼續。

繼續前一個操作步驟,將會開啟 [自訂服務設定] 頁面。在這個頁面中請選取名稱為 [Telnet] 的項目,完成後點選 [確定] 繼續。接下來在 [通訊協定及連接埠] 頁面中,首先請在通訊協定類型中選取 [TCP],然後在本機連接埠下拉選單中選取 [特定連接埠],並且在下方欄位中輸入 23 為連接埠,至於遠端連接埠則維持在 [所有連接埠] 即可。

在 [領域] 設定頁面中,您可以特別去決定本機伺服器所要套用的 IP 位址,以及所要套用的遠端電腦的特定 IP 位址。在 [執行動作] 設定頁面中,請將 [封鎖該連線] 選項選取之後點選 [下一步],在 [執行動作] 設定頁面中,由於我們只要將這項規則套用在公司網域的連線環境中,因此僅需要將 [網域] 項目勾選即可完成設定。

完成以上群組原則針對 Windows 防火牆的 Telnet 連線封鎖規則設定之後,接下來您便可以在該群組原則物件項目的 [設定] 頁面中,如圖所示檢視到有關於位在 [輸入規則] 頁面中的詳細設定資訊。

一旦成功將 Telnet 伺服器完成群組原則更新的套用之後,您便可以在它本機的 Windows 防火牆的 [例外] 頁面中,看到前面我們所設定的[阻擋所有 Telnet 的連線] 是無法去進行變更的。當我們在用戶端電腦想要再嘗試透過 Telnet 命令連線到被套用原則的伺服器上時,勢必會出現如圖7 所示的無法開啟到主機的連線錯誤訊息。

 

關於 Windows 進階安全性防火牆規則的套用順序
  1. Windows Service Hardening規則:此規則會限制服務建立連線
  2. 連線安全性規則:連線安全性規則會使用IPsec來定義如何驗證電腦的安全性
  3. 驗證略過規則:如果流量受到 IPsec 功能的保護,則無論其他輸入規則設定為何,安全驗證都將透過略過規則來讓特定電腦連線。
  4. 封鎖規則:此設定可明確地封鎖特定類型的輸入流量或輸出流量
  5. 允許規則:此設定可明確地開放特定類型的輸入流量或輸出流量
  6. 預設規則:此系統預設值為輸入預設規則封鎖連線,而輸出預設規則為允許連線。

 

TOP6 如何使用群組原則集中控管 Windows 防火牆記錄檔設定

Q:無論任何一種軟體或硬體的防火牆都有提供記錄檔的檢視功能,因為此功能有助於系統管理人員對於網路的安全或電腦連線的安全,進行後續管理上的追蹤,從中可以最基本也能夠得知哪一些連線進來的網路封包最多,以及有哪一些來源電腦不斷在嘗試進行某些網路通訊埠的連線等等。因此我想知道在 Windows Server 2008 中來集中控管防火牆記錄檔功能。

A:Windows 防火牆的記錄檔功能預設是沒有啟用的,管理方式可以透過群組原則來集中管理這部份的設定,或是到個別電腦面前去進行手動設定都是可以的。在此我們以使用群組原則的管理方式來作為範例。請在 [具有安全性的 Windows 防火牆] 項目節點頁面中點選 [Windows 防火牆內容] 連結。接著請在 [記錄] 區域的頁面中點選 [自訂] 按鈕繼續。

在記錄檔設定的頁面中,請分別將兩個 [尚未設定] 選項勾選,然後建議您將 [記錄丟棄的封包] 與 [記錄成功的連線] 下拉選單都選取 [是] 即可,在預設的狀態下系統會繼記錄檔儲存在 \Windows\System32\Logfile\Firewall\ 資料夾下的 pfirewall.log 檔案中,無論如何若想要自訂可以取消 [尚未設定] 的選項,然後點選 [瀏覽] 按鈕來自訂也是可以的,最後點選 [確定] 按鈕完成設定。


圖8 完成記錄檔集中控管設定


圖9 檢視 Windo ws防火牆記錄檔內容

一旦所設定的群組原則物件成功套用至受管理的組織單位電腦之後,在您登入這一些電腦之後,便可以在 [具有安全性的Windows 防火牆] 介面中,開啟 Windows 防火牆內容中的記錄檔自訂,即可如圖8 所示發現這項設定已經由群組原則所管制而無法進行變更了。

等到這一些啟用記錄檔的 Windows 防火牆電腦運作一段時間之後,您便可以在這一些電腦的預設 \Windows\System32\Logfile\Firewall\ 資料夾下,使用筆記本開啟 pfirewall.log 檔案,即可如圖9 所示檢視到這一些重要的連線成功與連線失敗的封包詳細記錄,甚至於可以將它進一步匯入到 Office Excel 或 SQL Server 資料庫中來進行統計、條件查詢與各項分析。

TOP7 如何解決網域與本機防火牆設定相互衝突的問題

Q:當我們完成了 Windows 防火牆狀態的集中控管設定之後,接下來是否可能會面臨一個問題,那就是萬一在被套用的用戶端電腦上的本機管理員,也有設定各自所需的各種防火牆原則時是否會發生相互衝突的問題,因此想請問面對這個問題,要如何解決呢?

A:請在群組原則管理編輯器介面中,開啟具有進階安全性的 Windows 防火牆內容連結,在 [設定] 區域中點選 [設定] 按鈕,緊接著將會開啟如圖10 所示的頁面。在此頁面中便可以在 [規則合併] 的區域中,選取是否要合併與本機電腦的 Windows 防火牆原則以及連線安全性原則。完成設定之後請點選 [確定] 按鈕完成設定。請注意!這一項設定只能透過群組來控管,單機的 Windows 防火牆登入後是否無法修改這一項設定的,不過這一項設定在預設的狀態下,無論是防火牆原則或是連線安全性原則都已經設定為合併。


圖10 集中管理規則合併

TOP8 如何讓防火牆原則只套用在組織容器中的特定電腦類別

Q:請問關於我在群組原則中的 Windows 防火牆設定中,可否只讓這一些原則物件為一套用在特定目標電腦的硬體規格(例如:CPU 規格、記憶體大小、硬碟剩餘空間)、所安裝的軟體清單、所安裝的修正程式(例如:Windows Vista Service Pack 1、Windows XP Service Pack3)、作業系統的組態配置(例如:登錄檔設定、驅動程式、網路組態設定值)等等,而不是僅僅只針對整個組織容器。

A:可以的,只要進一步結合 WMI(Windows Management Instrumentation)篩選器,便可以將原則指套用在組織容器中特定的電腦屬性。

不過關於 WMI 篩選器的使用,有以下三點注意事項需要特別留意:

  1. WMI 篩選器與群組原則物件的連結必須位在相同的網域中。
  2. 目前支援 WMI 篩選器群組原則管理功能的 Windows 作業系統只有 Windows XP、Windows Server 2003、Windows Vista 以及 Windows Server 2008,如果是更舊版的 Windows 2000 的電腦,則將會忽略 WMI 篩選器的設定。
  3. WMI 篩選器的使用必須在有 Windows Server 2003 或 Windows Server 2008 網域控制站的網域中才可以,如果整個網域中只有舊版的 Window 2000 Server 的網域控制站則在 GPMC(Group Policy Management Console)介面中將看不到有關 WMI 篩選器的項目節點。


圖11 新增設定 WMI 篩選器

操作方法首先請在群組原則管理編輯器介面中展開至 [樹系]\[網域]\[WMI 篩選器] 節點上,按下滑鼠右鍵點選 [新增]。將會開啟 [新增 WMI 篩選器] 的頁面,如圖11 所示首先請給予這一個篩選器名稱與描述,然後點選 [新增] 按鈕來設定查詢條件,其中一個篩選器可以定義多個 WMI 查詢條件,完成設定之後請點選 [儲存] 按鈕。範例中便是設定此原則只套用在組織容器中的 Windows Server 2008 與 Windows Vista 的電腦上,因為它們的實際作業系統版本編號便是以 6.0 為開頭,而其中的 % 便是萬用符號。


圖12 套用 WMI 篩選器置群組原則物件

完成了各類 WMI 篩選器的新增設定之後,接下來便可以如圖所示展開至 [群組原則物件] 項目節點下,然後先挑選所要設定的原則物件項目之後,在該物件的 [領域] 頁籤中的最下方將 WMI 篩選器下拉選單中,挑選所要套用的 WMI 篩選器項目即可。其它有關於 WMI 篩選器的語法範例可以參考如下的官方網址(或表1 中的幾個常見範例):

http://technet2.microsoft.com/windowsserver/en/library/6237b9b2-4a21-425e-8976-2065d28b31471033.mspx?mfr=true

表1 WMI 篩選器用途語法範例

條件 管理目標 WMI篩選器語法
組態設定 為避免套用在有啟用 Netmon 功能的電腦上,可以去針對有支援與啟用 Multicasting 通訊協定的電腦來套用 Select * from Win32_NetworkProtocol where SupportsMulticasting = true
時區設定 指定將原則物件套用在特定的時區電腦上 Root\cimv2 ; Select * from win32_timezone where bias =-300
修正程式 指定將原則物件套用在已經完成某一些修正程式安裝的電腦上 Root\cimv2 ; Select * from Win32_QuickFixEngineering where HotFixID = 'q147222'
軟體清單 指定將原則物件套用在有安裝顧大俠外傳或顧大俠外傳II軟體的電腦上 Root\cimv2;Select * from Win32_Product where name = "顧大俠外傳" OR name = "顧大俠外傳II"
作業系統 指定將原則物件套用在組織容器中的 Windows XP 專業版電腦上 Root\CimV2; Select * from Win32_OperatingSystem where Caption = "Microsoft Windows XP Professional"
硬體資源 指定將原則物件套用在硬碟空間至少還剩餘 600MB 以上的電腦上 Root\CimV2; Select * from Win32_LogicalDisk where FreeSpace > 629145600
硬體架構 指定將原則物件套用在特定的電腦廠商規格以及指定的模組型號上 Root\CimV2; Select * from Win32_ComputerSystem where manufacturer = "Toshiba" and Model = "Tecra 800" OR Model = "Tecra 810"

 

TOP9 如何讓封鎖的防火牆規則可以讓特定的電腦或使用者連線

Q:我目針對公司一些伺服器上的 Telnet 服務的連線進行全面封鎖,可是在某些狀況下,某些IT人員希望能夠開放此服務給予特定的使用者或電腦連線,以便進行遠端命令模式下的管理,進而獲得最佳的連線品質,針對這一項管理需求要如何做到呢?

A:事實上無論我們目前是針對哪一些伺服器上的 Windows 防火牆輸入規則,透過群組原則來完成集中控管,都可以再針對這一些原則中的規則項目,進一步修改成可以唯一讓特定的電腦或使用者能夠進行連線存取。請在該規則項目上,按下滑鼠右鍵點選 [內容] 繼續。


圖13 設定授權的電腦與使用者

接下來我以開放 Telnet 伺服器連線為例子,請點選至 [一般] 頁籤中,然後將位在執行動作區域中的 [封鎖連線],變更為選取 [僅允許安全連線] 下的 [需要加密] 與 [覆寫封鎖規則] 勾選。接著請切換到 [使用者和電腦] 頁籤中,如圖13 所示在此您便可以依照實際需求,勾選 [僅允許來自這些電腦的連線] 或 [僅允許來自這些使用者的連線] 勾選,然後點選 [新增] 按鈕來加入清單中即可。

TOP10 如何在用戶端立即套用與檢視生效的群組原則清單

Q:Active Directory 在群組原則的管理上,通常是選擇套用在廣泛的 Windows 用戶端電腦上,可是當我在進行某一些電腦的群組原則測試時,要如何在這個用戶端電腦立即讓更新過的原則生效呢?另外當群組原則物件建立很多時,對於用戶端的操作而言,又應當如何得知目前所套用到這部電腦上的群組原則物件設定有哪一些。

A:針對第一個問題,我們可以在被套用群組原則物件的組織容器中的任一部用戶端電腦上,先開啟命令提示視窗然後如圖14 所示輸入 GPUPDATE /force 命令參數,來立即套用剛剛設定好的最新群組原則物件。必要的話系統可能會要求重新開機才會生效。


圖14 立即更新群組原則

此外關於群組原則的應用,的確經常有許多學員與讀者在問:「我要如何從用戶端電腦上知道它被套用了哪一些群組原則呢?」。其實很簡單,您只要在該電腦的命令提示字元下輸入 gpresult /scope computer 命令參數即可。首先可以先檢視到關於這部電腦的基本資訊,並且可以知道上次套用群組原則的時間以及套用的群組原則來源的網域控制站等資訊,當我們再往下看更詳細的其它資訊時,如圖15 所示便可以看到目前已套用的群組原則物件項目有哪一些。


圖15 檢視已套用的群組原則