惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
G
Google Developers Blog
M
MIT News - Artificial intelligence
Vercel News
Vercel News
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
GbyAI
GbyAI
B
Blog RSS Feed
Blog — PlanetScale
Blog — PlanetScale
Microsoft Security Blog
Microsoft Security Blog
V
Visual Studio Blog
Stack Overflow Blog
Stack Overflow Blog
雷峰网
雷峰网
The Cloudflare Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
F
Fortinet All Blogs
L
LangChain Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
A
About on SuperTechFans
T
The Blog of Author Tim Ferriss
B
Blog
J
Java Code Geeks
Hugging Face - Blog
Hugging Face - Blog
I
InfoQ
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com

LINUX DO - 最新话题

谷歌云盘下载700g数据集,求方法 OpenAI推出了100美元的Pro订阅后,plus的Codex 5小时限额大幅缩水 之前买的super grok居然还没掉 关于CPA认证文件周限 佬们,默认CDK的要求是什么等级啊? 最新版本的微信群聊机器人方案 有没有人知道如何free号没有封,那么是否可以循环使用,因为我看主要是周限 L站改版了?吓我一跳,我以为我浏览器崩了 淘宝这种宽带可信吗,500兆移动宽带月费8元到2099年 docker内部应用访问宿主机mysql和redis时被拒绝connection refuse Erp全栈想转行做Ai有什么推荐的吗 boost有bug 佬们,有没有靠谱点的 Plus 购买渠道 大妈,狗妈用的 lg 服务有源头开源项目吗? 有人有能过验证码打码的嘛 上次帖里好像发过通过大模型来打码的 gpt plus 封号似乎也太快了点,一天就给封号了 按流量/token收费的国产官方AI推荐 我算是知道了为什么Oracle总是ABC了 佬友们帮我分析一下 ChatGPT Team账号只有一个人使用和4个席位邀请满了使用的总额度是一样的吗? gpt-free 10个带rt CPA反代claude是默认1m吗? 我终于敢说我做出来windows上tmux的替代了,目标windows/全平台最强的终端Ai编程工具 claude pro升级max,除了原来的$20,好像还能再领一次$100 关于AI agent的知识框架 独乐乐不如众乐乐,分享一下我的的AI对话程序 佬们自建网站支付问题是怎么解决的 怎么能让gpt模仿claude风格输出 codex free已经死了,下一个会是plus或者team吗 请问chatgpt pro里的fast模式,速度快了,降智吗
记录个高级防火墙的设置和aws/cf对应的对比及原理
tof · 2026-06-23 · via LINUX DO - 最新话题

玩了个新服务 实战了解了下基本的web防护原理

防火墙菜单的核心功能

L3/L4 边缘协议过滤

该防火墙直接绑定在网关分配的独立公网 IP(Staple IP)上。流量在进入反向代理(Reverse Proxy)、GRE 或 FOU 隧道回源之前,就会先经过边缘节点的清洗。这意味着可以直接在网络的最前线阻断恶意 TCP/UDP 探测,从而为后端的自托管应用提供基础的抗 DDoS 能力,降低源站的 CPU 和带宽负载。

反向代理(Reverse Proxy):由边缘节点代理转发 UDP 负载。【该功能默认没开启,应该需要开通其他功能】

隧道模式(GRE / FOU Tunnel):将原始 UDP 包封装在隧道中发送至 Target IP,这对于需要保留客户端真实 IP 的 UDP 业务(如游戏或 Mesh VPN 节点 arbitration)非常有用。【这是默认的模式】

原理

在基于状态检测(Stateful Inspection,类似于 Linux netfilter/conntrack 机制)的防火墙中,“Connection State(连接状态)”用于控制防火墙如何处理 TCP 会话在其生命周期中的不同阶段。它不仅检查源 IP 和端口,还会根据 TCP 三次握手和数据传输的上下文来追踪网络流量。

针对图中TCP 协议下的各个组合选项,其具体含义如下:

核心状态基石

理解菜单中的组合选项前,需要先明确三个底层基础状态:

  • NEW(新建):代表试图建立新连接的第一个数据包(在 TCP 中通常是带有 SYN 标志的包)。

  • ESTABLISHED(已建立):代表连接已经建立,且防火墙已经看到该连接的双向通信数据包(即握手已完成,或者已经有返回流量的后续包)。

  • RELATED(相关联):代表该数据包试图建立新连接,但它与一个现有的 ESTABLISHED 核心连接在逻辑上明确相关联(例如:由于连接超时/端口不可达产生的 ICMP 错误消息,或者 FTP 等分离控制/数据通道的辅助连接)。

–TCP防火墙的选项细解

image

UDP就是无状态的,只有端口和地址设置

image

面板组合选项解析

根据这些基础状态,面板中的选项为您提供了不同维度的流量控制方案:

  • 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同类设置的对比

| 维度 | AWS 网络环境 | Gateway Sentry 边缘防护环境 |

| — | — | — |

| 控制边界 | 纵向(公网入站)与横向(内网实例间跳转)全方位原生控制。 | 聚焦于纵向最外层(全球 Anycast 边缘至 Staple IP)的清洗与阻断。 |

| 规则联动 | 极强。安全组可跨实例、跨层级直接引用对方的 ID 形成动态白名单。 | 边缘防火墙独立作用于入口。内部组件的精细横向隔离交由源站本地或私有网格处理。 |

| 抗攻击定位 | 依赖后端的云内安全策略,大规模 L4 清洗通常需要额外配合 AWS Shield。 | 天生具备强大的网络层 DDoS、SYN 泛洪以及端口扫描的边缘净化能力,保护源站带宽。 |

对当前的设置(特别是 NEW + ESTABLISHED)以及它与主流云厂商架构的映射关系做一个全面总结。


以一个经典的三层模型为例 由前端反代 后端 数据库组成 可设置如下: (内网其他vps用wg连接,需要对每个内网vps的公网ip做udp入站和出站规则,图中设了2个x2组)

image

| 优先级 | 协议 | 端口 | 源 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 流量。 |

最后兜底的:全局默认策略依然是 Drop

最后加入一条自己的ssh端口 tcp NEW+ESTABLISHED allow

多个内网节点与4相同

一、 为什么 TCP 规则必须选择 NEW + ESTABLISHED

在您的规则 01 和 02 中,针对 80 和 443 端口,选择了 NEW + ESTABLISHED 而不是无状态的 ANY。这不仅仅是为了让网站能访问,更是一个严格的过滤漏斗

  1. NEW(放行敲门砖): 允许互联网上的真实访客向您的服务器发送 TCP SYN 包,发起全新的连接握手。

  2. ESTABLISHED(维持通行证): 一旦握手成功,防火墙会在内存中记录这个连接。后续成千上万个用于传输网页数据的数据包,只要属于这个已建立的会话,都会被自动放行(包括回包出站)。

  3. 被悄悄拦截的恶意流量:

  • 如果黑客伪造了一个带有 ACKRST 标志的数据包(假装是已经建立连接的包),试图试探您的系统内部状态。

  • 因为防火墙的内存里没有这个连接的“握手记录”(即没有经过 NEW 阶段),防火墙会直接判定它为非法包并丢弃。这就彻底阻断了许多高级的 TCP 状态伪造攻击。


二、 对比映射:AWS 的安全组 vs. 网关的连接状态

AWS的ACL只用于ECS等产品上,价格昂贵

面板上的配置与AWS 网络安全的核心概念。在底层是完全一一对应的:

| 您的 Gateway Sentry 配置 | 对应的 AWS 概念 | 防御逻辑与优势 |

| — | — | — |

| **TCP 勾选 NEW + ESTABLISHED** | AWS 安全组 (Security Group) | 有状态防御 (Stateful)。只看大门,不管出门。只要允许请求入站,服务器的回应数据流会自动穿透防火墙出站。配置极其精简,且能防范 TCP 状态攻击。 |

| UDP 勾选 ANY (显示 Stateless) | AWS 网络 ACL (Network ACL) | 无状态防御 (Stateless)。机械式过滤,没有记忆。所以在规则 06 补了一条 OUT UDP 的出站规则,这非常符合无状态防火墙必须“有进有出”的严谨配置逻辑。 |


三、 这套配置构建的防御能力清单

通过边缘节点的 Anycast 架构配合您设置的这张状态检测防火墙规则表,您的服务器目前具备以下强大的抗击打能力:

:shield: 能够完美防御的攻击(在边缘节点被直接丢弃,源站毫发无损)

  1. 全端口恶意扫描 (Port Scanning): 黑客用 Nmap 等工具扫描您的 22 (SSH)、3306 (数据库)、6379 (Redis) 等高危端口。防御点: 触发底部 DROP 默认策略,扫描器只会收到超时(Timeout),无法判断您的服务器上运行了什么服务。

  2. TCP 畸形包与状态耗尽攻击: 黑客发送大量无头无尾的伪造包(如 FIN Flood、XMAS 扫描)。防御点: 因为不符合 NEW + ESTABLISHED 的严格状态机,直接在边缘被拦截。

  3. 针对非业务端口的 DDoS 泛洪攻击: 动辄几十 Gbps 的垃圾流量试图淹没您的服务器。防御点: 只要不是发往 80/443 或 51820 的,全被边缘节点的 Anycast 黑洞吸收,源站的 CPU 和带宽毫无波动。

  4. 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)”的。

另外:

:warning: 无法防御的攻击(需要其他层面的安全机制配合)

这套 L4(网络/传输层)防火墙的局限性在于它“不看包裹里的信件内容”。

  1. Web 应用层攻击(L7): 如果攻击者通过正常的 443 端口发起 SQL 注入、跨站脚本(XSS)或试图利用 Caddy 后端 Web 程序的漏洞,L4 防火墙会放行(因为 TCP 状态是合法的)。这需要网关的 Web Protection (WAF) 或 Caddy 的安全策略来拦截。

  2. 基于合法 IP 的 CC 攻击: 攻击者组织僵尸网络,通过正常的 TCP 三次握手后,疯狂请求您网站上极度消耗 CPU 的搜索接口。状态完全合法,L4 防火墙无法区分,只能依靠应用层的速率限制(Rate Limiting)。