Windows 高級防火牆 - 添加授權電腦會破壞規則
如何在原本有效的 IPSec 規則中添加“僅允許連接到這些電腦”設置會中斷連接?
背景:
我正在設置一組基本的客戶端規則,限制出站 SMB 訪問只能訪問某些伺服器。假設從黑名單開始,需要將所需的通信列入白名單。
伺服器端已設置並正常執行,沒有任何問題。設置是使用舊 IPSec 介面伺服器端和 Windows 高級防火牆客戶端配置的。
首次身份驗證設置為 Kerberos(電腦)或電腦證書。雙方的身份驗證模式都使用“請求入站和出站”。
雙方都使用“請求 ipsec”模型,因為可能有非 IPSec 流量傳遞到其他設備。
在我定義“僅允許連接到這些電腦”選項之前,客戶端上的 Windows 高級防火牆規則執行良好。
Wireshark 擷取顯示 ISAKMP 和 ESP 流量,我在安全關聯列表中看到主模式和快速模式關聯。
編輯:
根據 MS 文件,我啟用了以下日誌記錄來調試我的連接問題。
auditpol /set /subcategory:"Filtering Platform Packet Drop" /success:enable /failure:enable auditpol /set /subcategory:"Filtering Platform Connection" /success:enable /failure:enable auditpol /set /subcategory:"IPsec Driver" /success:enable /failure:enable auditpol /set /subcategory:"IPsec Main Mode" /success:enable /failure:enable auditpol /set /subcategory:"IPsec Quick Mode" /success:enable /failure:enable auditpol /set /subcategory:"IPsec Extended Mode" /success:enable /failure:enable
這僅表明給定服務 - 我嘗試了 SMB 和 RDP - 被阻止。我沒有看到任何其他阻塞的流量。
編輯:
當我啟用 SMB 或 RDP 規則時,看起來絕對沒有流量傳遞到相關伺服器。Wireshark 什麼也沒顯示。看起來幾年前這裡有這樣的案例,但沒有解決方案。
看來,Windows 過濾平台在本應允許的情況下錯誤地阻止了此流量。
The Windows Filtering Platform has blocked a connection. Application Information: Process ID: 2468 Application Name: \device\harddiskvolume1\windows\system32\mstsc.exe Network Information: Direction: Outbound Source Address: 192.168.20.54 Source Port: 49332 Destination Address: 192.168.100.50 Destination Port: 3389 Protocol: 6
在與 MS 進行了 13 個月的故障單後,我們終於為這種“預期行為”提出了一個“解決方案”。
選擇高級安全 Windows 防火牆將對符合防火牆規則條件的網路數據包採取的操作。當您定義了多個防火牆規則時,評估它們是否匹配的順序取決於規則中指定的操作。防火牆規則按以下順序評估:
- 如果安全則允許,並在“自定義允許如果安全設置”對話框中選擇覆蓋阻止規則。
- 阻止連接。
- 允許連接。
- 預設配置文件行為(允許或阻止在具有高級安全屬性的 Windows 防火牆的適用配置文件選項卡上指定)。
在每個類別中,從最具體到最不具體評估規則。選擇指定四個條件的規則優於僅指定三個條件的規則。
一旦網路數據包與規則匹配,就會觸發其操作,並且不會與任何其他規則進行比較。
換言之,即使網路數據包匹配多個規則,也只會將首先針對該數據包評估的匹配規則應用於該數據包。
根據他們,如果防火牆規則中有任何匹配規則允許流量將通過未加密的方式通過。
需要做的是確保預設情況下有一個阻止規則,然後使用選項覆蓋阻止規則創建一個安全規則以使事情正常進行。
請參閱http://technet.microsoft.com/en-us/library/cc730690.aspx了解更多資訊。
只是給你一些建議/問題(我的環境中有同樣類型的規則配置工作,所以我很想知道為什麼它不工作)……
您提到客戶端使用的是具有高級安全 IPsec 策略的 Windows 防火牆,但伺服器端使用的是舊版 IPsec。伺服器是否執行舊版本的 Windows 或舊 IPsec 策略配置的原因是什麼?我並不是說這不應該起作用(因為您嘗試進行機器身份驗證,而不是使用者身份驗證),但這可能會使事情複雜化。伺服器是否也可以配置高級安全策略?您能否嘗試使用具有高級策略和 Kerberos v5 電腦身份驗證的伺服器來查看會發生什麼?
要使您的方案正常工作,IPsec 連接必須使用 Kerberos V5 身份驗證(證書身份驗證不起作用!)。您提到您的策略可能允許證書連接,因此您可能想要檢查您的主模式安全關聯並確保它們確實是使用 Kerberos 而不是證書建立的。
有幾種不同的方法可以在防火牆規則上配置“僅允許連接到這些電腦”設置。預設要求您的 IPsec 連接經過身份驗證和完整性保護……而其他設置允許您確保它也被加密或它是空封裝(僅經過身份驗證,不受完整性保護)。如果您的客戶端/伺服器是 Windows 7+,那麼您可能想嘗試 null 封裝選項,看看這是否有助於縮小問題。
我通常會推薦來自 WFP 擷取 (netsh wfp capture start) 的日誌來調試防火牆丟棄的流量,因為這會向您顯示丟棄流量的確切過濾器。但是,在這種情況下,日誌可能不會很有趣,因為它可能是預設的出站阻止過濾器,它會阻止您的連接,因為您不匹配安全允許規則(出於某種原因)。日誌將顯示連接被丟棄,但不會解釋您為什麼不匹配允許規則。也許值得一試…… http://technet.microsoft.com/en-us/library/ff428146(v=ws.10).aspx