萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 網路安全 >  >> 資訊安全防護

Windows 7 桌面防火牆命令列批次管理:NetSH AdvFirewall 實戰腳本

應用場景

透過 GUI 逐台設定防火牆效率極低,需以批次檔(`.bat`)推送至區域網路所有終端。測試環境:宿主機 Win7 32-bit,虛擬機 XP(NAT/橋接模式均測)。

核心批次指令

1. 啟用防火牆(所有設定檔)

netsh advfirewall set allprofiles state on

2. 設定預設入站/出站策略

# 允許所有(預設)
netsh advfirewall set allprofiles firewallpolicy allowinbound,allowoutbound

# 拒絕所有
netsh advfirewall set allprofiles firewallpolicy blockinbound,blockoutbound

3. 封鎖高風險連接埠(TCP/UDP 雙協定)

# TCP 139 (NetBIOS Session)
netsh advfirewall firewall add rule dir=in protocol=tcp localport=139 action=block
# UDP 139
netsh advfirewall firewall add rule dir=in protocol=udp localport=139 action=block

# TCP 445 (SMB)
netsh advfirewall firewall add rule dir=in protocol=tcp localport=445 action=block
# UDP 445
netsh advfirewall firewall add rule dir=in protocol=udp localport=445 action=block

測試觀察與待解議題

  • 139/445 封鎖規則在 NAT 與橋接模式下均生效
  • 21 連接埠 (FTP) 封鎖規則不生效,原因待查(可能涉及 FTP ALG/狀態檢查機制)
  • 建議補充 `dir=out` 規則控制出站連線
  • 生產環境部署前請於測試機完整驗證規則生效性

還原腳本範例

netsh advfirewall reset
netsh advfirewall set allprofiles state on
netsh advfirewall set allprofiles firewallpolicy allowinbound,allowoutbound

最佳實務

  1. 將規則封裝為 `.bat`,透過群組原則/登入腳本/SCCM 分發
  2. 採用「預設拒絕,顯式允許」原則設計規則集
  3. 記錄規則版本與變更日誌,支援稽核追溯
copyright © 萬盛學電腦網 all rights reserved