tcp syn检查

我有一个最近configuration的WatchGuard Firebox。 所有的政策看起来都很好,所有适当的服务似乎正常工作。

但是,一个或两个(看似)随机的节点阻止向一个1:1的NAT主机发送HTTP请求,而其他人都做得很好。

防火墙日志告诉我, tcp syn checking failed ,这些请求使用目标端口64作为设备后面的客户端,而端口50则使用外部客户端。 我终于find了这个选项,并在“全局设置”(Global Settings)下禁用了它(这会在我的嘴里留下不好的味道),而这似乎已经成功了。

尽pipe如此,这个文档对于这个话题来说是非常薄弱的​​。 任何人都可以向我解释究竟tcp syn检查是做什么的,而且我可以在我的策略中对它做适当的补偿,而不是全局禁用它(当然,假设有比全局规则更优雅的解决scheme)?

从Watchguard:

TCP SYN检查

全局TCP SYN检查设置为:启用TCP SYN检查此function确保在Firebox允许数据连接之前完成TCP三次握手。

所以我想象一下,看门狗没有看到通常的syn / syn ack / ack是因为什么原因而发生的,并且导致连接中断。

我为WatchGuard工作。 SYN检查只是为了确保在允许其他stream量之前发生TCP握手。 即使这是closures的,我们仍然确保TCP握手,我们确实正确完成,并没有影响我们的TCP SYN Flood防护。 closures是安全的。

由于WatchGuard上的TCP超时比服务器/客户端连接上的超时时间短,所以会经常触发。 当服务器/客户端再次通话时,WatchGuard认为连接已closures,并且喜欢再次看到TCP握手。