本教程向您介绍如何将 Cloudflare WAN(前称 Magic WAN)与以下版本的 Sophos Firewall 结合使用:
-
测试的 Sophos 硬件规格:
- Sophos Firewall XGS 和 XG 系列硬件
- VMware 上的 Sophos Firewall 虚拟设备
-
测试的 Sophos 软件版本:
- SFOS 版本 19.0 MR2-Build 472
- SFOS 版本 19.5.1 MR1-Build 278
您可以通过 通用路由封装 (GRE) 或 IPsec 隧道 连接到 Cloudflare WAN。
以下说明介绍了如何在您的 Sophos Firewall 设备上设置 IPsec 连接。未明确说明的设置可以保留其默认值。
- 转到 System(系统) > Profiles(配置文件)。
- 在 IPsec profiles(IPsec 配置文件) 中,选择 Add(添加)。
- 在 General settings(常规设置) 组中,确保具有以下设置:
- Name(名称):为您的配置文件指定一个描述性的名称。
- Key exchange(密钥交换):IKEv2
- Authentication mode(身份验证模式):Main mode(主模式)
- 在 Phase 1(阶段 1) 组中,确保具有以下设置:
- DH group (key group)(DH 组(密钥组)):20
- Encryption(加密):AES256
- Authentication(身份验证):SHA2 256
- 在 Phase 2(阶段 2) 组中,选择以下内容:
- PFS group (DH group)(PFS 组(DH 组)):Same as phase-1
- Key life(密钥生存期):28800
- Encryption(加密):AES256
- Authentication(身份验证):SHA2 256
- 启用 Dead Peer Detection(失效对等体检测)。
- 在 When peer unreachable(对等体不可达时) 中,选择 Re-initiate。
- 选择 Save(保存)。
下一步是在您的 Sophos Firewall 设备上配置站点到站点 IPsec VPN 连接。
- 转到 Configure(配置) > Site-to-site VPN(站点到站点 VPN)。
- 在 IPsec 中,选择 Add(添加)。
- 在 General settings(常规设置) 组中,确保具有以下设置:
- Name(名称):为您的站点到站点 VPN 指定一个描述性的名称。
- Connection type(连接类型):Tunnel interface
- Gateway type(网关类型):Initiate the connection
- 在 Encryption(加密) 组中,确保具有以下设置:
- Authentication type(身份验证类型):Preshared key(预共享密钥)
- 在 Gateway settings(网关设置) 中,确保具有以下设置:
注意:此图片中的标签可能反映了以前的产品名称。
设置好 IPsec 隧道后,它将显示在 IPsec 连接列表中,且状态为 Active(活动)。
注意:此图片中的标签可能反映了以前的产品名称。
您必须 use an interface address from the /31 subnet required to configure tunnel endpoints on Cloudflare WAN.
您必须使用在 Cloudflare WAN 上配置隧道端点所需的 /31 子网中的接口地址。
- 转到 Configure(配置) > Network(网络)。
- 在 Interfaces(接口) 中,选择与您在步骤 2中创建的 IPsec 隧道相对应的接口。
- 编辑接口以分配配置隧道端点所需的
/31子网中的地址。完成后,它应该类似于以下内容:
注意:此图片中的标签可能反映了以前的产品名称。
- 转到 Protect(保护) > Rules and policies(规则和策略)。
- 在 Firewall rules(防火墙规则) 中,根据您公司的标准和安全策略创建防火墙规则,允许流量在 Sophos 和 Cloudflare WAN 之间流动。
在您的 Sophos Firewall 上禁用 IPsec 防重放(Anti-Replay)。更改防重放设置会重新启动 IPsec service,这会导致所有 IPsec 隧道发生隧道抖动(tunnel-flap)。这还将全局禁用所有 VPN 连接的 IPsec 防重放保护。请相应地规划这些更改。
以下是在 SFOS 版本 19 和 SFOS 版本 19.5 上实现此操作的说明:
-
登录 CLI。
-
输入 4 选择 Device console(设备控制台),然后输入以下命令:
set vpn ipsec-performance anti-replay window-size 0
联系 Sophos 支持。
首先在 SFOS 和 Cloudflare anycast IP 地址之间配置 GRE 隧道。
-
登录 CLI。
-
输入 4 选择 Device console(设备控制台),然后输入以下命令:
system gre tunnel add name <NAME_OF_YOUR_GRE_TUNNEL> local-gw <WAN_PORT> remote-gw <REMOTE_GATEWAY_IP_ADDRESS> local-ip <LOCAL_IP_ADDRESS> remote-ip <REMOTE_IP_ADDRESS>
有关更多详细信息,请参阅 Sophos Firewall 知识库 ↗。
有关如何添加 GRE 或 SD-WAN 路由以通过 GRE 隧道重定向流量的信息,请参阅Sophos Firewall 上的流量重定向机制。
根据您公司的标准和安全策略创建防火墙规则,允许流量在 Sophos 和 Cloudflare WAN 之间流动。此防火墙规则应包括所需的网络和服务。
- 转到 Protect(保护) > Rules and policies(规则和策略)。
- 在 Firewall rules(防火墙规则) 中,选择 IPv4 > Add firewall rule(添加防火墙规则)。
要重定向流量,您可以添加静态路由或 SD-WAN 路由。
转到 Configure(配置) > Routing(路由) > Static routes(静态路由) 以添加基于 XFRM 接口的路由。当您设置基于 IPsec 的隧道接口时(例如上述 Cloudflare_MWAN 示例),该接口将自动创建。
注意:此图片中的标签可能反映了以前的产品名称。
- 转到 Configure(配置) > Routing(路由) > Gateways(网关) 以在 XFRM 接口上创建自定义网关。当您设置基于 IPsec 的隧道接口时(例如上述 Cloudflare_MWAN 示例),该接口将自动创建。
注意:此图片中的标签可能反映了以前的产品名称。
- 在 Configure(配置) > Routing(路由) > SD-WAN routes(SD-WAN 路由) 中,选择 Add(添加) 以在路由中添加所需的网络和服务,从而将流量重定向到 Cloudflare。为您的连接输入一个描述性的名称,并在 Incoming interface(入站接口) 和 Source networks(源网络) 中输入您为 IPsec 隧道设置的 IP 地址。不要忘记选择正确的 Primary gateway(主网关) 选项。
根据您的路由要求,添加 GRE 路由、SD-WAN 路由或两者都添加。
在 CLI 上添加路由。
- 登录 CLI。
- 输入 4 选择 Device console(设备控制台),然后输入以下命令以创建隧道:
system gre route add net <IP_ADDRESS> tunnelname <TUNNEL_NAME>
- 在 GRE 上添加一个自定义网关,将对端 IP 地址(来自您之前选择的
/31子网)作为 Gateway IP 地址,并禁用 Health check(运行状况检查)。
- 添加 SD-WAN 路由,在路由中包含所需的网络和服务,以将流量重定向到 Cloudflare。
Cloudflare 仪表板可监控您账户上将流量从 Cloudflare 路由到源站网络的所有 anycast 隧道的健康状况。有关更多信息,请参阅在仪表板中检查隧道健康状况。
- 来自 Cloudflare 的 ICMP 探测数据包必须是 ICMP 请求(request)类型,并带有 anycast 源 IP。在以下示例中,我们使用
172.64.240.252作为目标示例:
curl --request PUT \
https://api.cloudflare.com/client/v4/accounts/{account_id}/magic/ipsec_tunnels/{tunnel_id} \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>" \
--header "Content-Type: application/json" \
--data '{
"health_check": {
"enabled": true,
"target": "172.64.240.252",
"type": "request",
"rate": "mid"
}
}'- 转到 Configure(配置) > Network(网络) > Interfaces(接口) > Add alias(添加别名)。添加 Cloudflare 为 ICMP 探测流量提供的 IP 地址。这是为了防止 Sophos 防火墙将其作为欺骗数据包丢弃。这与用于创建 VPN 的 IP 不同。这是仅用于探测流量的特殊 IP 地址。
- 来自 SFOS 的 ICMP 答复应通过接收到探测数据包的相同隧道返回。您将需要创建一条额外的 SD-WAN 策略路由。
数据包流将如下所示:
tcpdump -nn proto 1tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked v1), capture size 262144 bytes
13:09:55.500453 xfrm1, IN: IP 172.70.51.31 > 172.64.240.252: ICMP echo request, id 33504, seq 0, length 64
13:09:55.500480 xfrm1, OUT: IP 172.64.240.252 > 172.70.51.31: ICMP echo reply, id 33504, seq 0, length 64
13:09:55.504669 xfrm1, IN: IP 172.71.29.66 > 172.64.240.252: ICMP echo request, id 60828, seq 0, length 64
13:09:55.504695 xfrm1, OUT: IP 172.64.240.252 > 172.71.29.66: ICMP echo reply, id 60828, seq 0, length 64当隧道工作正常时,其 Status(状态) 将显示为绿色。
注意:此图片中的标签可能反映了以前的产品名称。
相应的 XFRM 接口也将显示 Connected(已连接) 状态。
注意:此图片中的标签可能反映了以前的产品名称。
访问 CLI 并输入 system gre tunnel show 以检查 GRE 隧道的状态。当隧道工作正常时,其状态将显示为 Enabled(已启用)。

如果隧道在两端都显示已连接状态,但未建立连接:
- 检查 IPsec 配置文件配置是否正确。
- 确保相应的隧道接口已启动。
- 确保在 SFOS 上正确设置了路由配置和路由优先级。
- 确保在 Cloudflare 上添加了静态回程路由。
- 必须在 SFOS 中添加针对特定区域和主机或服务的防火墙规则。GRE 和 IPsec 属于 VPN 区域。
- 执行
tcpdump以检查数据包是否按预期通过 VPN 或 GRE 隧道。 - 在 Cloudflare 上执行数据包捕获,以查看流量是否到达 Cloudflare 平台。