Share via


The Cable Guy疑難排解 NAP 強制的問題

Joseph Davies

內建在 Windows Vista、Windows Server 2008 和 Windows XP SP3 的新網路存取保護 (NAP) 平台,可以強制遵守電腦健康需求,協助保護您的私人內部網路。NAP 的主要元件是 NAP 用戶端、NAP 強制端點以及 NAP 健康原則伺服器。

NAP 用戶端是一部可提供健康狀態資訊用於評估系統健康的電腦。NAP 強制端點是一部電腦或網路存取裝置,它使用 NAP 或者與 NAP 合作,要求評估 NAP 用戶端的健康狀態,並且提供有限的網路存取或通訊。NAP 健康原則伺服器是一部執行 Windows Server® 2008 和網路原則伺服器 (NPS) 服務的電腦,它會儲存健康需求原則並且執行 NAP 用戶端的健康評估。NAP 健康原則伺服器和 NAP 強制端點負責與遠端驗證撥入使用者服務 (RADIUS) 伺服器和 Proxy 訊息,交換系統健康資訊以及限制存取指示。

在本專欄中,我將一一說明健康需求原則的元件、NPS 服務如何處理連入要求以進行 NAP 評估,以及如何疑難排解 NAP 強制的常見問題。

健康需求原則

NAP 健康評估的運作方式

NAP 健康原則伺服器上的 NPS 服務採用下述程序來執行健康評估:

  1. NPS 服務將連入要求訊息與其經過設定的連線要求原則集互相比較。對 NAP 來說,要求訊息應該符合指定 NPS 服務在本機執行驗證和授權的連線要求原則。
  2. NPS 服務會評估要求訊息中的健康資訊,這些健康資訊是由包含健康狀態資訊的系統健康聲明 (SSoH) 所組成。NPS 服務將健康狀態資訊傳給它所安裝的 SHV,再由 SHV 將健康評估資訊傳回給 NPS 服務。
  3. 接著 NPS 服務將要求訊息和 SHV 傳來的健康評估資訊,與適當的網路原則集比照。健康評估資訊會與 NAP 網路原則的健康原則條件做比較。健康原則條件會指定符合或不符合健康的條件。接著 NPS 服務將第一個符合的網路原則,套用到要求訊息。
  4. NPS 服務根據符合的 NAP 網路原則及其相關的 NAP 設定,建立一個系統健康回應聲明 (SSoHR)。這個回應包含 SHV 所傳來的健康評估資訊,它指出 NAP 用戶端具備的存取權是限制亦或無限制,以及 NAP 用戶端是否應該自動修復其健康狀態。
  5. NPS 服務將 RADIUS 回應訊息連同 SSoHR 一起傳給 NAP 強制端點。如果用戶端已獲有限制存取權,回應訊息也可能包含指定限制 NAP 用戶端存取權的指示。
  6. 接著 NAP 強制端點再將 SSoHR 傳給 NAP 用戶端。

健康需求原則結合了連線需求原則、一或多個網路原則、一或多個健康原則,以及 NAP 強制方法的 NAP 設定。若要建立健康需求原則,請使用 [網路原則伺服器] 嵌入式管理單元中的「設定 NAP 精靈」。(有關評估程序的詳細資訊,請參閱「NAP 健康評估的運作方式」資訊看板)。

連線要求原則 連線要求原則是依序排好的規則集,容許 NPS 服務決定連入連線要求應該在本機處理,還是轉送到另一部 RADIUS 伺服器。NAP 健康原則伺服器是在本機處理連線要求。

Windows® NAP 強制端點發出的連入 RADIUS 要求,可包含指定像動態主機設定通訊協定 (DHCP) 伺服器或虛擬私人網路 (VPN) 伺服器等 NAP 強制端點類型的來源標記。

如果連入要求訊息包含來源標記,NAP 健康原則伺服器上的 NPS 服務只會根據那些具有相符來源的連線要求原則,尋找相符的要求 (其他連線要求原則一律不管)。如果連入要求訊息不含來源標記,則 NPS 服務會根據具有未指定之來源的連線要求原則,尋找相符的要求 (其他有指定來源的連線要求原則一律不管)。

比方說,NAP DHCP 伺服器發出的連入要求,會指定 DHCP 的來源標記。NPS 服務會盡量根據含有 DHCP 來源的連線要求原則,在 DHCP 伺服器發出的要求中尋找相符的要求。 啟用 802.1X 的交換器和無線存取點發出的連入要求,不會指定來源標記。因此 NPS 服務會根據沒有指定來源的連線要求原則,在這些要求中尋找相符的要求。

本機或遠端處理評估所用的連線要求原則,是套用到連入要求的部分原則清單中 (該清單中的原則將依序排列),第一個相符的連線要求原則。如果該要求不符合任何連線要求原則,就會遭到拒絕。

網路原則 網路原則是經過排序的規則集,它會指定與連入要求訊息相對應的連線嘗試是在何種情況下通過授權或遭到拒絕。每一項規則都有一個存取權限 (授予權限或拒絕權限)、一組條件、一組條件約束以及網路原則設定。如果連線獲得授權,網路原則條件約束和設定便可以指定一組連線限制。對於 NAP 來說,網路原則可以指定一個健康原則條件來查驗健康需求和強制行為設定。

與連線要求原則一樣,網路原則也是使用來源標記,來決定要以哪些網路原則尋找相符的連入要求。如果連入要求訊息包含來源標記,NPS 服務只會根據那些具有相符來源的網路原則,尋找相符的要求 (其他網路原則一律不管)。如果連入要求訊息不含來源標記,則 NPS 服務會根據具有未指定之來源的網路原則,尋找相符的要求 (其他有指定來源的網路原則一律不管)。

授權或健康評估所用的網路原則,是套用到連線嘗試的原則子集排序清單中第一個相符的網路原則。如果該嘗試不符合任何網路原則,就會遭到拒絕。

健康原則 健康原則可讓您就安裝的系統健康狀態驗證 (SHV) 這方面來指定健康需求 (用於健康評估),以及 NAP 用戶端必須通過還是不用通過任何或所有選定的 SHV。比方說,合格 NAP 用戶端的健康原則,可以指定用戶端必須通過所有的健康檢查。而不合格 NAP 用戶端的健康原則,可以指定用戶端至少不通過一個健康檢查,或者所有的健康檢查都不通過。

網路存取保護設定 網路存取保護設定包括針對健康需求和錯誤狀況而安裝在 NAP 健康原則伺服器的 SHV 設定,以及補救伺服器群組,後者會指定一組伺服器,供對 DHCP 和 VPN 強制方法具有限制網路存取權之不合格 NAP 用戶端進行存取。

定出 NAP 強制問題的範圍

邏輯方法可以幫助您排解任何問題的疑難。下面是在進行疑難排解時最常見的問題:哪一個適用?哪一個不適用?適用者和不適用者之間有何關聯性?不適用者過去曾經適用過嗎?如果曾經適用過,那麼自從上次適用之後,有哪些改變?

這些問題在處理 NAP 強制問題時,明顯有越來越受重視的傾向。連線或連線能力是否在部署 NAP 強制方法之前就能使用?比方說,網際網路通訊協定安全性 (IPsec) 伺服器或網域隔離是否在部署 IPsec 強制之前就能使用?802.1X 驗證是否在部署 802.1X 強制之前就能使用?VPN 遠端存取是否在部署 VPN 強制之前就能使用?DHCP 是否在部署 DHCP 強制之前就能使用?

另外,特定的 NAP 強制方法之前是否曾經能夠使用?如果是,則 NAP 用戶端、NAP 強制端點或 NAP 健康原則伺服器後來又做了哪些改變?這些問題的答案,就可以告訴您該從哪裡著手進行疑難排解,說不定還能讓您隔離導致問題的元件、階層或設定問題。

在針對 NAP 強制問題進行一般的疑難排解時,必須先定出問題的範圍。第一步先釐清問題到底是不是 NAP 強制。如果是 IPsec 強制,判斷 NAP 用戶端是否有適合 IPsec 對等交涉和資料保護用的 IPsec 原則集。如果是 DHCP 強制,查明 NAP 用戶端是否能夠與 DHCP 伺服器交換 DHCP 訊息。如果是 802.1X 和 VPN 強制,則判斷 NAP 用戶端是否能夠順利進行驗證。比方說,如果您的 VPN 用戶端無法執行 VPN 連線的驗證,請驗證 VPN 用戶端的驗證設定和認證。

如果您確認問題是 NAP 強制,接下來就要定出範圍。所有 NAP 強制方法的所有 NAP 用戶端都會受到影響嗎?特定強制方法的所有 NAP 用戶端都會受到影響嗎?特定強制方法和 NAP 強制端點的所有 NAP 用戶端都會受到影響嗎?所有身為特定群組成員的 NAP 用戶端都會受到影響嗎?問題只會影響特定的 NAP 用戶端嗎?

比方說,如果您所有的 NAP 用戶端都不適合所有類型的 NAP 強制方法,也許您的 NAP 健康原則伺服器有設定問題。如果您所有的 NAP 用戶端在一遇到某個特定的 NAP 強制方法就會出現問題,表示設定問題是出在 NAP 用戶端的群組原則設定,或是 NAP 健康原則伺服器上該特定 NAP 強制方法的健康需求原則。如果只有特定的 NAP 用戶端會出現 NAP 強制問題,可能只有那些 NAP 用戶端有 NAP 強制的設定問題。

常見的 NAP 強制問題

NAP 資源

無限制存取 如果 NAP 用戶端具有無限制的存取權 (沒有任何限制),可能是因為 NAP 用戶端已被 NAP 健康原則伺服器評為合格,而這正是您所要的。但是,獲得無限制存取權的原因,也可能是因為 NAP 用戶端沒有收到 SSoHR,而這是 NAP 用戶端沒有接受健康評估時常見的現象。如果沒有接受 NAP 健康評估,便不會有任何 SSoHR 傳回 NAP 用戶端,NAP 用戶端因而能夠無限制存取。

舉個例說,採用 DHCP 強制的 NAP 用戶端,會將它的 SSoHR 傳給它的 DHCP 伺服器。如果執行 Windows Server 2008 的 DHCP 伺服器不採用 NAP,便不會傳送健康評估要求訊息給 NAP 健康原則伺服器。此外,如果執行 Windows Server 2008 且採用 NAP 的 DHCP 伺服器,無法連接 NAP,那麼根據預設值,健康原則伺服器還是會指派一個無限制存取的位址設定。

如果 NAP 健康原則伺服器不執行健康評估,是因為連入要求符合一項不需要 NAP 健康評估的網路原則,也可能獲得無限制存取權。有關決定符合 NAP 用戶端要求的網路原則,請參閱本專欄的「逐步排解 NAP 強制的疑難」一節。

限制存取 具有限制存取權的 NAP 用戶端,已被 NAP 健康原則伺服器評為不合格。如果 NAP 用戶端具備限制存取權,但其實應該是具備無限制存取權,請根據對應於符合 NAP 用戶端要求之網路原則的健康原則設定,驗證 NAP 用戶端的健康狀態。

無自動修復 只要是經過妥善設定的 NAP 用戶端,都可以自動修復其健康狀態。如果 NAP 用戶端無法自動修復,請確認符合 NAP 用戶端要求之網路原則的 NAP 強制設定,有勾選 [啟用用戶端電腦的自動修復功能] 核取方塊。

另外,如果受限制的 NAP 用戶端無法連接補救伺服器來下載更新,也可能會影響自動修復功能。如果是 IPsec 強制,請確認補救伺服器有套用正確的 IPsec 原則。如果是 802.1X 強制,請檢查指派存取控制清單 (ACL) 或虛擬區域網路識別碼 (VLAN ID) 的相符網路原則中的設定,並且確認交換器或無線存取點 (AP) 的 ACL 或 VLAN 設定。如果是 VPN 或 DHCP 強制,請檢查相符網路原則中有關補救伺服器群組的設定,並且確保所有的補救伺服器都設定為該群組的成員。如果是 DHCP 強制,請確保 NAP 用戶端的 DHCP 範圍選項有妥善設定,例如,NAP 使用者類別的 [預設閘道] 選項值。

不支援 NAP 的評估 對於任何一種 NAP 強制方法,請確認 NAP 用戶端有啟用對應的強制用戶端。如果是 802.1X 和 VPN 強制,請確認 NAP 用戶端有針對連線要求原則和 NAP 用戶端上啟用的 PEAP 驗證方法進行系統健康檢查 (有選取 [受保護的 EAP 內容] 對話方塊中的 [啟用隔離檢查] 核取方塊)。

NAP 用戶端沒有受限,卻無法連接內部網路 如果是 IPsec 強制,請查驗合格 NAP 用戶端的 IPsec 原則,以及內部網路電腦的 IPsec 原則,有一組共用的交涉和保護設定。如果是 802.1X 強制,請確認合格 NAP 用戶端的網路原則是指定內部網路 (而不是限制網路) 的 ACL 或 VLAN ID。請查驗交換器或無線 AP 上內部網路的 ACL 或 VLAN ID 設定。如果是 VPN 強制,請確保網路原則沒有針對限制 VPN 用戶端流量的合格 NAP 用戶端,設定 IP 封包篩選器。

逐步排解 NAP 強制的疑難

要疑難排解特定 NAP 用戶端的 NAP 強制問題,其中一個方法是從 NAP 用戶端的設定著手,檢查 NAP 用戶端事件記錄,然後前往 NAP 健康原則伺服器,以判斷 NPS 服務處理 NAP 用戶端要求的方式。

步驟 1:檢查 NAP 用戶端設定 NAP 用戶端設定是由 Windows 服務、強制用戶端和 NAP 強制專屬的設定所組成。若要顯示 NAP 用戶端狀態和設定資訊,請使用 netsh nap client show state 和 netsh nap client show configuration 命令。

請注意,如果 NAP 用戶端設定是由群組原則所提供,則所有的 NAP 用戶端設定便會由群組原則指定,所有的本機 NAP 用戶端設定一律略過不管。碰到這種情況時,請使用 netsh nap client show grouppolicy 命令,來顯示以群組原則為主的 NAP 用戶端設定,並且透過群組原則進行變更。

如果是在執行 Windows Vista® 的電腦上採用 IPsec 強制,請使用 net start 命令,確認網路存取保護代理程式、IKE 和 AuthIP IPsec 金鑰處理模組以及 IPsec 原則代理程式服務已經啟動。並且使用 netsh nap client show configuration 命令,確認 IPsec 信賴憑證者強制用戶端已經啟用。必要時,請使用 [NAP 用戶端設定] 嵌入式管理單元來啟用 IPsec 信賴憑證者強制用戶端,或是使用 netsh nap client set enforcement 79619 enabled 命令。Netsh nap client set enforcement 命令應該以較高的權限,從命令提示字元執行。

如果是在執行 Windows Vista 的電腦上採用 802.1X 強制,請使用 net start 命令,確認可延伸驗證通訊協定、網路存取保護代理程式、有線自動設定 (用於有線連線的 802.1X 強制),以及 WLAN 自動設定 (用於無線連線的 802.1X 強制) 服務已經啟動。

接著再度使用 netsh nap client show configuration 命令,確認 EAP 隔離強制用戶端已經啟用。必要時,請使用 [NAP 用戶端設定] 嵌入式管理單元來啟用 EAP 隔離強制用戶端,或是使用 netsh nap client set enforcement 79623 enabled 命令。並查驗有線或無線連線的受保護 EAP 驗證方法的內容,已勾選 [啟用隔離檢查] 核取方塊。

如果是在執行 Windows Vista 的電腦上採用 VPN 強制,請使用 net start 命令,確認可延伸驗證通訊協定、網路存取保護代理程式和遠端存取連線管理員服務已經啟動。

請使用 netsh nap client show configuration 命令的顯示畫面,確認遠端存取隔離強制用戶端已經啟用。必要時,請使用 [NAP 用戶端設定] 嵌入式管理單元來啟用遠端存取隔離強制用戶端,或是使用 netsh nap client set enforcement 79618 enabled 命令。並查驗 VPN 連線的受保護 EAP 驗證方法的內容,已勾選 [啟用隔離檢查] 核取方塊。

如果是在執行 Windows Vista 的電腦上採用 DHCP 強制,請使用 net start 命令,確認網路存取保護代理程式和 DHCP 用戶端服務已經啟動。必要時,請使用 [服務] 嵌入式管理單元或 Sc.exe 工具來啟動這些服務,並且設定讓它們自動啟動。

請使用 netsh nap client show configuration 命令的顯示畫面,查驗 DHCP 隔離強制用戶端已經啟用。必要時,請使用 [NAP 用戶端設定] 嵌入式管理單元來啟用 DHCP 隔離強制用戶端,或是使用 netsh nap client set enforcement 79617 enabled 命令。

步驟 2:檢查 NAP 用戶端事件日誌 請使用 [事件檢視器] 嵌入式管理單元,檢查網路存取保護代理程式服務所建立的事件日誌中的事件。如果是執行 Windows Vista 的電腦,請使用事件檢視器嵌入式管理單元,檢視 [應用程式及服務記錄檔]\[Microsoft]\[Windows]\[網路存取保護]\[操作] 中的事件。如果是執行 Windows XP 含 SP3 的電腦,則使用 [事件檢視器] 嵌入式管理單元,檢視系統事件日誌中的 NAP 事件。

請從 NAP 用戶端事件取得 NAP 用戶端健康評估的交互關聯識別碼。您可以使用 NAP 用戶端的交互關聯識別碼或電腦名稱,來尋找 NAP 健康原則伺服器上對應的健康評估事件。[圖 1] 顯示含有交互關聯識別碼之不合格 NAP 用戶端的事件範例。

Figure 1 Windows Vista NAP 用戶端事件的範例

Figure 1** Windows Vista NAP 用戶端事件的範例 **(按影像可放大)

步驟 3:檢查 NPS 事件日誌 在 NAP 健康原則伺服器上,請使用 [事件檢視器] 嵌入式管理單元,檢視由 NPS 服務所建立的 [Windows 記錄]\[安全性記錄檔] 中的事件。若要檢視 NPS 事件,請在事件檢視器中先後開啟 [自訂檢視] 和 [伺服器角色],然後再按一下 [網路原則與存取服務]。若要檢視與該事件相關的線上說明主題,請在該事件的 [一般] 索引標籤上,按一下 [事件日誌線上說明] 連結。

一般的 NAP 健康評估事件都有事件識別碼 6278 (無限制存取) 或 6276 (限制存取)。請根據 NAP 用戶端的電腦名稱 (事件描述的 [用戶端電腦] 區段中的 [帳戶名稱] 欄位) 或交互關聯識別碼 (事件描述的 [隔離資訊] 區段中的 [工作階段識別碼] 欄位),尋找對應的 NAP 健康原則伺服器事件。

NPS 事件日誌的事件 6278 和 6276 包含 NAP 健康評估的相關資訊,例如,相符連線要求原則的名稱 (事件描述的 [驗證詳細資料] 區段中的 [Proxy 原則名稱] 欄位),以及相符網路原則的名稱 (事件描述的 [驗證詳細資料] 區段中的 [網路原則名稱] 欄位)。[圖 2] 是事件識別碼 6276 的 [詳細資料] 索引標籤的範例,其中包含 Proxy 原則名稱、網路原則名稱和交互關聯識別碼 (名稱為 QuarantineSessionID)。這是 [圖 1] 當中對應到 Windows Vista NAP 用戶端事件的 NAP 健康原則事件。

Figure 2 NAP 健康原則伺服器事件的範例

Figure 2** NAP 健康原則伺服器事件的範例 **(按影像可放大)

如果沒有任何事件對應到 NAP 用戶端事件,請確認已啟動網路原則伺服器服務,已妥善設定 NAP 強制端點來執行 NAP,並且已將 NAP 健康原則伺服器作為 RADIUS 伺服器使用。另外還要查驗 RADIUS 訊息可以在 NAP 強制端點和 NAP 健康原則伺服器之間傳送。

只要遵守上述三個步驟,應該就可以順利找出 NAP 強制無法正常運作的原因。如需 NAP 的詳細資訊,請參閱「NAP 資源」資訊看板。

Joseph Davies 是 Microsoft 的技術文件作家,自 1992 起開始教授及撰寫有關 Windows 網路方面的課程與文章。他曾為 Microsoft Press 寫過八本書,目前擔任 TechNet 每月《Cable Guy》線上專欄的作者。

© 2008 Microsoft Corporation and CMP Media, LLC. 保留所有權利;未經允許,嚴禁部分或全部複製.