Windows系统中,命令行管理防火墙连接安全规则主要通过PowerShell和netsh advfirewall实现,其中PowerShell(如New-NetIPsecMainModeRule)推荐用于Windows 10/11及Server 2016+,支持完整IPsec策略配置;netsh仅作兼容维护使用,功能有限。
windows系统中,命令行管理防火墙连接安全规则主要通过 powershell 和 netsh advfirewall 两种方式实现。其中,连接安全规则(connection security rules)属于“高级安全windows defender防火墙”的核心功能,用于配置ipsec策略,如身份验证、加密、密钥交换等,常用于域环境下的主机间安全通信。它不同于普通入站/出站规则,不控制“是否允许流量”,而是控制“流量如何被保护”。
确认并启用高级安全防火墙服务
连接安全规则依赖 Windows Defender 防火墙服务(mpssvc)正常运行,且必须通过“高级安全”界面或命令行操作:
- 确保防火墙已启用:
netsh advfirewall set allprofiles state on - 检查服务状态:在管理员 PowerShell 中运行
Get-Service mpssvc,状态应为“Running” - 若服务被禁用或停止,使用
Start-Service mpssvc启动(不建议手动停止该服务)
使用 PowerShell 管理连接安全规则(推荐)
PowerShell 提供了完整、可脚本化的 IPsec 规则管理能力,适用于 Windows 10/11 及 Server 2016+ 系统:
-
创建新连接安全规则:例如,要求与 192.168.1.100 通信时强制使用 Kerberos 身份验证和 AES 加密
New-NetIPsecMainModeRule -Name "RequireKerbToDB" -RemoteAddress 192.168.1.100 -AuthenticationMethod Kerberos -EncryptionMethod AES128 -
查看现有规则:
Get-NetIPsecMainModeRule或按名称筛选:Get-NetIPsecMainModeRule -Name "RequireKerbToDB" -
禁用/启用规则:
Set-NetIPsecMainModeRule -Name "RequireKerbToDB" -Enabled False -
删除规则:
Remove-NetIPsecMainModeRule -Name "RequireKerbToDB"
使用 netsh 配置主模式与快速模式策略(兼容旧脚本)
netsh 支持基础的连接安全策略配置,但功能较 PowerShell 有限,适合简单场景或遗留环境:
- 显示当前主模式策略:
netsh ipsec static show mmpolicy - 添加主模式策略(含身份验证方法):
netsh ipsec static add mmpolicy name="SecureDomainPolicy" keyexchangealgorithm=3des keylifetime=86400 - 绑定筛选器动作到策略(需配合
add filteraction和add filterlist) - 注意:netsh 的 IPsec 命令在 Windows 10 1809+ 已标记为“仅维护支持”,新部署建议优先使用 PowerShell cmdlet
关键注意事项
配置连接安全规则时需特别注意以下几点,否则策略可能不生效或引发通信中断:
- 规则作用范围必须匹配:主模式策略需与快速模式筛选器(filter)及筛选器动作(filter action)三者关联正确
- 身份验证方法需双方支持:如选 Kerberos,两端必须同属一个 Active Directory 域;选证书则需部署对应证书模板和信任链
- 避免策略冲突:多个主模式规则存在时,系统按“最具体匹配”原则选择,IP 地址范围越小、协议越明确的规则优先级越高
- 测试前建议先设置日志:
Set-NetFirewallProfile -LogAllowed True -LogBlocked True,日志路径默认为%SystemRoot%\System32\LogFiles\Firewall\pfirewall.log











