Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

防火墙

复习

  • TLS 握手与 HTTPS:安全通道保护通信内容
  • 端口:端口标识主机上的服务
  • NAT:在内外网地址之间转换

TL;DR

  • 防火墙在网络边界,按规则允许或拒绝通信
  • 规则常基于地址、端口和连接状态
  • 它是一道边界防线,而不是万能药
  • 与纵深防御配合,才更有效

正文

  网络把内外连在一起,方便了通信,也方便了入侵。总得有人在门口守着,决定“谁能进、谁能出”。这个守门人就是防火墙(firewall)。

按规则放行或拦截

  防火墙站在网络的边界(比如你的电脑与外部网络之间、公司内网与公网之间),对每一个经过的数据包进行判断,决定放行还是拦下

  判断的依据,通常是几样东西的组合:

  • 源地址、目的地址
  • 源端口、目的端口
  • 使用的协议(TCP 还是 UDP)

  比如“只允许外部访问本机的 443 端口”,就是一条很典型的规则。

还要看“状态”

  只按地址和端口过滤,还不够聪明。因为通信是双向的:你发出请求后,对方的回复也得能回来。

  所以现代防火墙大多有状态检测能力:它记住“这条连接是我这边主动发起的”,于是允许它的返回包通过;而对于那些凭空而来、不属于任何已建立连接的包,则一律拦下。这既放行了正常通信,又挡住了不请自来的连接。

它不是万能的

  但一定要清楚防火墙的边界,它挡不住这些:

  • 内部威胁:来自内网的可疑行为,它未必管得住
  • 加密隧道内的攻击:流量一旦被加密,边界很难看清内容
  • 应用自身的漏洞:哪怕端口放行了,应用里的缺陷仍可能被利用

  所以,防火墙只是安全体系里的一道防线。真正稳妥的做法,是纵深防御:边界有防火墙,主机有防护,应用有校验,数据有加密,任何一道失守,还有下一道兜底。

  前面讲安全时说过的那句话,在这里同样成立:没有绝对的安全,只有不断提高攻击的成本。

思考题 1

  为什么防火墙常要结合“连接状态”,而不只按地址和端口过滤?

思考题 2

  为什么说防火墙不是万能的安全方案?

小结

知识点

  • 防火墙在边界按规则允许或拒绝通信
  • 规则常基于地址、端口与协议
  • 状态检测可放行已建立连接的返回流量
  • 它只是纵深防御中的一道防线

参考资料

  1. Wikipedia(zh):防火墙:按规则控制网络通信的边界设备
  2. Wikipedia(zh):状态防火墙:跟踪连接状态以过滤流量

思考题答案(仅供参考)

思考题 1

  因为通信是双向的,只按地址和端口过滤难以区分“我们主动发起连接的返回包”和“外部凭空发来的连接”。结合连接状态,就能放行前者、拦截后者,既保证正常通信又更安全。

思考题 2

  因为它挡不住内部威胁、加密隧道内的攻击,也无法弥补应用自身的漏洞。它只守住了边界这一道,面对多种多样的威胁,还需要主机防护、应用校验、数据加密等多层配合,也就是纵深防御。

协议

  本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

封面图

设计师 | 南国微雪