



























玩了个新服务 实战了解了下基本的web防护原理
该防火墙直接绑定在网关分配的独立公网 IP(Staple IP)上。流量在进入反向代理(Reverse Proxy)、GRE 或 FOU 隧道回源之前,就会先经过边缘节点的清洗。这意味着可以直接在网络的最前线阻断恶意 TCP/UDP 探测,从而为后端的自托管应用提供基础的抗 DDoS 能力,降低源站的 CPU 和带宽负载。
在基于状态检测(Stateful Inspection,类似于 Linux netfilter/conntrack 机制)的防火墙中,“Connection State(连接状态)”用于控制防火墙如何处理 TCP 会话在其生命周期中的不同阶段。它不仅检查源 IP 和端口,还会根据 TCP 三次握手和数据传输的上下文来追踪网络流量。
针对图中TCP 协议下的各个组合选项,其具体含义如下:
理解菜单中的组合选项前,需要先明确三个底层基础状态:
NEW(新建):代表试图建立新连接的第一个数据包(在 TCP 中通常是带有 SYN 标志的包)。
ESTABLISHED(已建立):代表连接已经建立,且防火墙已经看到该连接的双向通信数据包(即握手已完成,或者已经有返回流量的后续包)。
RELATED(相关联):代表该数据包试图建立新连接,但它与一个现有的 ESTABLISHED 核心连接在逻辑上明确相关联(例如:由于连接超时/端口不可达产生的 ICMP 错误消息,或者 FTP 等分离控制/数据通道的辅助连接)。
–TCP防火墙的选项细解
UDP就是无状态的,只有端口和地址设置
根据这些基础状态,面板中的选项为您提供了不同维度的流量控制方案:
ANY(任何状态)
含义:完全无视连接追踪(Connection Tracking)上下文。只要协议、IP 和端口匹配,无论它是建连的第一个包、中间传输包还是未知的乱序包,都一律执行匹配后的动作。
适用场景:配置纯粹的无状态(Stateless)过滤时使用,或者用于非常基础、不区分会话阶段的粗粒度访问控制。
NEW
含义:严格只匹配用于发起全新 TCP 连接的请求包。
适用场景:常用于速率限制(例如限制每秒的新建连接数以防范 SYN Flood 攻击),或者用于记录谁在尝试发起连接。通常不会单独用作业务放行规则,因为后续的数据包会被阻断。
ESTABLISHED
含义:仅匹配已经成功建立连接的后续通信数据包。
适用场景:经典的出站(Outbound)或回包策略限制。例如,您的服务器只允许被动响应外部的主动请求,或者严格限制仅允许已经建立安全验证的通道进行数据传输。
NEW + ESTABLISHED
含义:同时匹配新建连接请求和连接建立后的所有正常数据传输包。
适用场景:这是发布常规对外服务(如 Web 服务器、API 接口)时最常用的标准放行规则。它既允许客户端顺利完成 TCP 握手,也允许后续正常的双向数据通信。
ESTABLISHED + RELATED
含义:仅允许已建立连接的数据包,以及为了维持这些连接而产生的相关网络控制/报错包。完全拒绝任何外部主动发起的新连接请求(拒绝 NEW)。
适用场景:常用于配置服务器的入站(Inbound)白名单。例如,服务器主动向外拉取数据时,允许目标服务器返回数据(ESTABLISHED)并允许网络路径上的 MTU 发现报错(RELATED),但彻底屏蔽任何外部对该服务器的主动扫描和建连探测。
NEW + ESTABLISHED + RELATED
含义:允许发起新连接、维持现有连接,并且允许相关的附属控制流量。这基本上包含了网络中所有正常的协议交互状态,仅排除了 INVALID(无效或无法识别状态的异常包)。
适用场景:提供最宽容且完整的状态放行。适用于复杂的网络服务部署(例如反向代理节点与源站之间的深度交互),确保不仅握手和数据传输畅通,底层网络机制(如 PMTU 发现)也不会被防火墙意外丢弃。
| 维度 | AWS 网络环境 | Gateway Sentry 边缘防护环境 |
| — | — | — |
| 控制边界 | 纵向(公网入站)与横向(内网实例间跳转)全方位原生控制。 | 聚焦于纵向最外层(全球 Anycast 边缘至 Staple IP)的清洗与阻断。 |
| 规则联动 | 极强。安全组可跨实例、跨层级直接引用对方的 ID 形成动态白名单。 | 边缘防火墙独立作用于入口。内部组件的精细横向隔离交由源站本地或私有网格处理。 |
| 抗攻击定位 | 依赖后端的云内安全策略,大规模 L4 清洗通常需要额外配合 AWS Shield。 | 天生具备强大的网络层 DDoS、SYN 泛洪以及端口扫描的边缘净化能力,保护源站带宽。 |
NEW + ESTABLISHED)以及它与主流云厂商架构的映射关系做一个全面总结。以一个经典的三层模型为例 由前端反代 后端 数据库组成 可设置如下: (内网其他vps用wg连接,需要对每个内网vps的公网ip做udp入站和出站规则,图中设了2个x2组)
| 优先级 | 协议 | 端口 | 源 IP (Source) | 连接状态 (State) | 动作 | 目的说明 |
| — | — | — | — | — | — | — |
| 1 | TCP | 80, 443 | ANY | NEW + ESTABLISHED | Accept | 允许标准 HTTP/HTTPS 访客流量。 |
| 2 | UDP | 443 | ANY | NEW + ESTABLISHED | Accept | 允许现代 HTTP/3 (QUIC) 访客流量。 |
| 3 | ICMP | ANY | ANY | ESTABLISHED + RELATED | Accept | 允许 PMTUD 网络分片报错,防止大文件传输黑洞。 |
| 4 | UDP | 51820等 | 特定机房 CIDR | ANY | Accept | (可选)放行受信任节点的内部 Mesh VPN 流量。 |
DropNEW + ESTABLISHED?在您的规则 01 和 02 中,针对 80 和 443 端口,选择了 NEW + ESTABLISHED 而不是无状态的 ANY。这不仅仅是为了让网站能访问,更是一个严格的过滤漏斗:
NEW(放行敲门砖): 允许互联网上的真实访客向您的服务器发送 TCP SYN 包,发起全新的连接握手。
ESTABLISHED(维持通行证): 一旦握手成功,防火墙会在内存中记录这个连接。后续成千上万个用于传输网页数据的数据包,只要属于这个已建立的会话,都会被自动放行(包括回包出站)。
被悄悄拦截的恶意流量:
如果黑客伪造了一个带有 ACK 或 RST 标志的数据包(假装是已经建立连接的包),试图试探您的系统内部状态。
因为防火墙的内存里没有这个连接的“握手记录”(即没有经过 NEW 阶段),防火墙会直接判定它为非法包并丢弃。这就彻底阻断了许多高级的 TCP 状态伪造攻击。
| 您的 Gateway Sentry 配置 | 对应的 AWS 概念 | 防御逻辑与优势 |
| — | — | — |
| **TCP 勾选 NEW + ESTABLISHED** | AWS 安全组 (Security Group) | 有状态防御 (Stateful)。只看大门,不管出门。只要允许请求入站,服务器的回应数据流会自动穿透防火墙出站。配置极其精简,且能防范 TCP 状态攻击。 |
| UDP 勾选 ANY (显示 Stateless) | AWS 网络 ACL (Network ACL) | 无状态防御 (Stateless)。机械式过滤,没有记忆。所以在规则 06 补了一条 OUT UDP 的出站规则,这非常符合无状态防火墙必须“有进有出”的严谨配置逻辑。 |
通过边缘节点的 Anycast 架构配合您设置的这张状态检测防火墙规则表,您的服务器目前具备以下强大的抗击打能力:
全端口恶意扫描 (Port Scanning): 黑客用 Nmap 等工具扫描您的 22 (SSH)、3306 (数据库)、6379 (Redis) 等高危端口。防御点: 触发底部 DROP 默认策略,扫描器只会收到超时(Timeout),无法判断您的服务器上运行了什么服务。
TCP 畸形包与状态耗尽攻击: 黑客发送大量无头无尾的伪造包(如 FIN Flood、XMAS 扫描)。防御点: 因为不符合 NEW + ESTABLISHED 的严格状态机,直接在边缘被拦截。
针对非业务端口的 DDoS 泛洪攻击: 动辄几十 Gbps 的垃圾流量试图淹没您的服务器。防御点: 只要不是发往 80/443 或 51820 的,全被边缘节点的 Anycast 黑洞吸收,源站的 CPU 和带宽毫无波动。
TCP SYN 反射攻击: 攻击者伪造您的 IP 向外网发送请求,导致海量外网服务器向您发送 SYN-ACK 回包。防御点: 您的防火墙没有主动向外发过 NEW 请求,这些凭空飞来的 SYN-ACK 包不属于任何 ESTABLISHED 会话,直接被丢弃。
总结: 防火墙规则表非常干净、严谨,完美践行了“最小特权原则”。它就像是一面坚固的单向防爆玻璃,把网络层 99% 的粗暴攻击都挡在了千里之外。
云原生视角的对比:AWS VPC 文档 (安全组 vs. 网络 ACL)
如果从云服务提供商的角度来看,理解这个页面的最佳参考是 AWS 关于 VPC 网络安全的说明,特别是对于“有状态”和“无状态”的对比。
推荐文档:Amazon VPC User Guide: Security groups vs. Network ACLs
AWS 的文档用非常易懂的语言解释了业务场景。
安全组(Security Groups) 是有状态的(Stateful),等同于您截图面板中勾选了 ESTABLISHED 的效果:如果您允许了入站请求,响应流量会自动被允许流出,无需额外配置出站规则。
网络 ACL (Network ACLs) 是无状态的(Stateless),等同于您面板中的 ANY 状态:它不记录连接状态,入站和出站必须分别写两条规则才能通。阅读这份对比文档能让您瞬间明白状态控制的优势。
Red Hat (RHEL) / Netfilter 官方文档
如果您想知道这些术语在系统底层是如何工作的,Red Hat 的网络安全文档是最权威的解释。这个边缘防火墙本质上就是基于类似架构构建的。
推荐文档:Red Hat Enterprise Linux Network Security Guide - Connection Tracking
在 RHEL 文档库搜索 “iptables connection states” 或 “netfilter conntrack”)
从内核级别精准解释什么是 SYN 标志触发了 NEW 状态,TCP 握手完成如何转变为 ESTABLISHED。它能帮您理解防火墙在内存中是如何维护这张“连接状态表(State Table)”的。
另外:
这套 L4(网络/传输层)防火墙的局限性在于它“不看包裹里的信件内容”。
Web 应用层攻击(L7): 如果攻击者通过正常的 443 端口发起 SQL 注入、跨站脚本(XSS)或试图利用 Caddy 后端 Web 程序的漏洞,L4 防火墙会放行(因为 TCP 状态是合法的)。这需要网关的 Web Protection (WAF) 或 Caddy 的安全策略来拦截。
基于合法 IP 的 CC 攻击: 攻击者组织僵尸网络,通过正常的 TCP 三次握手后,疯狂请求您网站上极度消耗 CPU 的搜索接口。状态完全合法,L4 防火墙无法区分,只能依靠应用层的速率限制(Rate Limiting)。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。