强制启用windows防火墙需通过管理员powershell执行set-netfirewallprofile命令一次性开启域、专用、公用三类配置文件,并验证enabled均为true;同步禁用高风险入站服务如smb、llmnr,启用64mb日志限制及组策略锁定防篡改。
强制启用并配置 windows 防火墙是终端安全加固中最基础也最关键的一步。它不是简单“打开开关”,而是要确保防火墙在所有网络配置文件(域、专用、公用)下始终启用、规则精简、日志可查,并能抵御绕过行为。
一、统一启用三类网络配置文件的防火墙
默认情况下,部分配置文件可能被禁用,尤其在新装系统或企业镜像中。必须通过命令行强制开启,避免图形界面误操作或组策略延迟生效。
- 以管理员身份运行 PowerShell,执行:
Set-NetFirewallProfile -Profile Domain,Private,Public -Enabled True - 该命令一次性启用全部配置文件,且不受用户登录状态影响,比在“控制面板→Windows Defender 防火墙”中手动勾选更可靠。
- 验证是否生效:运行 Get-NetFirewallProfile | Select-Object Profile,Enabled,三行输出均应显示 True。
二、关闭高风险入站服务暴露
很多攻击始于默认开放的共享服务。即使不主动使用,SMB、LLMNR、NetBIOS 等协议的入站响应仍可能被利用进行凭证中继或信息收集。
- 禁用文件和打印机共享相关入站规则:
Disable-NetFirewallRule -DisplayGroup "File and Printer Sharing" - 额外禁用 NetBIOS 和 LLMNR(链路本地多播名称解析):
Set-NetIPInterface -AddressFamily IPv4 -ConnectionSpecificDnsSuffix "" -NetbiosOptions 2
并在注册表中禁用 LLMNR:
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient" /v "EnableMulticast" /t REG_DWORD /d 0 /f
三、启用防火墙日志并限制日志大小
没有日志的防火墙等于盲防。企业环境必须记录允许与拒绝行为,且防止日志无限增长挤占磁盘。
- 启用完整日志记录:
Set-NetFirewallProfile -LogAllowed True -LogBlocked True -LogFileName "C:\Windows\System32\LogFiles\Firewall\pfirewall.log" - 设置日志最大尺寸为 64MB(避免过大难分析,也防爆满):
wevtutil sl Security /ms:64000000(适用于安全日志,防火墙日志需配合脚本轮转)
或使用组策略:计算机配置 → 管理模板 → 网络 → 网络连接 → Windows 防火墙 → 域配置文件 → 日志 → 设置日志最大大小。
四、防止用户或程序擅自关闭防火墙
普通用户或恶意软件可能通过控制面板、PowerShell 或第三方工具停用防火墙。需从系统级锁定关键操作权限。
- 通过组策略禁用用户修改防火墙设置:
计算机配置 → 管理模板 → 网络 → 网络连接 → Windows 防火墙 → 所有配置文件 → “不允许更改 Windows 防火墙设置” → 启用。 - 若使用域环境,还可部署 GPO 强制推送,使本地策略无法覆盖;非域环境则建议结合本地组策略编辑器(gpedit.msc)或直接写入注册表:
reg add "HKLM\SOFTWARE\Policies\Microsoft\WindowsFirewall\DomainProfile" /v "EnableFirewall" /t REG_DWORD /d 1 /f
同样对 PrivateProfile 和 PublicProfile 执行相同操作。











