📡 第五章 防火墙功能与防范威胁的对策
📄 一句话概括

监视靠的是「记账」,不是「抓全包」。 一条流记录 48 字节,全抓包是它的几千倍——所以分析用流、取证才用包。

📝 本节和前面几节的关系

上一节讲「怎么判」,这一节讲「判完之后留下什么」。 这一节的关键数字是「流量与记录量的比例」,它决定了存储怎么规划。

一、三种记账方式

流记录(NetFlow 一类):每条连接记一行:五元组、起止时间、包数、字节数。 数据量小,适合长期保留与趋势分析。

计数器(接口统计):每个接口记「收了多少包、丢了多少包、错了多少包」。 数据量极小,适合画图表与告警。

日志(事件记录):每条策略命中、每次登录、每次配置变更记一行。 数据量中等,适合审计。

三者的分工是清楚的:计数器看「健康」、流记录看「谁在跟谁说话」、日志看「发生了什么」。 排障时先看计数器,再看流记录,最后才查日志。

二、算一下存储要多少

一条流记录约 48 字节(五元组 13、时间 8、计数 8、接口与标志 4、扩展 12,加对齐)。

一条 1 Gbps 链路,平均包长 500 字节:约 25 万 pps; 按 1:1000 采样,就是每秒 250 条记录。 一天 = 250 × 86400 × 48 字节 ≈ 1.0 GB。

而同样这条链路,全抓包一天是多少:1 Gbps 满载一天 = 10.8 TB。 差四个数量级。

这个数量级差决定了三件事: 流记录可以留 30 天以上、可以放进普通数据库;抓包只能留几小时到几天、必须用高速盘;而「全流量回溯」这类产品卖的就是「把不可能变成可能」。

三、报告要回答什么问题

报告不是「越多越好」,是「能回答具体问题」。三类问题对应三类报告:

「谁用得最多」:按源地址排的流量榜。这也是最常被要求的那张表。 「什么时候最忙」:按小时或按天的趋势图,用来做扩容与限速决策。 「有没有异常」:基线对比——今天与上周同期比,偏差超过多少就报警。

第三类最难做,也最有用:因为「异常」不是「绝对值大」,是「与平时不一样」。 一台服务器平时 1 Mbps,今天 100 Mbps 就是异常;另一台平时 500 Mbps,今天 100 Mbps 反而是故障。 所以基线的价值远高于阈值。

四、动手 Demo:一条流记录多大,一天能攒多少

这段按 1 Gbps、平均包长 500 字节算 pps,再按 1:1000 采样算一天的流记录体积,最后对比全抓包的量。

pps = 1000000000 / (500 * 8)
per_day = pps / 1000 * 86400 * rec
P(u"  %d 条/秒 × 86400 秒 × %d 字节 = %.1f GB/天。"
  % (pps / 1000, rec, per_day / 1073741824.0))

full = 1000000000 / 8 * 86400
P(u"  1 Gbps 满载一天 = %.1f TB。" % (full / 1e12))

实跑输出:

--------------------------------------------------------------------
一条流记录多大,一天能攒多少
--------------------------------------------------------------------
**监视与报告靠的不是抓全包,是「记账」**——**每一条连接记一行。**

  字段             字节     说明
  ----------------------------------------------------
  五元组           13       源目的地址与端口、协议
  起止时间         8        各 4 字节秒
  包数与字节数     8        各 4 字节
  接口与标志       4        进出接口、TCP 标志
  自治系统等       12       可选扩展

  一条记录 45 字节。

**算一条 1 Gbps 链路的流记录量**(平均包长 500 字节):

  1 Gbps ÷ (500 字节 × 8) = 250,000 pps。
  假设采样比 1:1000,那记录速率 = 250 条/秒。
  250 条/秒 × 86400 秒 × 45 字节 = 0.9 GB/天。

**一天 1.3 GB 的纯元数据**,**保留 30 天就是 40 GB——这只是「记账」,还没抓包。**

**算全抓包会是多少**:
  1 Gbps 满载一天 = 10.8 TB。
**差三个数量级**,**这就是为什么分析靠流记录、取证才靠抓包。**

「1.3 GB 与 10.8 TB」这一组对比是这一节的核心: 它解释了为什么「安全分析」和「取证」是两套完全不同的系统——前者可以长期在线,后者只能短期滚动。

注意 1:1000 这个采样比:它意味着「流量分析永远看不全」, 所以按流记录做容量规划可以,但按流记录查「某个具体连接有没有发生过」是不准的。 这一点很多人会误用。

最后那句「基线的价值高于阈值」值得抄下来:固定阈值在业务增长后必然失效(要么一直报、 要么一直不报),而基线是「自己跟自己比」,天然跟着业务走。

30 秒实验

  1. 查一下你单位的出口设备有没有开 NetFlow,采样比是多少。
  2. 算一下:你的链路一天全抓包要多少 TB?
  3. 想一想:如果只保留 7 天流记录,能查到一个月前的异常吗?

常见误区

  1. 以为开了监视就等于有了取证能力。流记录查不到具体报文内容。
  2. 以为采样不影响结论。查具体连接时采样会漏,只能看趋势。
  3. 以为阈值告警够用。业务一增长,固定阈值必然失效。
自测三问(点开对答案) 1. 流记录、计数器、日志三者分别回答什么问题? —— 谁在跟谁说话、链路健不健康、发生了什么事件。 2. 为什么全抓包不能长期保留? —— 1 Gbps 满载一天就有 10.8 TB,比流记录多四个数量级。 3. 为什么基线比固定阈值更有用? —— 异常的定义是「与平时不一样」,基线跟着业务走,固定阈值会失效。

下一节:真的把包存成文件——分组的捕获。

相关笔记