什么情况需要状态防火墙?

什么情况需要状态防火墙?

我只知道有两种防火墙。无状态和有状态。很难确定我必须使用哪种防火墙。目前我必须在运行服务的同一台机器中运行防火墙,基本上我想要无状态的,因为它的资源消耗较少。但是如果它不足以保证安全,那就毫无意义了。我将在几个 TCP/UDP 端口上运行 HTTP、SSH、NFS(仅通过 SSH)和一些定制的服务器。我应该使用有状态防火墙吗?


(编辑)也许这个问题可以假设为“我应该使用状态规则吗?”。

答案1

如今,这个问题的答案非常简单:所有适当的防火墙现在都是有状态的。

答案2

有状态规则极大地简化了防火墙策略的设计并提高了安全性。HTTP 和 SSH 适用于使用单个端口的 TCP 会话。任何有状态防火墙都可以处理这种情况,您需要做的就是编写一条规则以允许打开会话的原始数据包,并编写另一条规则以允许与已知状态匹配的回复数据包。对于 iptables ,后者看起来像

iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT

(假设防火墙在服务器上运行,因此链接 INPUT)。

更复杂的协议(例如 ftp)可能需要多个会话,而防火墙中的状态引擎需要能够跟踪这些单独的会话以匹配数据包。通常,有状态防火墙支持大多数流行协议,但它们不太可能支持自定义协议。自定义协议的问题不在于它们使用唯一的 tcp 或 udp 端口​​,而在于它们可能使用动态创建和拆除的多个连接。防火墙可以动态打开和关闭 ftp 数据通道的“漏洞”,因为它可以跟踪和解释流经 fto 命令通道的命令。如果协议是专有的和唯一的,防火墙将无法解释它,为了使其正常工作,您必须编写无状态规则并尝试使它们尽可能严格地遵守协议。

但是如果协议使用单个 TCP 连接,那么状态规则就可以正常工作。

答案3

如今您可能需要无状态防火墙的唯一情况是为了获得更好的速度性能。

相关内容