网络层隔离与定向封禁
网络层遏制的特点是不动主机状态:在主机防火墙上封掉到 C2 的出站,或在边界设备上限制受控主机的出入,就能切断控制通道与横向路径,同时保留内存与磁盘现场。与直接关机相比,它的代价小得多;与拔网线相比,它的粒度更细,可以只阻断特定地址与端口,把管理通道留给处置人员。原则是最小改动:改动范围越小,对业务与自身处置通道的影响越可控。
基本信息
| 主机侧 Linux | iptables 或 nftables 按目标地址封禁出站,规则永久化前先备份 |
|---|---|
| 主机侧 Windows | New-NetFirewallRule 按 RemoteAddress 建出站封禁规则 |
| 边界设备 | ACL、黑洞路由、交换机端口 shutdown |
| 云环境 | 安全组与网络 ACL 调整,注意不要同时切断带外管理通道 |
| 实施原则 | 最小改动、保留管理通道、变更前后导出规则快照 |
| 验证方式 | 在边界或主机上确认对目标地址已无出站流量 |
典型使用场景
- 确认某个 C2 地址后先在主机侧封禁,阻止继续回连
- 批量封禁一批 IOC 地址,但不希望逐台登录主机
- 云主机通过调整安全组阻断横向端口,同时保留管理端口
- 作为临时措施在边界挡掉扫描源,为后续加固争取时间
- 配合主机隔离使用:边界限制出入,主机侧精细封禁
封禁单个恶意目标出站
封禁单个恶意目标出站
sudo iptables-save > /evidence/iptables_before.rules # 1 先导出规则快照
sudo iptables -A OUTPUT -d 203.0.113.10 -j DROP # 2 封禁出站
sudo ip6tables -A OUTPUT -d 2001:db8::10 -j DROP # 3 IPv6 同样要封
sudo iptables -L OUTPUT -n -v | grep -n DROP # 4 查看规则与命中计数
sudo iptables -A INPUT -p tcp --dport 22 -s 10.0.0.0/8 -j ACCEPT # 5 明确放行管理网段
sudo iptables-save > /evidence/iptables_after.rules # 6 变更后再导出一次留档Windows 防火墙封禁出站
Windows 防火墙封禁出站
New-NetFirewallRule -DisplayName 'IR-Block-C2' -Direction Outbound -RemoteAddress 203.0.113.10 -Action Block
Get-NetFirewallRule -DisplayName 'IR-Block-C2' | Get-NetFirewallAddressFilter # 核对规则内容
Get-NetFirewallRule -DisplayName 'IR-Block-C2' | Remove-NetFirewallRule # 解除封禁
netsh advfirewall firewall show rule name=all | Select-String 'IR-Block-C2' # 旧系统的等价查看方式封禁位置对比
| 位置 | 粒度 | 影响面与注意 |
|---|---|---|
| 主机 iptables | 地址加端口 | 只影响本机,适合精确封禁 C2 |
| 主机 Windows 防火墙 | 地址加端口加程序 | 适合按程序与地址双重限定 |
| 边界 ACL | 地址、端口、方向 | 影响面大,需评估同网段其他业务 |
| 安全组 | 实例级四层规则 | 云上最常用,注意别把管理端口一起关掉 |
| 黑洞路由 | 整个目标地址段 | 见效快,但会把到该段的其他通信一并阻断 |
封禁前先导出规则快照:既能快速回滚,也便于事后说明改了什么。切勿直接清空规则表,那会把自己与业务的通道一起切断,等于制造一次新的故障。
封禁要双向考虑:只封入站不封出站,回连照样建立;只封出站不管入站,攻击者换个方向仍能进入。处置时把入站与出站策略一起过一遍,并确认管理网段已显式放行。