將 Windows 防火牆設定成允許 SQL Server 存取

防火牆系統有助於預防未經授權存取電腦資源。如果防火牆已開啟,但是設定不正確,則嘗試連接至 SQL Server 的行為可能會被封鎖。

若要透過防火牆存取 SQL Server 的執行個體,您必須在執行 SQL Server 的電腦上,將防火牆設定成允許存取。防火牆是 Microsoft Windows 的元件。您也可以安裝來自其他公司的防火牆。雖然本主題將討論如何設定 Windows 防火牆,但是基本原則也適用於其他防火牆程式。

[!附註]

本主題會提供防火牆組態的概觀,並且摘要列出 SQL Server 管理員感興趣的資訊。如需有關防火牆的詳細資訊以及授權的防火牆資訊,請參閱防火牆文件集,例如<具有進階安全性的 Windows 防火牆和 IPsec>(英文) 和<具有進階安全性的 Windows 防火牆 - 內容藍圖>(英文)。

熟悉 [控制台] 中之 [Windows 防火牆] 項目與 [具有進階安全性的 Windows 防火牆] Microsoft Management Console (MMC) 嵌入式管理單元的使用者,以及了解想要設定之防火牆設定的使用者可以直接移至下列清單中的主題:

本主題內容

本主題具有下列章節:

基本防火牆資訊

預設防火牆設定

設定防火牆的程式

Database Engine 所使用的通訊埠

Analysis Services 所使用的通訊埠

Reporting Services 所使用的通訊埠

Integration Services 所使用的通訊埠

其他通訊埠和服務

與其他防火牆規則的互動

防火牆設定檔的概觀

使用控制台中的 Windows 防火牆項目進行其他防火牆設定

使用具有進階安全性的 Windows 防火牆嵌入式管理單元

疑難排解防火牆設定

基本防火牆資訊

防火牆的運作方式是檢查內送封包,以及針對一組規則比較這些封包。如果這些規則允許封包,防火牆就會將該封包傳遞給 TCP/IP 通訊協定,進行其他處理。如果這些規則不允許封包,防火牆就會捨棄該封包,而且如果啟用記錄的話,還會在防火牆記錄檔中建立項目。

允許傳輸的清單是以下列其中一種方式填入:

  • 當啟用防火牆的電腦起始通訊時,防火牆就會在清單中建立項目,以便允許回應。內送回應會被視為要求的傳輸,而且您不需要設定這個項目。

  • 管理員設定防火牆的例外。這樣會允許存取在電腦上執行的指定程式,或存取電腦上的指定連接通訊埠。在此情況下,當此電腦當做伺服器、接聽程式或對等運作時,它就會接受未經要求的內送傳輸。這是必須完成才能連接至 SQL Server 的組態類型。

選擇防火牆策略比單獨決定給定的通訊埠應該開啟或關閉更複雜。為企業設計防火牆策略時,請務必考慮所有適用的規則和組態選項。本主題不會檢閱所有可能的防火牆選項。我們建議您檢閱下列文件:

Windows Vista 和 Windows Server 2008 中具有進階安全性的 Windows 防火牆使用者入門 (英文)

具有進階安全性的 Windows 防火牆設計指南 (英文)

伺服器及網域隔離簡介 (英文)

預設防火牆設定

規劃防火牆組態的第一個步驟是判斷作業系統之防火牆的目前狀態。如果作業系統是從舊版升級,先前的防火牆設定可能已經保留下來。此外,其他管理員或網域中的「群組原則」可能已經變更了防火牆設定。不過,預設設定如下所示:

  • Windows Server 2008

    防火牆已開啟而且封鎖遠端連接。

  • Windows Server 2003

    防火牆已關閉。管理員應該考慮開啟防火牆。

  • Windows Vista

    防火牆已開啟而且封鎖遠端連接。

  • Windows XP Service Pack 2 或更新版本

    防火牆已開啟而且封鎖遠端連接。

  • Windows XP Service Pack 1 或更舊版本

    防火牆已關閉而且應該開啟。

[!附註]

開啟防火牆將會影響存取此電腦的其他程式,例如檔案及列印共用,以及遠端桌面連接。調整防火牆設定之前,管理員應該考慮在電腦上執行的所有應用程式。

設定防火牆的程式

有三種方式可設定 Windows 防火牆設定。

  • 控制台中的 Windows 防火牆項目

    您可以從 [控制台] 開啟 [Windows 防火牆] 項目。

    重要注意事項重要事項

    在 [控制台] 之 [Windows 防火牆] 項目中進行的變更只會影響目前的設定檔。筆記型電腦等行動裝置不應該使用 [控制台] 中的 [Windows 防火牆] 項目,因為此設定檔可能會在不同的組態中連接時變更。然後,先前設定的設定檔將不會生效。如需有關設定檔的詳細資訊,請參閱<Windows Vista 和 Windows Server 2008 中具有進階安全性的 Windows 防火牆使用者入門>(英文)。

    [控制台] 中的 [Windows 防火牆] 項目可讓您設定一些基本選項。這些選項包括:

    • 開啟或關閉 [控制台] 中的 [Windows 防火牆] 項目

    • 啟用和停用規則

    • 授與通訊埠和程式的例外

    • 設定某些範圍限制

    [控制台] 中的 [Windows 防火牆] 項目最適合沒有防火牆組態設定經驗的使用者,以及針對非行動式電腦設定基本防火牆選項的使用者。您也可以使用下列程序,透過 run 命令開啟 [控制台] 中的 [Windows 防火牆] 項目:

    開啟 Windows 防火牆項目

    1. [開始] 功能表上,按一下 [執行],然後輸入 firewall.cpl。

    2. 按一下 [確定]。

  • Microsoft Management Console (MMC)

    [具有進階安全性的 Windows 防火牆] MMC 嵌入式管理單元可讓您設定更多進階的防火牆設定。這個嵌入式管理單元僅適用於 Microsoft Vista 和 Windows Server 2008。不過,它會以容易使用的方式呈現大部分防火牆選項,而且它會呈現所有防火牆設定檔。如需詳細資訊,請參閱本主題後面的「使用具有進階安全性的 Windows 防火牆嵌入式管理單元」。

  • netsh

    管理員可以使用 netsh.exe 工具,在命令提示字元中或透過批次檔設定和監視 Windows 架構的電腦。您可以利用 netsh 工具,將您所輸入的內容命令導向至適當的協助程式,然後此協助程式就會執行該命令。協助程式是一個動態連結程式庫 (.dll) 檔案,它會針對一或多個服務、公用程式或通訊協定提供組態、監視和支援,藉以擴充 netsh 工具的功能。支援 SQL Server 的所有作業系統都具有防火牆協助程式。MicrosoftWindows Vista 和 Windows Server 2008 也具有稱為 advfirewall 的進階防火牆協助程式。本主題將不會討論使用 netsh 的詳細資料。不過,您可以使用 netsh 來設定本文所描述的許多組態選項。例如,在命令提示字元中執行下列指令碼,即可開啟 TCP 通訊埠 1433:

    netsh firewall set portopening protocol = TCP port = 1433 name = SQLPort mode = ENABLE scope = SUBNET profile = CURRENT
    

    針對進階安全性協助程式使用 Windows 防火牆的類似範例:

    netsh advfirewall firewall add rule name = SQLPort dir = in protocol = tcp action = allow localport = 1433 remoteip = localsubnet profile = DOMAIN
    

    如需使用 netsh 來設定 SQL Server 的指令碼,請參閱<如何在執行 Windows XP Service Pack 的系統上使用指令碼,以程式設計方式開啟 SQL Server 所使用的通訊埠>(機器翻譯)。如需有關 netsh 的詳細資訊,請參閱下列連結:

SQL Server 所使用的通訊埠

下列表格可以協助您識別 SQL Server 所使用的通訊埠。

Database Engine 所使用的通訊埠

下表將列出 Database Engine 常用的通訊埠。

狀況

通訊埠

註解

透過 TCP 執行的 SQL Server 預設執行個體

TCP 通訊埠 1433

這是允許通過防火牆最常見的通訊埠。它適用於 Database Engine 預設安裝的一般連接,或在電腦上唯一執行之執行個體的具名執行個體 (具名執行個體具有特殊考量。請參閱本主題後面的「動態通訊埠」)。

預設組態中的 SQL Server 具名執行個體

此 TCP 通訊埠是在 Database Engine 啟動時決定的動態通訊埠。

請參閱下面「動態通訊埠」一節的討論。當您使用具名執行個體時,SQL Server Browser 服務可能會需要 UDP 通訊埠 1434。

設定成使用固定通訊埠的 SQL Server 具名執行個體

管理員所設定的通訊埠編號。

請參閱下面「動態通訊埠」一節的討論。

專用管理員連接

TCP 通訊埠 1434 (預設執行個體)。其他通訊埠則用於具名執行個體。請檢查錯誤記錄檔,以取得通訊埠編號。

根據預設,系統不會啟用專用管理員連接 (DAC) 的遠端連接。若要啟用遠端 DAC,請使用介面區組態 Facet。如需詳細資訊,請參閱<了解介面區組態>。

SQL Server Browser 服務

UDP 通訊埠 1434

SQL Server Browser 服務會接聽具名執行個體的內送連接,並且將對應至該具名執行個體的 TCP 通訊埠編號提供給用戶端。每當使用 Database Engine 的具名執行個體時,通常就會啟動 SQL Server Browser 服務。如果用戶端設定成連接至具名執行個體的特定通訊埠,就不需要啟動 SQL Server Browser 服務。

透過 HTTP 端點執行的 SQL Server 執行個體。

可以在建立 HTTP 端點時指定。預設值為 TCP 通訊埠 80 (用於 CLEAR_PORT 傳輸) 和 443 (用於 SSL_PORT 傳輸)。

用於透過 URL 進行 HTTP 連接。

透過 HTTPS 端點執行的 SQL Server 預設執行個體

TCP 通訊埠 443

用於透過 URL 進行 HTTPS 連接。HTTPS 是使用安全通訊端層 (SSL) 的 HTTP 連接。

Service Broker

TCP 通訊埠 4022。若要確認使用的通訊埠,請執行下列查詢:

SELECT name, protocol_desc, port, state_desc

FROM sys.tcp_endpoints

WHERE type_desc = 'SERVICE_BROKER'

雖然 SQL ServerService Broker 沒有預設通訊埠,不過這是線上叢書範例中使用的傳統組態。

資料庫鏡像

管理員所選擇的通訊埠。若要判斷此通訊埠,請執行下列查詢:

SELECT name, protocol_desc, port, state_desc FROM sys.tcp_endpoints

WHERE type_desc = 'DATABASE_MIRRORING'

雖然資料庫鏡像沒有預設通訊埠,不過線上叢書範例會使用 TCP 通訊埠 7022。請務必避免中斷使用中的鏡像端點,尤其是在具有自動容錯移轉的高安全性模式中。您的防火牆組態必須避免中斷仲裁。如需詳細資訊,請參閱<指定伺服器網路位址 (資料庫鏡像)>。

複寫

SQL Server 的複寫連接會使用一般的 Database Engine 通訊埠 (例如,預設執行個體的 TCP 通訊埠 1433)。

複寫快照集的 Web 同步處理和 FTP/UNC 存取需要在防火牆上開啟其他通訊埠。為了將初始資料和結構描述從某個位置傳送至另一個位置,複寫可能會使用 FTP (TCP 通訊埠 21)、透過 HTTP 同步處理 (TCP 通訊埠 80) 或檔案及列印共用 (TCP 通訊埠 137、138 或 139)。

若為透過 HTTP 同步處理,複寫會使用 IIS 端點 (其通訊埠可設定,但是預設為通訊埠 80),不過 IIS 處理序會透過預設執行個體的標準通訊埠 (1433) 連接至後端 SQL Server。

在使用 FTP 進行 Web 同步處理期間,FTP 傳送是介於 IIS 與 SQL Server 發行者之間,而非介於訂閱者與 IIS 之間。

如需詳細資訊,請參閱<透過網際網路設定 Microsoft SQL Server 2000 複寫的 Microsoft Internet Security and Acceleration Server>(英文)。

Transact-SQL 偵錯工具

TCP 通訊埠 135

請參閱「通訊埠 135 的特殊考量」

可能也需要「IPsec」例外。

如果您正在使用 Visual Studio,也必須在 Visual Studio 主機電腦上,將 Devenv.exe 加入至「例外」清單並開啟 TCP 通訊埠 135。

如果您正在使用 Management Studio,也必須在 Management Studio 主機電腦上,將 ssms.exe 加入至「例外」清單並開啟 TCP 通訊埠 135。如需詳細資訊,請參閱<設定和啟動 Transact-SQL 偵錯工具>。

如需針對 Database Engine 設定 Windows 防火牆的逐步指示,請參閱<如何:設定用於 Database Engine 存取的 Windows 防火牆>。

動態通訊埠

根據預設,具名執行個體 (包括 SQL Server Express) 會使用動態通訊埠。這表示每次 Database Engine 啟動時,它就會識別可用的通訊埠並使用該通訊埠編號。如果具名執行個體是唯一安裝的 Database Engine 執行個體,它可能會使用 TCP 通訊埠 1433。如果安裝了其他 Database Engine 執行個體,它可能會使用不同的 TCP 通訊埠。由於選取的通訊埠可能會在每次 Database Engine 啟動時變更,所以很難將防火牆設定成允許存取正確的通訊埠編號。因此,如果已使用防火牆,我們建議您將 Database Engine 重新設定成每次都使用相同的通訊埠編號。這個通訊埠就稱為固定通訊埠或靜態通訊埠。如需詳細資訊,請參閱<設定固定通訊埠>。

將具名執行個體設定成接聽固定通訊埠的替代方式是針對 sqlservr.exe (若為 Database Engine) 等 SQL Server 程式,在防火牆中建立例外。雖然這樣做很方便,但是當您使用 [具有進階安全性的 Windows 防火牆] MMC 嵌入式管理單元時,其通訊埠編號將不會顯示在 [輸入規則] 頁面的 [本機連接埠] 欄中。如此一來可能會讓您更難以稽核哪些通訊埠已開啟。其他考量是 Service Pack 或累積更新可能會變更 SQL Server 可執行檔的路徑,因而使防火牆規則失效。

[!附註]

下列程序會使用 [控制台] 中的 [Windows 防火牆] 項目。[具有進階安全性的 Windows 防火牆] MMC 嵌入式管理單元可以設定更複雜的規則。這包括設定服務例外,以便用於提供深度防禦。請參閱下面的「使用具有進階安全性的 Windows 防火牆嵌入式管理單元」。

使用控制台中的 Windows 防火牆項目,將程式例外加入至防火牆

  1. 在 [控制台] 中,於 [Windows 防火牆] 項目的 [例外] 索引標籤上,按一下 [新增程式]

  2. 瀏覽至您想要允許通過防火牆之 SQL Server 執行個體的位置,例如 C:\Program Files\Microsoft SQL Server\MSSQL10.<instance_name>\MSSQL\Binn、選取 sqlservr.exe,然後按一下 [開啟]

  3. 按一下 [確定]。

如需有關端點的詳細資訊,請參閱<網路通訊協定和 TDS 端點>和<端點目錄檢視 (Transact-SQL)>。

Analysis Services 所使用的通訊埠

下表將列出 Analysis Services 常用的通訊埠。

功能

通訊埠

註解

Analysis Services

TCP 通訊埠 2383 (預設執行個體)

Analysis Services 預設執行個體的標準通訊埠。

SQL Server Browser 服務

TCP 通訊埠 2382 (只有 Analysis Services 具名執行個體需要)

沒有指定通訊埠編號之 Analysis Services 具名執行個體的用戶端連接要求會被導向至通訊埠 2382,亦即 SQL Server Browser 所接聽的通訊埠。然後,SQL Server Browser 會將要求重新導向至具名執行個體所使用的通訊埠。

設定成可透過 IIS/HTTP 使用的 Analysis Services

(PivotTable® 服務會使用 HTTP 或 HTTPS)

TCP 通訊埠 80

用於透過 URL 進行 HTTP 連接。

設定成可透過 IIS/HTTPS 使用的 Analysis Services

(PivotTable® 服務會使用 HTTP 或 HTTPS)

TCP 通訊埠 443

用於透過 URL 進行 HTTPS 連接。HTTPS 是使用安全通訊端層 (SSL) 的 HTTP 連接。

如果使用者透過 IIS 和網際網路存取 Analysis Services,您就必須開啟 IIS 所接聽的通訊埠,並且在用戶端連接字串中指定該通訊埠。在此情況下,針對直接存取 Analysis Services,則不必開啟任何通訊埠。不過,您應該限制預設通訊埠 2389 和通訊埠 2382 與所有不需要的其他通訊埠。

如需針對 Analysis Services 設定 Windows 防火牆的逐步指示,請參閱<如何:為 Analysis Services 的存取設定 Windows 防火牆>。

Reporting Services 所使用的通訊埠

下表將列出 Reporting Services 常用的通訊埠。

功能

通訊埠

註解

Reporting Services Web 服務

TCP 通訊埠 80

用於透過 URL 進行 Reporting Services 的 HTTP 連接。我們建議您不要使用預先設定的規則 [全球資訊網服務 (HTTP)]。如需詳細資訊,請參閱下面的「與其他防火牆規則的互動」一節。

設定成可透過 HTTPS 使用的 Reporting Services

TCP 通訊埠 443

用於透過 URL 進行 HTTPS 連接。HTTPS 是使用安全通訊端層 (SSL) 的 HTTP 連接。我們建議您不要使用預先設定的規則 [安全 World Wide Web 服務 (HTTPS)]。如需詳細資訊,請參閱下面的「與其他防火牆規則的互動」一節。

當 Reporting Services 連接至 Database Engine 或 Analysis Services 的執行個體時,您也必須針對這些服務開啟適當的通訊埠。如需針對 Reporting Services 設定 Windows 防火牆的逐步指示,請參閱<如何:設定供報表伺服器存取的防火牆>。

Integration Services 所使用的通訊埠

下表將列出 Integration Services 服務所使用的通訊埠。

功能

通訊埠

註解

Microsoft 遠端程序呼叫 (MS RPC)

由 Integration Services 執行階段所使用。

TCP 通訊埠 135

請參閱「通訊埠 135 的特殊考量」

Integration Services 服務會在通訊埠 135 上使用 DCOM。服務控制管理員會使用通訊埠 135 來執行一些工作,例如啟動和停止 Integration Services 服務,以及將控制要求傳送至執行中服務。您無法變更此通訊埠編號。

只有當您要從 Management Studio 或自訂應用程式連接至 Integration Services 服務的遠端執行個體時,才需要開啟這個通訊埠。

如需針對 Integration Services 設定 Windows 防火牆的逐步指示,請參閱<設定用於 Integration Services 存取的 Windows 防火牆>和<如何:針對 Integration Services 設定 Windows 防火牆>。

其他通訊埠和服務

下表將列出 SQL Server 可能會相依的通訊埠和服務。

狀況

通訊埠

註解

Windows Management Instrumentation

如需有關 WMI 的詳細資訊,請參閱<組態管理的 WMI 提供者概念>。

WMI 會使用透過 DCOM 所指派的通訊埠,當做共用服務主機執行。WMI 可能正在使用 TCP 通訊埠 135。

請參閱「通訊埠 135 的特殊考量」

SQL Server 組態管理員會使用 WMI 來列出並管理服務。我們建議您使用預先設定的規則群組 [Windows Management Instrumentation (WMI)]。如需詳細資訊,請參閱下面的「與其他防火牆規則的互動」一節。

Microsoft 分散式交易協調器 (MS DTC)

TCP 通訊埠 135

請參閱「通訊埠 135 的特殊考量」

如果應用程式使用分散式交易,您可能必須將防火牆設定成允許 Microsoft 分散式交易協調器 (MS DTC) 傳輸在個別 MS DTC 執行個體之間,以及在 MS DTC 與資源管理員 (例如 SQL Server) 之間流動。我們建議您使用預先設定的規則群組 [分散式交易協調器]

針對個別資源群組中的整個叢集設定了單一共用 MS DTC 時,您應該將 sqlservr.exe 當做例外加入至防火牆。

Management Studio 中的瀏覽按鈕會使用 UDP 來連接至 SQL Server Browser 服務。如需詳細資訊,請參閱<SQL Server Browser 服務>。

UDP 通訊埠 1434

UDP 是一種無連接的通訊協定。

防火牆具有一項名為<INetFwProfile 介面的 UnicastResponsesToMulticastBroadcastDisabled 屬性>(英文) 的設定,可在廣播 (或多點傳送) UDP 要求的單點傳送回應方面控制防火牆的行為。 它有兩種行為:

  • 如果此設定為 TRUE,就完全不允許廣播的任何單點傳送回應。列舉服務將會失敗。

  • 如果此設定為 FALSE (預設值),就允許單點傳送回應 3 秒。您無法設定此時間的長度。在擁塞或高度延遲的網路中,或是負載繁重的伺服器上,嘗試列舉 SQL Server 的執行個體可能會傳回部分清單,因而誤導使用者。

IPsec 傳輸

UDP 通訊埠 500 和 UDP 通訊埠 4500

如果網域原則要求透過 IPsec 完成網路通訊,您也必須將 UDP 通訊埠 4500 和 UDP 通訊埠 500 加入至例外清單。IPsec 是在 [Windows 防火牆] 嵌入式管理單元中使用 [新增輸入規則精靈] 的選項。如需詳細資訊,請參閱下面的「使用具有進階安全性的 Windows 防火牆嵌入式管理單元」。

使用 Windows 驗證搭配信任的網域

防火牆必須設定成允許驗證要求。

如需詳細資訊,請參閱<如何設定網域和信任的防火牆>。

SQL Server 和 Windows 叢集

叢集需要與 SQL Server 沒有直接相關的其他通訊埠。

如需詳細資訊,請參閱<啟用可供叢集使用的網路>(英文)。

保留在 HTTP 伺服器 API (HTTP.SYS) 中的 URL 命名空間

可能是 TCP 通訊埠 80,但是可以設定成其他通訊埠。如需一般資訊,請參閱<設定 HTTP 和 HTTPS>。

如需有關使用 HttpCfg.exe 來保留 HTTP.SYS 端點的 SQL Server 特定資訊,請參閱<使用 Http.sys 保留 URL 命名空間>。

通訊埠 135 的特殊考量

當您使用 RPC 搭配 TCP/IP 或 UDP/IP 當做傳輸時,系統通常會視需要以動態方式將傳入通訊埠指派給系統服務。所使用的是大於通訊埠 1024 的 TCP/IP 和 UDP/IP 通訊埠。這些通訊埠通常非正式地稱為「隨機 RPC 通訊埠」。在這些情況下,RPC 用戶端會仰賴 RPC 端點對應程式來告知它們哪些動態通訊埠已經指派給伺服器。對於某些以 RPC 為基礎的服務而言,您可以設定特定通訊埠,而非讓 RPC 以動態方式指派通訊埠。不論服務為何,您都可以將 RPC 以動態方式指派的通訊埠範圍限制成小範圍。由於通訊埠 135 用於許多服務,所以它經常會受到惡意使用者的攻擊。開啟通訊埠 135 時,請考慮限制防火牆規則的範圍。

如需有關通訊埠 135 的詳細資訊,請參閱下列參考:

與其他防火牆規則的互動

[Windows 防火牆] 會使用規則和規則群組來建立其組態。每個規則或規則群組通常會與特定的程式或服務相關聯,而且該程式或服務可能會不經通知而修改或刪除該項規則。例如,規則群組 [全球資訊網服務 (HTTP)][全球資訊網服務 (HTTPS)] 會與 IIS 相關聯。啟用這些規則將會開啟通訊埠 80 和 443,而且如果您啟用了這些規則,相依於通訊埠 80 和 443 的 SQL Server 功能將會正常運作。不過,設定 IIS 的管理員可能會修改或停用這些規則。因此,如果您要針對 SQL Server 使用通訊埠 80 或通訊埠 443,就應該建立維護所需通訊埠組態的自訂規則或規則群組 (獨立於其他 IIS 規則)。

[具有進階安全性的 Windows 防火牆] MMC 嵌入式管理單元允許符合任何適用允許規則的任何傳輸。因此,如果有兩項同時套用至通訊埠 80 的規則 (具有不同的參數),系統就會允許符合任何一項規則的傳輸。所以,如果其中一項規則允許來自區域子網路而且透過通訊埠 80 的傳輸,而另一項規則允許來自任何位址的傳輸,其結果就是允許通訊埠 80 的所有傳輸,不論來源為何。若要有效管理 SQL Server 的存取權,管理員應該定期檢閱在伺服器上啟用的所有防火牆規則。

防火牆設定檔的概觀

Windows Vista 和 Windows Server 2008 中具有進階安全性的 Windows 防火牆使用者入門>中的<網路位置感知主機防火牆>一節 (英文) 會討論防火牆設定檔。簡而言之,Windows Vista 和 Windows Server 2008 會在連接性、連接和類別方面識別並記憶它們所連接的每個網路。

[具有進階安全性的 Windows 防火牆] 具有三種網路位置類型:

  • 網域。Windows 可以針對電腦所加入的網域,驗證網域控制站的存取權。

  • 公用。除了網域網路以外,所有網路一開始都會分類成公用。代表直接連接至網際網路或位於公共場所 (例如機場和咖啡店) 的網路應該會保持公用。

  • 私人。由使用者或應用程式識別成私人的網路。只有受信任的網路才應該識別成私人網路。使用者可能會想要將家庭或小型企業網路識別成私人。

管理員可以針對每種網路位置類型建立設定檔,而且每個設定檔都含有不同的防火牆原則。不過,一次只會套用一個設定檔。設定檔的套用順序如下所示:

  1. 如果所有介面都經過電腦屬於其成員之網域的網域控制站驗證,就會套用網域設定檔。

  2. 如果所有介面都經過網域控制站驗證或連接至分類成私人網路位置的網路,就會套用私人設定檔。

  3. 否則,就會套用公用設定檔。

您可以使用 [具有進階安全性的 Windows 防火牆] MMC 嵌入式管理單元來檢視和設定所有防火牆設定檔。[控制台] 中的 [Windows 防火牆] 項目只會設定目前的設定檔。

使用控制台中的 Windows 防火牆項目進行其他防火牆設定

您加入至防火牆的例外可以限制針對來自特定電腦或區域子網路的內送連接開啟通訊埠。這種通訊埠開啟範圍的限制可以減少電腦遭受惡意使用者攻擊的風險,而且建議使用這種限制。

[!附註]

使用 [控制台] 中的 [Windows 防火牆] 項目只會設定目前的防火牆設定檔。

使用控制台中的 Windows 防火牆項目來變更防火牆例外的範圍

  1. 在 [控制台] 的 [Windows 防火牆] 中,選取 [例外] 索引標籤上的程式或通訊埠,然後按一下 [內容][編輯]

  2. [編輯程式][編輯連接埠] 對話方塊中,按一下 [變更領域]

  3. 選擇下列其中一個選項:

    • 任何電腦 (包括在網際網路上的)

      不建議使用。這個選項會允許可設定您電腦位址的任何電腦連接至指定的程式或通訊埠。雖然您可能需要這項設定才能將資訊呈現給網際網路上的匿名使用者,不過這樣做會增加遭受惡意使用者攻擊的風險。如果您啟用了這項設定,而且也允許網路位址轉譯 (NAT) 周遊 (例如 [允許邊緣周遊] 選項),就會進一步增加遭受攻擊的風險。

    • 只有我的網路 (子網路)

      這是比 [任何電腦] 更安全的設定。只有位於網路之區域子網路的電腦才能連接至程式或通訊埠。

    • 自訂清單:

    只有具備您所列出之 IP 位址的電腦才能連接。這可能是比 [只有我的網路 (子網路)] 更安全的設定。不過,使用 DHCP 的用戶端電腦可能偶爾會變更其 IP 位址。接著,預期的電腦將無法連接。您不想要授權的其他電腦可能會接受列出的 IP 位址,然後就能夠連接。[自訂清單] 選項可能適用於列出設定成使用固定 IP 位址的其他伺服器。不過,入侵者可能會假冒這些 IP 位址。限制性防火牆規則只會與您的網路基礎結構同樣強固。

使用具有進階安全性的 Windows 防火牆嵌入式管理單元

在執行 Vista 或 Windows Server 2008 的電腦上,您可以使用 [具有進階安全性的 Windows 防火牆] MMC 嵌入式管理單元來設定其他進階的防火牆設定。此嵌入式管理單元包含規則精靈,而且它會公開 [控制台] 中 [Windows 防火牆] 項目並未提供的其他設定。這些設定包括:

  • 加密設定

  • 服務限制

  • 依據名稱限制電腦的連接

  • 限制特定使用者或設定檔的連接

  • 允許傳輸通過網路位址轉譯 (NAT) 路由器的邊緣周遊

  • 設定輸出規則

  • 設定安全性規則

  • 針對內送連接要求 IPsec

使用新增規則精靈來建立新的防火牆規則

  1. 在 [開始] 功能表上、按一下 [執行]、輸入 WF.msc,然後按一下 [確定]

  2. [具有進階安全性的 Windows 防火牆] 的左窗格中,以滑鼠右鍵按一下 [輸入規則],然後按一下 [新增規則]

  3. 使用您想要的設定來完成 [新增輸入規則精靈]

疑難排解防火牆設定

下列工具和技巧可用於疑難排解防火牆問題:

  • 有效的通訊埠狀態是與該通訊埠相關之所有規則的聯集。嘗試封鎖透過某個通訊埠的存取時,檢閱描述通訊埠編號的所有規則可能會很有用。若要這樣做,請使用 [具有進階安全性的 Windows 防火牆] MMC 嵌入式管理單元,然後依據通訊埠編號來排序輸入和輸出規則。

  • 檢閱在執行 SQL Server 之電腦上作用中的通訊埠。此檢閱程序包括確認哪些是接聽的 TCP/IP 通訊埠,並確認通訊埠的狀態。

    若要確認哪些是接聽的通訊埠,請使用 netstat 命令列公用程式。除了顯示使用中 TCP 連接之外,netstat 公用程式也顯示各種 IP 統計資料和資訊。

    列出哪些是接聽的 TCP/IP 通訊埠

    1. 開啟命令提示字元視窗。

    2. 請在命令提示字元之下,輸入 netstat -n -a。

      -n 參數會指示 netstat,以數值方式顯示使用中 TCP 連接的位址和通訊埠編號。-a 參數會指示 netstat 顯示電腦用於接聽的 TCP 和 UDP 通訊埠。

  • PortQry 公用程式可用於將 TCP/IP 通訊埠的狀態報告成接聽中、未接聽或已篩選 (若為已篩選狀態,表示通訊埠不一定是接聽中。此狀態會指出公用程式未接收到通訊埠的回應)。您可以從 Microsoft 下載中心下載 PortQry 公用程式。

如需其他疑難排解主題,請參閱: