封禁 IP 是怎么回事
应急止血时最直接的动作是把攻击来源挡在门外:用 Windows 防火墙新建一条入站阻止规则,把某个 IP 或网段加进去。这是「争取处置时间」的手段而不是长期方案——攻击者换个出口 IP 就能绕过,所以规则要记名、要能快速回收,同时配合服务层限速与登录日志监控。
基本信息
| 适用平台 | Windows 7/10/11 与 Windows Server(高级安全 Windows 防火墙) |
|---|---|
| netsh 写法 | netsh advfirewall firewall add rule name=名称 dir=in action=block remoteip=IP |
| PowerShell 写法 | New-NetFirewallRule -DisplayName 名称 -Direction Inbound -Action Block -RemoteAddress IP |
| 删除方式 | netsh advfirewall firewall delete rule name=名称;Remove-NetFirewallRule -DisplayName 名称 |
| 生效范围 | 默认对所有配置文件生效(域/专用/公用),可用 profile 参数限定 |
| 权限要求 | 需要管理员权限 |
典型使用场景
- 暴力破解应急:日志显示同一来源反复试登录,先封 IP 争取时间
- 扫描噪声压制:挡掉持续扫描的固定来源,降低日志噪音
- 临时隔离:发现异常外联后先切断与特定对端的通信
- 精准限制:只阻止某来源访问特定端口,不影响其它业务
- 处置留痕:规则名带日期与事件编号,便于事后审计与回收
常用示例
常用示例
REM 封禁单个 IP(入站)
netsh advfirewall firewall add rule name="BLOCK 203.0.113.5 20261013" dir=in action=block remoteip=203.0.113.5
REM 封禁网段与多个来源(逗号分隔,支持 CIDR)
netsh advfirewall firewall add rule name="BLOCK 203.0.113.0-24 20261013" dir=in action=block remoteip=203.0.113.0/24
REM 只阻止该来源访问 3389 端口(保留其它端口正常访问)
netsh advfirewall firewall add rule name="BLOCK RDP 203.0.113.5" dir=in action=block protocol=TCP localport=3389 remoteip=203.0.113.5
REM 查看与回收
netsh advfirewall firewall show rule name="BLOCK 203.0.113.5 20261013"
netsh advfirewall firewall delete rule name="BLOCK 203.0.113.5 20261013"
REM PowerShell 等价操作
REM New-NetFirewallRule -DisplayName 'BLOCK 203.0.113.5' -Direction Inbound -Action Block -RemoteAddress 203.0.113.5
REM Remove-NetFirewallRule -DisplayName 'BLOCK 203.0.113.5'参数与效果对照
| 参数 | 作用 | 使用建议 |
|---|---|---|
| dir=in | 入站方向 | 挡来自外部的连接,最常用 |
| action=block | 显式阻止 | 阻止优先于允许,注意别与放行规则冲突 |
| remoteip= | 来源地址或网段 | 支持单个 IP、CIDR 与逗号分隔列表 |
| localport= | 目标端口 | 只想掐掉某个服务时使用,影响面更小 |
| profile= | 适用的网络配置文件 | 多网卡服务器上限定范围,避免误伤内网 |
| name= | 规则名 | 带日期与事件编号,方便回收 |
规则名就是回收凭据:处置完成后按名字删除即可。临时封禁建议统一命名前缀加日期,每周清理一次,否则规则越积越多,排查时很难分清哪条还有用。
确认是否真的拦住,需要在被封来源之外验证(例如用另一台机器访问对应端口),本机自测往往因为流量路径不同而得出错误结论。
事后核验与替代做法
事后核验与替代做法
Get-NetFirewallRule -DisplayName 'BLOCK*' | Select-Object DisplayName, Enabled, Direction, Action
Get-NetFirewallRule -DisplayName 'BLOCK 203.0.113.5*' | Get-NetFirewallAddressFilter # 核对封的地址
Test-NetConnection 10.0.0.20 -Port 3389 # 从其它主机验证连通性
# 长期方案:改用地址集合统一管理来源清单
# New-NetFirewallRule -DisplayName 'BLOCK-LIST' -Direction Inbound -Action Block -RemoteAddress @('203.0.113.5','198.51.100.7')封禁前必须核对 IP 归属:共享出口、CDN 回源地址、云 NAT 网关往往被大量正常用户共用,封掉一个 IP 可能影响整片业务;对这类地址应改用应用层限速与登录策略。