数据包过滤器的工作原理是什么?
数据包过滤的实现成本低廉。需要理解的是,数据包过滤设备无法提供与应用程序或代理防火墙相同级别的安全性。除了最简单的 IP 网络外,所有网络都由 IP 子网组成,并包含路由器。每个路由器都是一个潜在的过滤点。由于路由器的价值已被吸收,因此无需为数据包过滤支付更多成本。
在安全要求简单的场景下,数据包过滤非常适用。某些组织的内部(专用)网络没有进行高度细分。隔离组织的一个元素与另一个元素,并不需要高度复杂的防火墙。但是,谨慎的做法是支持某种方式来保护生产网络免受实验室或实验网络的侵害。数据包过滤设备是支持隔离一个子网与另一个子网的非常合适的措施。
一些数据包过滤器以相同的常见模式工作。它在 TCP/IP 协议栈的网络层和传输层工作,每个数据包在进入协议栈时都会被检查。网络和传输报头会被仔细检查以下数据:
协议(IP 报头,网络层) - 在 IP 报头中,字节 9(字节计数从零开始)识别数据包的协议。一些过滤器设备能够区分 TCP、UDP 和 ICMP。
源地址(IP 报头,网络层) - 源地址是生成数据包的主机的 32 位 IP 地址。
目标地址(IP 报头,网络层) - 目标地址是数据包目标主机的 32 位 IP 地址。
源端口(TCP 或 UDP 报头,传输层) - TCP 或 UDP 互联网链路的每一端都绑定到一个端口。TCP 端口与 UDP 端口是独立且特定的。低于 1024 的端口是保留端口,它们具有明确定义的用途。
高于 1024(包括 1024)的端口称为短暂端口。它们可以由供应商选择使用。有关“众所周知”端口的列表,请参阅 RFP1700。源端口是一个伪随机定义的短暂端口号。因此,根据源端口进行过滤并不是很有帮助。
目标端口(TCP 或 UDP 报头,传输层) - 目标端口号表示数据包发送到的端口。目标主机上的每个服务都监听一个端口。一些著名的端口及其用途包括:20/TCP 和 21/TCP - FTP 连接/数据,23/TCP - telnet,80/TCP - http,以及 53/TCP - DNS 区域传输。
连接状态(TCP 报头,传输层) - 连接状态指示数据包是否是网络会话的第一个数据包。如果这是会话中的第一个数据包,则 TCP 报头中的 ACK 位将设置为“错误”或 0。通过拒绝或丢弃 ACK 位设置为“错误”或 0 的一些数据包,可以轻松地阻止主机建立连接。