我最近配置了 WatchGuard Firebox。所有策略看起来都很好,所有相关服务似乎都正常工作。
但是,有一两个(看似)随机的节点不断被阻止向 1:1 NAT 主机发出 HTTP 请求,而其他节点都可以正常发出请求。
防火墙日志告诉我tcp syn checking failed
,这些请求使用目标端口 64 来接收设备后面的客户端,使用端口 50 来接收外部的客户端。我终于找到了这个选项,并在“全局设置”下禁用了它(这让我很不爽),这似乎起了作用。
不过,关于这个主题的文档非常少。有人能向我解释一下 tcp syn 检查到底是什么吗,以及我如何在我的策略中适当地考虑它,而不是全局禁用它(当然,假设有是比全局规则更优雅的解决方案?
答案1
来自守望者:
TCP SYN 检查
全局 TCP SYN 检查设置为:启用 TCP SYN 检查 此功能可确保在 Firebox 允许数据连接之前完成 TCP 三次握手。
因此,我想,无论出于什么原因,守卫都没有看到通常的 syn/syn ack/ack 发生,并终止了连接。
答案2
我在 WatchGuard 工作。SYN 检查只是为了确保在允许其他流量之前已进行 TCP 握手。即使关闭此功能,我们仍可确保观察到的 TCP 握手正确完成,并且不会影响我们的 TCP SYN 洪水保护。关闭此功能是安全的。
它通常会因为 WatchGuard 上的 TCP 超时比服务器/客户端连接上的超时短而触发。当服务器/客户端再次通信时,WatchGuard 会认为连接已关闭,并希望再次看到 TCP 握手。