4. 采集点部署工程

NetFlow/IPFIX 威胁流量分析的第一道工程决策,不是选分析平台,而是决定“在哪里看流量”。采集点位置直接决定了你能看到什么、看不到什么,也决定了采样误差、设备负载和告警可信度。同一个攻击事件,在核心路由器上可能只表现为一条聚合流,在边界防火墙上却能看到被拒绝的连接尝试,在主机代理上则能看到进程与五元组的对应关系。因此采集点部署必须按“可见性目标”来设计,而不是按设备型号堆叠。

一、四类采集点的能力边界

路由器与三层交换机通常以 NetFlow v9/IPFIX 导出,优势是覆盖广、对转发路径无侵入,能看到跨网段的东西向与南北向流量;代价是只记录 IP 层信息,缺少应用层字段,且在高吞吐接口上必须依赖采样。二层交换机本身多数不产生流记录,需要依靠端口镜像或 sFlow 才能获得可见性,镜像口容易过载丢包,sFlow 则是基于报文采样的统计,适合趋势分析而非精确计费。

防火墙是威胁分析中信息密度最高的采集点:它天然带有 ACL/安全策略的判定结果,能区分 accept、deny、drop,并常附带应用识别、用户身份、NAT 前后地址。对于扫描、暴力破解、横向移动这类以“被拒绝的连接”为主要信号的攻击,防火墙日志与 IPFIX 的组合往往比路由器流记录更早暴露异常。主机代理(如基于 eBPF 的采集器或系统级 flow exporter)则提供最细粒度:进程名、PID、容器 ID、监听端口,适合定位“哪台主机上的哪个程序在发起外联”,但部署成本高、覆盖面受限于纳管主机比例。

采集点分层部署与可见性覆盖 互联网 / 外部 不可信区域 边界防火墙 accept / deny / drop NAT前地址 · 应用识别 核心路由器 NetFlow v9 / IPFIX 采样 1:1000 · 东西向 汇聚/接入交换机 端口镜像 / sFlow 镜像口易过载丢包 主机代理 / eBPF 进程 · PID · 容器ID 监听端口 · 外联行为 服务器区 业务主机 / 数据库 流采集器 Collector UDP 2055 / 4739 · 模板缓存 · 时间对齐 威胁分析平台 基线 · 检测 · 关联 覆盖盲区提示 加密流量仅见五元组 未纳管主机无代理流 实线:流量转发路径 虚线:流记录导出路径 分层采集:边界看判定、核心看广度、主机看进程

二、配置原则:先定可见性目标,再定导出参数

采集点配置的核心原则是“就近导出、按需聚合、控制速率”。就近导出指 exporter 应把流记录发往最近的采集器,避免跨广域网传输 UDP 流记录造成丢包;按需聚合指在核心设备上启用聚合缓存(如按源/目的前缀、协议、端口聚合),减少记录条数;控制速率指必须为导出流量设置上限,防止设备在攻击流量激增时因导出而 CPU 过载。

以 Cisco IOS-XE 为例,一个可参考的 NetFlow 配置片段如下:

flow exporter EXP-COL
 destination 10.20.30.40
 source GigabitEthernet0/0
 transport udp 2055
 template data timeout 60
!
flow record REC-IPV4
 match ipv4 source address
 match ipv4 destination address
 match ipv4 protocol
 match transport source-port
 match transport destination-port
 collect counter bytes long
 collect counter packets long
 collect timestamp absolute first
 collect timestamp absolute last
!
flow monitor MON-CORE
 exporter EXP-COL
 record REC-IPV4
 cache timeout active 60
 cache timeout inactive 15
!
interface GigabitEthernet0/1
 ip flow monitor MON-CORE input
 ip flow monitor MON-CORE output

其中 cache timeout active 60 表示长连接每 60 秒强制导出一次,inactive 15 表示 15 秒无新报文即老化。这两个值直接决定检测时延:active 过大,长连接攻击(如慢速扫描、C2 心跳)会被延迟发现;过小则记录条数暴涨。工程上常把边界防火墙设为 active 30 秒、核心路由器设为 60 秒,主机代理设为 10 秒,形成时延梯度。

三、采样策略:采样率与检测灵敏度的权衡

采样是采集点部署中最容易被低估的参数。1:1000 采样意味着一条 1000 包的扫描流可能只被记录 1 个包,若攻击者用 100 包完成端口扫描,采样后可能完全不可见。因此采样率必须与检测目标匹配:

  • 边界防火墙:建议不采样或 1:1,因为 deny 日志本身就是安全事件,采样会丢失被拒绝的连接尝试。
  • 核心路由器:高吞吐接口可用 1:1000 至 1:2000,用于宏观趋势与 DDoS 检测;对关键业务 VLAN 可单独配置 1:100 或 1:10。
  • 汇聚交换机 sFlow:典型 1:2000,适合流量成分分析,不适合精确的会话计数。
  • 主机代理:不采样,全量记录,因为主机侧流量规模可控且需要进程级精度。

采样方式上,优先选择“确定性采样”或“基于哈希的流采样”,避免随机采样导致同一会话前后包被不同处理。若设备支持,应启用“采样后聚合”,即先采样再按五元组合并,减少导出记录数。

四、流量覆盖评估:用数据验证“看得见”

部署完成后必须做覆盖评估,否则无法判断告警缺失是“没有攻击”还是“没看到”。评估方法分三步:

  1. 接口覆盖率:统计已启用 flow monitor 的接口带宽占设备总转发带宽的比例。若核心设备有 40 个接口,仅 8 个启用,覆盖率 20%,则东西向流量大量缺失。
  2. 采样还原误差:在已知流量场景下,用采集器统计的字节数乘以采样率,与接口计数器对比。例如接口 5 分钟转发 12 GB,采样 1:1000 后采集器统计 11.2 MB,还原为 11.2 GB,误差约 6.7%,在可接受范围;若误差超过 20%,说明采样或导出存在丢包。
  3. 攻击场景回放:用测试工具从外部发起一次已知端口扫描(如 1000 个端口),检查防火墙 deny 流、核心 NetFlow、主机代理是否都能产生对应记录。若某一层缺失,即定位为覆盖盲区。
覆盖评估应形成基线:记录每个采集点的接口覆盖率、采样率、平均导出速率(EPS)和时延。后续告警量突降时,先查采集点是否掉线或采样配置被改动,再查攻击面。

五、工程落地检查清单

检查项合格标准常见问题
导出目的地址可达exporter 到 collector 无 ACL 阻断,UDP 2055/4739 通防火墙拦截 UDP 导致无记录
模板超时template data timeout ≤ 60s模板过期后采集器无法解析
采样率与目标匹配边界不采样,核心按带宽分级全设备统一 1:1000 导致边界漏检
缓存老化时间active 30–60s,inactive 15sactive 过大导致长连接攻击延迟
接口覆盖关键接口覆盖率 ≥ 80%只采上行不采下行,单向可见
导出速率上限不超过接口带宽 5%攻击时导出风暴拖垮设备 CPU

采集点部署不是一次性任务。网络变更、业务迁移、设备替换都会改变可见性边界。建议把采集点配置纳入变更管理,每次拓扑调整后重新执行覆盖评估,确保威胁分析平台看到的流量始终与真实转发路径一致。只有采集点可信,后续的基线建模、异常检测和告警研判才有意义。