如您所知,默认情况下,数据包从较高安全级别的接口流向较低安全级别的接口。如果您希望在两个接口之间建立可操作的连接,您的 ASA 必须检查流量,以便它不会丢弃从内部发起的连接。
例如,如果我想要 ping 工作,我必须检查 ICMP。
这里的问题是:如果我有一台计算机在外面侦听任意端口,并且我想从内部连接到该计算机(显然是从操作系统随机生成的端口),该怎么办?
由于安全级别,数据包可以从内部到达外部,但由于 ASA 不检查流量,它会丢弃从外部到内部的返回数据包吗?
如您所知,默认情况下,数据包从较高安全级别的接口流向较低安全级别的接口。如果您希望在两个接口之间建立可操作的连接,您的 ASA 必须检查流量,以便它不会丢弃从内部发起的连接。
例如,如果我想要 ping 工作,我必须检查 ICMP。
这里的问题是:如果我有一台计算机在外面侦听任意端口,并且我想从内部连接到该计算机(显然是从操作系统随机生成的端口),该怎么办?
由于安全级别,数据包可以从内部到达外部,但由于 ASA 不检查流量,它会丢弃从外部到内部的返回数据包吗?
它不会丢弃数据包,因为 ASA 是有状态设备。
首先,当我说ASA 是有状态设备时,您必须理解我的意思。这意味着如果防火墙允许出站方向的流量,它会自动允许相关的返回流量返回入站——即使入站 ACL 或安全级别会阻止所有入站流量。
对于 ICMP,默认情况下,ICMP 是无状态的。也就是说,如果您想允许 ICMP 数据包离开您的网络,您必须明确允许它(通过 ACL 或 Security-Level)。如果您打算让 ICMP 数据包返回您的网络,您还必须明确允许它。
但是,您可以通过启用 ICMP 检查来覆盖该默认行为。在 ASA检查 ICMP 使 ASA 认为 ICMP 有状态。这意味着,如果它允许 ICMP Echo Request离开您的网络,它将自动允许 ICMP Echo Response返回您的网络。