防火墙
复习
- TLS 握手与 HTTPS:安全通道保护通信内容
- 端口:端口标识主机上的服务
- NAT:在内外网地址之间转换
TL;DR
- 防火墙在网络边界,按规则允许或拒绝通信
- 规则常基于地址、端口和连接状态
- 它是一道边界防线,而不是万能药
- 与纵深防御配合,才更有效
正文
网络把内外连在一起,方便了通信,也方便了入侵。总得有人在门口守着,决定“谁能进、谁能出”。这个守门人就是防火墙(firewall)。
按规则放行或拦截
防火墙站在网络的边界(比如你的电脑与外部网络之间、公司内网与公网之间),对每一个经过的数据包进行判断,决定放行还是拦下。
判断的依据,通常是几样东西的组合:
- 源地址、目的地址
- 源端口、目的端口
- 使用的协议(TCP 还是 UDP)
比如“只允许外部访问本机的 443 端口”,就是一条很典型的规则。
还要看“状态”
只按地址和端口过滤,还不够聪明。因为通信是双向的:你发出请求后,对方的回复也得能回来。
所以现代防火墙大多有状态检测能力:它记住“这条连接是我这边主动发起的”,于是允许它的返回包通过;而对于那些凭空而来、不属于任何已建立连接的包,则一律拦下。这既放行了正常通信,又挡住了不请自来的连接。
它不是万能的
但一定要清楚防火墙的边界,它挡不住这些:
- 内部威胁:来自内网的可疑行为,它未必管得住
- 加密隧道内的攻击:流量一旦被加密,边界很难看清内容
- 应用自身的漏洞:哪怕端口放行了,应用里的缺陷仍可能被利用
所以,防火墙只是安全体系里的一道防线。真正稳妥的做法,是纵深防御:边界有防火墙,主机有防护,应用有校验,数据有加密,任何一道失守,还有下一道兜底。
前面讲安全时说过的那句话,在这里同样成立:没有绝对的安全,只有不断提高攻击的成本。
思考题 1
为什么防火墙常要结合“连接状态”,而不只按地址和端口过滤?
思考题 2
为什么说防火墙不是万能的安全方案?
小结
知识点
- 防火墙在边界按规则允许或拒绝通信
- 规则常基于地址、端口与协议
- 状态检测可放行已建立连接的返回流量
- 它只是纵深防御中的一道防线
参考资料
- Wikipedia(zh):防火墙:按规则控制网络通信的边界设备
- Wikipedia(zh):状态防火墙:跟踪连接状态以过滤流量
思考题答案(仅供参考)
思考题 1
因为通信是双向的,只按地址和端口过滤难以区分“我们主动发起连接的返回包”和“外部凭空发来的连接”。结合连接状态,就能放行前者、拦截后者,既保证正常通信又更安全。
思考题 2
因为它挡不住内部威胁、加密隧道内的攻击,也无法弥补应用自身的漏洞。它只守住了边界这一道,面对多种多样的威胁,还需要主机防护、应用校验、数据加密等多层配合,也就是纵深防御。
协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
封面图
设计师 | 南国微雪