4. 网络隔离实战
当终端或服务器确认失陷后,攻击者最常做的下一件事不是继续加密,而是横向移动:扫描内网、抓取凭据、跳板到域控或数据库。此时如果只是拔网线,业务会瞬间中断;如果什么都不做,横向移动会在几分钟内扩散。网络隔离的目标不是"断网",而是在保留必要管理通道的前提下,把失陷主机的可达范围压缩到最小。本节按"先定位、再分层封堵、最后验证"的顺序,讲清 VLAN、ACL、防火墙、微隔离和 SDN 策略这五种手段各自适合切在哪一层、怎么切、切完怎么确认。
先明确隔离的边界:切什么、留什么
动手前必须先写清两件事:一是要切断的流量,通常是失陷主机到其他内网主机的横向协议(SMB 445、RDP 3389、WinRM 5985/5986、SSH 22、WMI 135、数据库 1433/3306 等);二是必须保留的通道,包括安全团队的取证接入、EDR 管理回连、补丁与杀软更新、以及必要的业务心跳。判断依据可以简单记为:凡是"失陷主机主动发起、指向其他内网资产"的流量默认拒绝;凡是"管理侧主动发起、指向失陷主机"的流量按需放行。这条方向约定在后续所有策略中保持一致。
五种手段的分层定位
这五种技术不是互相替代,而是作用在不同粒度上。VLAN 改变的是二层广播域归属,适合把一台主机整体挪出原网段;ACL 作用在三层/四层,通常部署在汇聚或核心交换机的 SVI 上,按源/目的 IP 和端口过滤;防火墙是带状态的策略设备,能按应用、用户、时间做更细判断;微隔离工作在主机或工作负载层面,用 agent 或主机防火墙实现"一机一策";SDN 策略则通过控制器集中下发流表,适合大规模、快速、可编排的封堵。下图给出这五层在数据路径上的位置与典型封堵对象。
VLAN 与 ACL:最快见效的两刀
如果失陷主机所在网段与核心资产同处一个大二层域,最快的一刀是把该端口划入隔离 VLAN。以接入交换机为例,把原 VLAN 30 的端口改为隔离 VLAN 999,并只保留一条指向管理网段的三层路由:
interface GigabitEthernet1/0/24
description QUARANTINE-HOST-10.20.3.51
switchport mode access
switchport access vlan 999
spanning-tree portfast
!
interface Vlan999
ip address 10.20.99.1 255.255.255.0
!
ip access-list extended QUARANTINE-IN
permit ip 10.20.99.0 0.0.0.255 10.20.250.0 0.0.0.255
deny ip any 10.20.0.0 0.0.255.255
permit ip any any
!
interface Vlan999
ip access-group QUARANTINE-IN in
这段配置的含义是:隔离网段只允许访问管理网段 10.20.250.0/24,其余指向内网 10.20.0.0/16 的流量全部丢弃。注意 ACL 的匹配顺序是自上而下,deny 必须写在放行管理通道之后、permit ip any any 之前,否则管理通道会被误伤。ACL 部署在 SVI 的 in 方向,意味着在流量进入三层转发前就丢弃,效率高且不影响其他网段。
防火墙与微隔离:把策略落到主机和工作负载
当失陷主机不能挪 VLAN(例如它同时承载关键业务),就需要在防火墙上做更细的策略。典型做法是新建一条"隔离策略组",源为失陷主机 IP,动作为拒绝,但排除管理网段和 EDR 服务器:
策略名: QUARANTINE-10.20.3.51
源地址: 10.20.3.51/32
目的地址: 10.20.0.0/16
排除: 10.20.250.0/24, 10.20.251.10 (EDR)
服务: any
动作: deny + log
生效时间: 立即, 有效期 4h
微隔离则把同样逻辑下沉到主机。以某主机微隔离 agent 的策略为例,出站默认拒绝,仅放行到管理网段和 EDR 的 443/8443:
{
"policy": "quarantine-host",
"direction": "egress",
"default": "deny",
"allow": [
{"dst": "10.20.250.0/24", "proto": "tcp", "port": "22,3389"},
{"dst": "10.20.251.10", "proto": "tcp", "port": "443,8443"}
],
"log": true
}
微隔离的优势是不依赖网络设备、不受物理位置限制,即使主机被迁移到别的网段,策略依然生效;代价是需要 agent 在线,且要提前确认 agent 自身的管理通道不被误封。
SDN 策略:大规模快速编排
当失陷主机数量多、或需要按业务标签批量隔离时,SDN 控制器能一次性下发流表。例如按标签 role=web 且 compromised=true 的主机,统一禁止其访问 role=db 和 role=dc,仅允许到 role=mgmt:
match: src.tag=compromised, dst.tag in [db, dc]
action: drop, log
priority: 200
---
match: src.tag=compromised, dst.tag=mgmt
action: allow
priority: 100
SDN 的关键在于标签体系要提前建好。如果资产没有打标签,临时隔离就只能靠 IP 列表,规模一大就容易漏。建议在平时就把域控、数据库、管理网段、EDR 等关键角色打上标签,事件发生时才能"一键圈定"。
隔离后的验证与回退
策略下发不等于生效。验证要抓三个点:一是从失陷主机侧测试到同网段服务器和域控的 445/3389 是否超时;二是确认管理侧仍能 SSH/RDP 到失陷主机、EDR 心跳仍在;三是查看防火墙或 ACL 的命中计数与日志,确认拒绝规则确实被匹配。若发现业务被误伤,回退顺序应与下发相反:先撤 SDN 流表,再撤微隔离策略,最后恢复 ACL 和 VLAN,每一步都留观察窗口。
| 手段 | 作用层 | 典型生效时间 | 适用场景 | 主要风险 |
|---|---|---|---|---|
| VLAN | 二层 | 秒级 | 整机挪出原网段 | 影响同端口其他业务 |
| ACL | 三层/四层 | 秒级 | 网段级快速封堵 | 规则顺序写错误伤管理 |
| 防火墙 | 三到七层 | 秒级 | 按应用/用户精细控制 | 策略过多难维护 |
| 微隔离 | 主机/工作负载 | 秒到分钟 | 主机迁移后仍生效 | 依赖 agent 在线 |
| SDN | 流表/编排 | 秒级 | 大规模批量隔离 | 依赖标签体系完整 |