Windows

當服務被停止和禁用時,如何重新啟用 Windows 防火牆而不中斷自己?

  • October 10, 2019

正如每個 Windows 系統管理員在 2019 年應該知道的那樣,“Windows 防火牆”服務是 Windows 網路堆棧的關鍵組件,它永遠不應該被停止或被禁用;讓任何流量流入/流出 Windows 伺服器的正確方法是將防火牆配置為允許任何東西通過,但不會實際停止 Windows 防火牆服務;事實上,這不僅不受 Microsoft 支持,而且還可能導致任何奇怪的網路問題。

這甚至(有點)在文件中明確提到:

不要通過停止服務來禁用 Windows 防火牆。相反,請使用上述過程之一(或等效的組策略設置)來關閉防火牆。

$$ … $$Microsoft 不支持停止與高級安全 Windows 防火牆關聯的服務。

現在,我有一堆伺服器,以前的系統管理員認為禁用 Windows 防火牆服務是個好主意,所以他們這樣做了。我需要重新啟動它,但一旦我這樣做,我會立即失去與系統的網路連接(因為當然沒有人會費心實際配置 Windows 防火牆以允許諸如 RDP 之類的東西進入);在重新啟動服務之前,我也無法手動更改 Windows 防火牆配置,無論是通過 GUI 還是通過netsh,因為這兩個工具都抱怨 Windows 防火牆服務被停止,因此不會讓我配置任何東西。

到目前為止,唯一可行的方法是使用這些伺服器的物理(好的,虛擬的)控制台重新啟用 Windows 防火牆服務,然後設置適當的防火牆例外(或完全允許所有流量);但是,這對於大量系統或您實際上沒有控制台訪問權限是不可行的。

如何配置 Windows 防火牆以在服務關閉時和重新啟動之前接受所有(或部分)傳入連接?

這可能是一個非常愚蠢的想法,但是,如果您知道在重新啟動服務後需要通過 netsh 創建什麼規則,為什麼不編寫腳本呢?編寫將啟動 Windows 防火牆服務的腳本,然後下一個命令將是允許所有內容進入的 netsh(或至少 RDP,以便您可以遠端進入並在之後進行調整)

另一種選擇是使用組策略提前配置必要的防火牆設置。即使伺服器不是域成員,您仍然可以使用本地組策略。

但是,我不確定在這種情況下這些設置是否會立即生效。它們可能僅在下一次組策略刷新時生效。當然,您可以編寫一個腳本來啟動防火牆,然後刷新組策略。

引用自:https://serverfault.com/questions/986441