如果您无法导出当前的边界防火墙规则,请考虑识别位于您的 Magic Transit 前缀中的系统类别或用户组。例如:
对于上面的每个项目,请考虑它们在允许的互联网访问方面的要求。例如,仅允许合法流量所需的内容,并阻止其余内容。
有关列表的更多信息,请参阅使用规则列表。
您还可以从账户主页的 Configurations(配置) > Lists(列表) 在仪表板中创建列表。
终端设备不充当服务器,这意味着:
- 它们接收发往其临时端口的流量(来自标准公共端口,例如
80或443)——在现代操作系统中,临时端口通常在32768以上(在较旧的 Windows Server 2003 和 Windows XP 中,在1025以上)。 - 连接是向外流出而不是向内流入的,因此不会接收 TCP SYN 或 ACK 数据包。
- 它们通常只需要客户端 TCP 和 UDP,没有入口 ICMP 的要求。
例如,您可以为通用客户端 TCP 和客户端 UDP 的组合创建一个列表,允许外部 ping 或 traceroute,并针对所有其他协议和流量创建一个兜底 (catchall) 规则。
创建一个名为 Endpoints 的列表,并指定要在规则中引用的终端或用户 IP 地址的列表。
规则 ID:1
描述:终端(客户端)将接收发往临时端口的流量。阻止入站仅含 SYN 的流量(意味着允许 SYN-ACK)。
匹配表达式:ip.proto eq "tcp" and ip.dst in $endpoints and tcp.dstport in {32768..60999} and not (tcp.flags.syn and not tcp.flags.ack)
操作:Allow (允许)
规则 ID:2
描述:终端(客户端)将接收发往临时端口的流量。
匹配表达式:ip.proto eq "udp" and ip.dst in $endpoints and udp.dstport in {32768..60999}
操作:Allow (允许)
规则 ID:3
描述:允许具有以下 ICMP 类型的 ICMP 流量发送到 $endpoints 列表中的目标 IP 地址:
- 类型 0 = Echo Reply(回显应答)
- 类型 3 = Destination Unreachable(目标不可达)
- 类型 11 = Time Exceeded(超时)
匹配表达式:ip.proto eq "icmp" and ip.dst in $endpoints and (icmp.type eq 0 or icmp.type eq 3 or icmp.type eq 11)
操作:Allow (允许)
规则 ID:10
描述:否则拒绝发送到 $endpoints 列表中 IP 的所有流量。
匹配表达式:ip.dst in $endpoints
操作:Block (阻止)
遵循以下针对您的 MT 前缀上内部路由器或防火墙接口 IP 地址的最佳实践。
- 使用您的 IP 地址创建一个 IP 列表,例如 Internal routers。
- 如果不需要,请阻止 ICMP。
- 如果设备通过互联网建立了 GRE/IPsec 隧道,请根据需要允许 GRE/ESP。
规则 ID:1 描述:允许受限制的入站 ICMP 流量,包括:
- 类型 0 - Echo Reply(回显应答)
- 类型 3 - Destination Unreachable(目标不可达)
- 类型 8 - Echo(回显请求)
- 类型 11 - Time Exceeded(超时)
匹配表达式:ip.proto eq "icmp" and ip.dst in $internal_routers and ( (icmp.type eq 0 or icmp.type eq 3) or (icmp.type eq 11) or (icmp.type eq 8) )
操作:Allow (允许)
规则 ID:2
描述:阻止发往这些 IP 地址的所有其他流量。
匹配表达式:ip.dst in $internal_routers
操作:Block (阻止)
Web 服务器需要仔细考虑必需的流量流。除了 Web 服务器充当客户端的流量流之外,还需要允许针对 web 服务器 功能的流量。
在可能的情况下,允许 Web 服务器所需的目地 IP 地址和端口,并阻止其他所有流量。除了 Web 流量的端口之外,可能还需要其他服务(例如 NTP/DNS)。
以下是建议规则的示例,但您应该仅根据您的具体需求进行更改。例如,如果您未通过 Cloudflare 第 7 层保护进行代理,并且您预期有来自网络的流量发往您的 Web 服务器:
- 创建一个 IP 列表,例如 web servers,以列出您的 Web 服务器的 IP 地址。
- 允许来自互联网的 Web 服务器入站流量。
- 允许来自互联网的基础设施或客户端流量流,例如 DNS 和 NTP。
- 阻止发往 Web 服务器 IP 地址的所有其他流量。
规则 ID:1
描述:允许来自互联网的仅带 SYN 或仅带 ACK 标记(不含 SYN/ACK 标记)的入站 HTTP/S 流量。
匹配表达式:ip.proto eq "tcp" and tcp.srcport in {32768..60999} and ip.dst in $web_servers and tcp.dstport in {80 443} and not (tcp.flags.syn and tcp.flags.ack)
操作:Allow (允许)
规则 ID:2
描述:允许发往 Web 服务器的 DNS 和 NTP 的 UDP 答复。
匹配表达式:ip.dst in $web_servers and ip.proto eq "udp" and udp.srcport in {53 123} and udp.dstport in {1024..65535}
操作:如果需要则允许,但在遭受攻击时禁用 (Allow if necessary but Disable if under attack)
规则 ID:3
描述:兜底规则,用于阻止发往 Web 服务器 IP 地址的所有其他流量。
匹配表达式:ip.dst in $web_servers
操作:Block (阻止)
或者,如果您拥有 Cloudflare 第 7 层保护,则可以将 Cloudflare 公共 IP 地址允许作为发往 HTTP/HTTPS 入站流量目标 IP 地址的源 IP 地址。此建议有效地替代了上面示例中的规则 1。
有关 Cloudflare IP 地址的列表,请参阅 Cloudflare IP 地址 ↗。
描述:允许来自 Cloudflare 的带有 SYN 或 ACK 的入站 HTTP/S 流量。
匹配表达式:ip.proto eq "tcp" and ip.dst in $web_servers and tcp.dstport in {80 443} and not (tcp.flags.syn and tcp.flags.ack) and ip.src in {173.245.48.0/20 103.21.244.0/22 103.22.200.0/22 103.31.4.0/22 141.101.64.0/18 108.162.192.0/18 190.93.240.0/20 188.114.96.0/20 197.234.240.0/22 198.41.128.0/17 162.158.0.0/15 104.16.0.0/13 104.24.0.0/14 172.64.0.0/13 131.0.72.0/22}
操作:Allow (允许)
根据服务器是预期接收来自通用互联网还是仅来自特定用户的流量,限制源 IP。
- 如果可能,应用基于源 IP 或源端口的规则。
- 将允许的目标端口限制为仅需要的端口。
- 阻止发往关闭端口的传入 SYN 请求。
IP 目标地址 非 Web 服务器 并且 TCP 目标端口在 <有效端口> 范围内 — 允许 (Permit)IP 目标地址 非 Web 服务器 并且 UDP 目标端口在 <有效端口> 范围内 — 允许 (Permit)IP 目标地址 Web 服务器 — 阻止 (Block)