配置Windows防火墻以允許SQL Server訪問
防火墻系統有助于阻止對計算機資源進行未經授權的訪問。如果防火墻已打開但卻未正確配置,則可能會阻止連接 SQL Server。
若要通過防火墻訪問 SQL Server 實例,必須在運行 SQL Server 的計算機上配置防火墻以允許訪問。防火墻是 Microsoft Windows 的一個組件。也可以安裝其他公司的防火墻。本主題討論如何配置 Windows 防火墻,不過所述基本原理也適用于其他防火墻程序。
注意
本主題概述了防火墻配置并匯總了 SQL Server 管理員所需的信息。有關防火墻的詳細信息以及權威信息,請參閱防火墻文檔,例如 Windows Firewall with Advanced Security and IPsec(高級安全 Windows 防火墻和 IPsec)和 Windows Firewall with Advanced Security - Content Roadmap(高級安全 Windows 防火墻 - 內容概覽)。
用戶如果熟悉“控制面板”中的“Windows 防火墻”項,熟悉高級安全 Windows 防火墻的 Microsoft 管理控制臺 (MMC) 管理單元,以及知道要配置哪些防火墻設置,可以直接轉至以下列表中的主題:
如何為數據庫引擎訪問配置 Windows 防火墻
如何為 Analysis Services 訪問配置 Windows 防火墻
如何將防火墻配置為允許報表服務器訪問
如何為 Integration Services 配置 Windows 防火墻
主題內容
本主題包含以下部分:
基本防火墻信息
默認防火墻設置
用于配置防火墻的程序
數據庫引擎使用的端口
Analysis Services 使用的端口
Reporting Services 使用的端口
Integration Services 使用的端口
其他端口和服務
與其他防火墻規則的交互
防火墻配置文件概述
使用“控制面板”中的“Windows 防火墻”項進行其他防火墻設置
使用高級安全 Windows 防火墻管理單元
解決防火墻設置問題
基本防火墻信息
防火墻的工作原理是檢查傳入的數據包并將其與一組規則進行比較。如果規則允許數據包通過,則防火墻將把該數據包傳遞給 TCP/IP 協議以進行其他處理。如果規則不允許數據包通過,則防火墻將丟棄該數據包,此外,如果已啟用日志記錄,防火墻還將在防火墻日志文件中創建一個條目。
允許的通信的列表采用以下某種方式進行填充:
當啟用了防火墻的計算機開始通信時,防火墻會在列表中創建一個條目以便允許響應。傳入響應將被視為請求的通信,并且您不必對此進行配置。
管理員可配置防火墻例外。這樣將允許訪問計算機上運行的指定程序,或訪問計算機上的指定連接端口。在此情況下,當計算機充當服務器、偵聽器或對等方時,將會接受未經請求的傳入通信。必須完成此類配置才能連接到 SQL Server。
選擇防火墻策略遠較只是確定應打開還是關閉給定端口復雜。當為企業設計防火墻策略時,請確保考慮所有可供使用的規則和配置選項。本主題不討論所有可能的防火墻選項。建議您查看以下文檔:
Getting Started with Windows Firewall with Advanced Security in Windows Vista and Windows Server 2008(Windows Vista 和 Windows Server 2008 中的高級安全 Windows 防火墻入門)
Windows Firewall with Advanced Security Design Guide
Introduction to Server and Domain
默認防火墻設置
規劃防火墻配置的第一步是確定操作系統的防火墻的當前狀態。如果操作系統是從早期版本升級而來,則可能已保留以前的防火墻設置。此外,防火墻設置可能已由其他管理員或域中的組策略更改。不過,默認設置如下所示:
Windows Server 2008
防火墻打開并禁止遠程連接。
Windows Server 2003
防火墻關閉。管理員應考慮打開防火墻。
Windows Vista
防火墻打開并禁止遠程連接。
Windows XP Service Pack 2 或更高版本
防火墻打開并禁止遠程連接。
Windows XP Service Pack 1 或更低版本
防火墻關閉,應打開防火墻。
注意
打開防火墻將影響訪問此計算機的其他程序,例如文件和打印共享以及遠程桌面連接。在調整防火墻設置之前,管理員應對計算機上運行的所有應用程序加以考慮。
用于配置防火墻的程序
有三種配置 Windows 防火墻設置的方式。
“控制面板”中的“Windows 防火墻”項
可以從“控制面板”打開“Windows 防火墻”項。
重要提示
在“控制面板”中的“Windows 防火墻”項中所做的更改只會影響當前配置文件。諸如便攜式計算機之類的移動設備不應使用“控制面板”中的“Windows 防火墻”項,因為當以其他配置連接設備時配置文件可能會更改。這樣以前配置的配置文件將失效。有關配置文件的詳細信息,請參閱 Getting Started with Windows Firewall with Advanced Security in Windows Vista and Windows Server 2008(Windows Vista 和 Windows Server 2008 中的高級安全 Windows 防火墻入門)。
使用“控制面板”中的“Windows 防火墻”項可配置基本選項。其中包括:
打開或關閉“控制面板”中的“Windows 防火墻”項
啟用和禁用規則
配置例外的端口和程序
設置一些范圍限制
“控制面板”中的“Windows 防火墻”項最適合于防火墻配置經驗不足的用戶以及要為非移動的計算機配置基本防火墻選項的用戶。也可以采用以下步驟通過 run 命令打開“控制面板”中的“Windows 防火墻”項:
打開“Windows 防火墻”項
在“開始”菜單上,單擊“運行”,然后輸入 firewall.cpl。
單擊“確定”。
Microsoft 管理控制臺 (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 2 的系統上使用腳本以編程方式打開端口供 SQL Server 使用。有關 netsh 的詳細信息,請參閱以下鏈接:
如何使用 Netsh.exe 工具和命令行開關
如何使用“netsh advfirewall firewall”上下文而非“netsh firewall”上下文控制 Windows Server 2008 和 Windows Vista 中的 Windows 防火墻行為
“netsh firewall”命令及“profile=all”參數不配置基于 Windows Vista 的計算機上的公共配置文件
解決 Windows XP Service Pack 2 中 Windows 防火墻的設置問題(高級用戶)
SQL Server 使用的端口
下面幾個表可有助于您確定 SQL Server 所使用的端口。
數據庫引擎使用的端口
下表列出了數據庫引擎經常使用的端口。
應用場景 |
端口 |
注釋 |
---|---|---|
通過 TCP 運行的 SQL Server 默認實例 |
TCP 端口 1433 |
這是允許通過防火墻的最常用端口。它適用于與默認數據庫引擎安裝或作為計算機上唯一運行實例的命名實例之間的例行連接。(命名實例具有特殊的注意事項。請參閱本主題后面的動態端口)。 |
采用默認配置的 SQL Server 命名實例 |
此 TCP 端口是在啟動數據庫引擎時確定的動態端口。 |
請參閱下面動態端口部分中的描述。當使用命名實例時,SQL Server Browser 服務可能需要 UDP 端口 1434。 |
配置為使用固定端口的 SQL Server 命名實例 |
由管理員配置的端口號。 |
請參閱下面動態端口部分中的描述。 |
專用管理員連接 |
對于默認實例,為 TCP 端口 1434。其他端口用于命名實例。有關端口號,請查看錯誤日志。 |
默認情況下,不會啟用與專用管理員連接 (DAC) 的遠程連接。若要啟用遠程 DAC,請使用外圍應用配置器方面。有關詳細信息,請參閱了解外圍應用配置器。 |
SQL Server Browser 服務 |
UDP 端口 1434 |
SQL Server Browser 服務用于偵聽指向命名實例的傳入連接,并為客戶端提供與此命名實例對應的 TCP 端口號。通常,只要使用數據庫引擎的命名實例,就會啟動 SQL Server Browser 服務。如果客戶端配置為連接到命名實例的特定端口,則不必啟動 SQL Server Browser 服務。 |
通過 HTTP 端點運行的 SQL Server 實例。 |
可以在創建 HTTP 端點時指定。對于 CLEAR_PORT 通信,默認端口為 TCP 端口 80,對于 SSL_PORT 通信,默認端口為 443。 |
用于通過 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 的復制連接使用典型的常規數據庫引擎端口(供默認實例使用的 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 之間進行。 有關詳細信息,請參閱Configuring Microsoft Internet Security and Acceleration Server for Microsoft SQL Server 2000 Replication over the Internet(為通過 Internet 進行的 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 調試器。 |
有關為數據庫引擎配置 Windows 防火墻的分步說明,請參閱如何為數據庫引擎訪問配置 Windows 防火墻。
動態端口
默認情況下,命名實例(包括 SQL Server Express)使用動態端口。也就是說,每次啟動數據庫引擎時,它都將確定一個可用端口并使用此端口號。如果命名實例是安裝的唯一數據庫引擎實例,則它可能使用 TCP 端口 1433。如果還安裝了其他數據庫引擎實例,則它可能會使用其他 TCP 端口。由于所選端口可能會在每次啟動數據庫引擎時更改,因而很難配置防火墻以啟用對正確端口號的訪問。因此,如果使用防火墻,則建議重新配置數據庫引擎以每次都使用同一端口號。這稱為固定端口或靜態端口。有關詳細信息,請參閱Configuring a Fixed Port。
另一種配置命名實例以偵聽固定端口的方法是在防火墻中為諸如 sqlservr.exe 之類的 SQL Server 程序創建例外(針對數據庫引擎)。這會非常方便,但當使用高級安全 Windows 防火墻 MMC 管理單元時,端口號將不會顯示在“入站規則”頁的“本地端口”列中。這會使審核哪些端口處于打開狀態變得更為困難。另一注意事項是 Service Pack 或累積的更新可能會更改 SQL Server 可執行文件的路徑,這將使防火墻規則作廢
使用“控制面板”中的“Windows 防火墻”項向防火墻添加程序例外
1.在“控制面板”中的“Windows 防火墻”項的“例外”選項卡上,單擊“添加程序”。
2.瀏覽到要允許其通過防火墻的 SQL Server 實例的所在位置,例如 C:\Program Files\Microsoft SQL Server\MSSQL10_50.<實例名稱>\MSSQL\Binn,選擇 sqlservr.exe,然后單擊“打開”。
3.單擊“確定”。
有關端點的詳細信息,請參閱網絡協議和 TDS 端點和端點目錄視圖 (Transact-SQL)。
Analysis Services 使用的端口
下表列出了 Analysis Services 經常使用的端口。
功能 |
端口 |
注釋 |
---|---|---|
Analysis Services |
對于默認實例,為 TCP 端口 2383。 |
默認 Analysis Services 實例的標準端口。 |
SQL Server Browser 服務 |
僅 Analysis Services 命名實例需要的 TCP 端口 2382 |
客戶端向 Analysis Services 命名實例發出不指定端口號的連接請求時,該連接請求將被轉到端口 2382,即 SQL Server Browser 偵聽的端口。然后,SQL Server Browser 將此請求重定向到該命名實例所使用的端口。 |
配置為通過 IIS/HTTP 使用的 Analysis Services (PivotTable® Service 使用 HTTP 或 HTTPS) |
TCP 端口 80 |
用于通過 URL 實現的 HTTP 連接。 |
配置為通過 IIS/HTTPS 使用的 Analysis Services (PivotTable® Service 使用 HTTP 或 HTTPS) |
TCP 端口 443 |
用于通過 URL 實現的 HTTPS 連接。HTTPS 是使用安全套接字層 (SSL) 的 HTTP 連接。 |
如果用戶通過 IIS 和 Internet 訪問 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 連接。建議不要使用預配置規則“安全萬維網服務(HTTPS)”。有關詳細信息,請參閱下面的與其他防火墻規則的交互部分。 |
當 Reporting Services 連接到數據庫引擎或 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 是一種無連接協議。 防火墻具有一個名為 UnicastResponsesToMulticastBroadcastDisabled Property of the INetFwProfile Interface(INetFwProfile 接口的 UnicastResponsesToMulticastBroadcastDisabled 屬性)的設置,用于控制防火墻在對廣播(或多播)UDP 請求的單播響應方面的行為。 它有以下兩種行為:
|
IPsec 通信 |
UDP 端口 500 和 UDP 端口 4500 |
如果域策略要求通過 IPSec 進行網絡通信,還必須將 UDP 端口 4500 和 UDP 端口 500 添加到例外列表。使用 Windows 防火墻管理單元中的“新建入站規則向導”可以選擇 IPsec。有關詳細信息,請參閱下面的使用高級安全 Windows 防火墻管理單元。 |
將 Windows 身份驗證用于可信域 |
必須將防火墻配置為允許身份驗證請求。 |
有關詳細信息,請參閱如何為域和信任關系配置防火墻。 |
SQL Server 和 Windows 群集 |
群集需要與 SQL Server 不直接相關的其他端口。 |
有關詳細信息,請參閱 Enable a network for cluster use(啟用網絡以供群集使用)。 |
HTTP 服務器 API (HTTP.SYS) 中保留的 URL 命名空間 |
很可能為 TCP 端口 80,但可以配置為其他端口。有關常規信息,請參閱配置 HTTP 和 HTTPS。 |
有關使用 HttpCfg.exe 保留 HTTP.SYS 端點的 SQL Server 特定信息,請參閱使用 Http.sys 預留 URL 命名空間。 |
解決防火墻設置問題
以下工具和方法對于解決防火墻問題會非常有用:
有效端口狀態是與端口相關的所有規則的總體作用結果。當試圖禁止通過某一端口訪問時,查看引用該端口號的所有規則將會非常有用。為此,請使用高級安全 Windows 防火墻 MMC 管理單元,并按端口號對入站和出站規則進行排序。
查看在運行 SQL Server 的計算機上處于活動狀態的端口。此檢查過程包括確認正在偵聽的 TCP/IP 端口,同時確認這些端口的狀態。
若要驗證哪些端口正在偵聽,請使用 netstat 命令行實用工具。除了顯示活動 TCP 連接以外,netstat 實用工具還將顯示多種 IP 統計信息和其他信息。
列出正在偵聽的 TCP/IP 端口
1.打開命令提示符窗口。
2.在命令提示符下,鍵入 netstat -n -a
3.-n 開關指示 netstat 以數字方式顯示活動 TCP 連接的地址和端口號。-a 開關指示 netstat 顯示計算機正在偵聽的 TCP 和 UDP 端口。
PortQry 實用工具可用于報告 TCP/IP 端口的狀態(正在偵聽、未在偵聽或已篩選)。(對于已篩選狀態,端口可能正在偵聽,也可能未在偵聽;此狀態指示實用工具沒有收到端口的響應。)PortQry 實用工具可以從 Microsoft 下載中心下載。
有關故障排除的其他主題,請參閱:
Troubleshooting Windows Firewall with Advanced Security in Windows Vista and Windows Server 2008 - Diagnostics and Tools(解決 Windows Vista 和 Windows Server 2008 中的高級安全 Windows 防火墻問題 - 診斷和工具)
故障排除(數據庫引擎)
故障排除(Analysis Services - 數據挖掘)
故障排除 (Reporting Services)
故障排除 (Integration Services)
使用高級安全 Windows 防火墻管理單元
在運行 Vista 或 Windows Server 2008 的計算機上,可以通過使用高級安全 Windows 防火墻 MMC 管理單元來配置其他高級防火墻設置。此管理單元包括規則向導,并提供“控制面板”中的“Windows 防火墻”項中未提供的附加設置。這些設置包括:
加密設置
服務限制
按名稱限制計算機的連接
限制連接到特定用戶或配置文件
邊緣遍歷允許通信繞過網絡地址轉換 (NAT) 路由器
配置出站規則
配置安全規則
傳入連接需要 IPsec
使用新建規則向導創建新防火墻規則
1.開始”菜單上,單擊“運行”,鍵入 WF.msc,然后單擊“確定”。
2.高級安全 Windows 防火墻”的左窗格中,右鍵單擊“入站規則”,然后單擊“新建規則”。
3.所需設置完成“新建入站規則向導”。
使用“控制面板”中的“Windows 防火墻”項進行其他防火墻設置
添加到防火墻的例外可以限制端口僅對來自特定計算機或本地子網的傳入連接打開。這種對端口打開范圍的限制可以大大減少計算機對惡意用戶的暴露程度,因此建議采用此類限制。
使用“控制面板”中的“Windows 防火墻”項更改防火墻例外的范圍
1.控制面板”中的“Windows 防火墻”項的“例外”選項卡上,選擇一個程序或端口,然后單擊“屬性”或“編輯”。
2.編輯程序”或“編輯端口”對話框中,單擊“更改范圍”。
3.以下選項之一:
任何計算機(包括 Internet 上的計算機)
建議不要使用。這將使任何可尋址到您計算機的計算機都可以連接到指定程序或端口。如果要允許向 Internet 上的匿名用戶呈現信息,則此設置可能是必需的,不過這會增加您對于惡意用戶的暴露程度。如果啟用此設置,同時還允許網絡地址轉換 (NAT) 遍歷(例如“允許邊緣遍歷”選項),則會進一步增加您的暴露程度。
僅我的網絡(子網)
這是比“任何計算機”更安全的設置。只有網絡的本地子網中的計算機可以連接到相應程序或端口。
自定義列表:
只有具有列表中的 IP 地址的計算機可以連接。這是比“僅我的網絡(子網)”更安全的設置,不過,使用 DHCP 的客戶端計算機有時候會更改它們的 IP 地址。這樣的話,目標計算機將無法連接。另一臺您未打算授權的計算機可能接受這一列出的 IP 地址,從而能夠連接。如果希望列出其他配置為使用固定 IP 地址的服務器,則可能最好選擇“自定義列表”選項;不過,入侵者可能會假冒 IP 地址。限制防火墻規則的作用大小取決于網絡基礎結構的優劣。
防火墻配置文件概述
Getting Started with Windows Firewall with Advanced Security in Windows Vista and Windows Server 2008(Windows Vista 和 Windows Server 2008 中的高級安全 Windows 防火墻入門)中的 Network location-aware host firewall(識別網絡位置的主機防火墻)部分介紹了防火墻配置文件。為了進行匯總,Windows Vista 和 Windows Server 2008 可按照連接性、連接數和類別來識別并記住與它們連接的每個網絡。
在高級安全 Windows 防火墻中有三種網絡位置類型:
域。Windows 可以驗證對計算機所聯接域的域控制器的訪問。
公共。除域網絡之外,其他所有網絡最初都歸為公共網絡一類。直接連到 Internet 的網絡或者位于公共場所(如機場和咖啡店)的網絡應保留為公共網絡。
專用。由用戶或應用程序標識為專用的網絡。只應將可信網絡標識為專用網絡。用戶很可能希望將家庭網絡或小型企業網絡標識為專用網絡。
管理員可以為每種網絡位置類型創建一個配置文件,每個配置文件均包含不同的防火墻策略。在任何時候只能應用一個配置文件。應用配置文件的順序如下:
1.如要向計算機所屬域的域控制器驗證所有接口,則應用域配置文件。
2.如要向域控制器驗證所有接口或者所有接口均連接到歸為專用網絡位置一類的網絡,則應用專用配置文件。
3.否則,應用公共配置文件。
使用高級安全 Windows 防火墻 MMC 管理單元查看和配置所有防火墻配置文件。“控制面板”中的“Windows 防火墻”項僅可配置當前配置文件。
與其他防火墻規則的交互
Windows 防火墻使用規則和規則組建立其配置。每個規則或規則組通常與特定程序或服務相關,并且該程序和服務可以在您不知道的情況下修改或刪除相應規則。例如,規則組“萬維網服務(HTTP)”和“安全萬維網服務(HTTPS)”與 IIS 相關。啟用這些規則將打開端口 80 和 443,并且如果啟用這些規則,則依賴端口 80 和 443 的 SQL Server 功能將能正常工作。不過,配置 IIS 的管理員可能會修改或禁用這些規則。因此,如果您為 SQL Server 使用端口 80 或端口 443,則應創建您自己的規則或規則組,這樣可以獨立于其他 IIS 規則之外維護您的所需端口配置。
高級安全 Windows 防火墻 MMC 管理單元允許符合任何適用允許規則的所有通信。因此,如果有兩個均應用于端口 80 的規則(具有不同的參數),則符合任一規則的通信都將得到允許。因此,如果一個規則允許來自本地子網的通過端口 80 的通信而另一個規則允許來自任意地址的通信,則實際結果是不管通信來源是什么,所有通向端口 80 的通信都將得到允許。若要有效地管理對 SQL Server 的訪問,管理員應定期查看服務器上啟用的所有防火墻規則。
端口 135 的特殊注意事項
將 RPC 與 TCP/IP 或 UDP/IP 一起用作傳輸方式時,通常會根據需要為系統服務動態分配入站端口。將使用端口號大于 1024 的 TCP/IP 和 UDP/IP 端口。這些端口通常被不正式地稱為“隨機 RPC 端口”。在這些情況下,RPC 客戶端依賴 RPC 端點映射器來通知它們為服務器分配了哪些動態端口。對于一些基于 RPC 的服務,可以配置特定端口,而非讓 RPC 動態分配一個端口。此外,還可以將 RPC 動態分配的端口范圍限制為一個較小的范圍,不管何種服務均可如此。由于許多服務都使用端口 135,它經常受到惡意用戶的攻擊。當打開端口 135 時,請考慮限制防火墻規則的作用范圍。
有關端口 135 的詳細信息,請參閱以下參考內容:
Windows 服務器系統的服務概述和網絡端口要求
如何從產品 CD 使用 Windows Server 2003 支持工具排除 RPC 端點映射器的錯誤
Using Distributed COM with Firewalls
Remote Procedure Call (RPC)(遠程過程調用 (RPC))
如何配置與防火墻一起使用的 RPC 動態端口分配
Windows 2000 Startup and Logon Traffic Analysis(Windows 2000 啟動和登錄通信流量分析)
【編輯推薦】