跳转到内容
搜索文档

Sophos Firewall

最后更新 查看 MarkdownAgent 设置

本教程向您介绍如何将 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。

IPsec 连接

以下说明介绍了如何在您的 Sophos Firewall 设备上设置 IPsec 连接。未明确说明的设置可以保留其默认值。

1. 添加 IPsec 配置文件

  1. 转到 System(系统) > Profiles(配置文件)
  2. IPsec profiles(IPsec 配置文件) 中,选择 Add(添加)
  3. General settings(常规设置) 组中,确保具有以下设置:
    • Name(名称):为您的配置文件指定一个描述性的名称。
    • Key exchange(密钥交换)IKEv2
    • Authentication mode(身份验证模式)Main mode(主模式)
  4. Phase 1(阶段 1) 组中,确保具有以下设置:
    • DH group (key group)(DH 组(密钥组))20
    • Encryption(加密)AES256
    • Authentication(身份验证)SHA2 256
  5. Phase 2(阶段 2) 组中,选择以下内容:
    • PFS group (DH group)(PFS 组(DH 组))Same as phase-1
    • Key life(密钥生存期)28800
    • Encryption(加密)AES256
    • Authentication(身份验证)SHA2 256
  6. 启用 Dead Peer Detection(失效对等体检测)
  7. When peer unreachable(对等体不可达时) 中,选择 Re-initiate
  8. 选择 Save(保存)

2. 创建 IPsec 连接隧道

下一步是在您的 Sophos Firewall 设备上配置站点到站点 IPsec VPN 连接。

  1. 转到 Configure(配置) > Site-to-site VPN(站点到站点 VPN)
  2. IPsec 中,选择 Add(添加)
  3. General settings(常规设置) 组中,确保具有以下设置:
    • Name(名称):为您的站点到站点 VPN 指定一个描述性的名称。
    • Connection type(连接类型)Tunnel interface
    • Gateway type(网关类型)Initiate the connection
  4. Encryption(加密) 组中,确保具有以下设置:
    • Authentication type(身份验证类型)Preshared key(预共享密钥)
  5. Gateway settings(网关设置) 中,确保具有以下设置:
    • Gateway address(网关地址):输入分配给您的账户的 Cloudflare anycast IP 地址之一,可在 租用的 IP 中获取。
    • Local ID type(本地 ID 类型):添加 Cloudflare 提供的 IKE ID
配置 IPsec 隧道。

注意:此图片中的标签可能反映了以前的产品名称。

设置好 IPsec 隧道后,它将显示在 IPsec 连接列表中,且状态为 Active(活动)

IPsec 隧道应显示在 IPsec 连接列表中。

注意:此图片中的标签可能反映了以前的产品名称。

3. 分配 XFRM 接口地址

您必须 use an interface address from the /31 subnet required to configure tunnel endpoints on Cloudflare WAN. 您必须使用在 Cloudflare WAN 上配置隧道端点所需的 /31 子网中的接口地址。

  1. 转到 Configure(配置) > Network(网络)
  2. Interfaces(接口) 中,选择与您在步骤 2中创建的 IPsec 隧道相对应的接口。
  3. 编辑接口以分配配置隧道端点所需的 /31 子网中的地址。完成后,它应该类似于以下内容:
配置 XFRM 接口。

注意:此图片中的标签可能反映了以前的产品名称。

4. 添加防火墙规则

  1. 转到 Protect(保护) > Rules and policies(规则和策略)
  2. Firewall rules(防火墙规则) 中,根据您公司的标准和安全策略创建防火墙规则,允许流量在 Sophos 和 Cloudflare WAN 之间流动。
根据您公司的标准和安全策略创建防火墙规则

5. 禁用 IPsec 防重放

在您的 Sophos Firewall 上禁用 IPsec 防重放(Anti-Replay)。更改防重放设置会重新启动 IPsec service,这会导致所有 IPsec 隧道发生隧道抖动(tunnel-flap)。这还将全局禁用所有 VPN 连接的 IPsec 防重放保护。请相应地规划这些更改。

以下是在 SFOS 版本 19 和 SFOS 版本 19.5 上实现此操作的说明:

SFOS 19.0 MR2-Build 472 或 19.5 MR1-Build278 或更高版本:

  1. 登录 CLI。

  2. 输入 4 选择 Device console(设备控制台),然后输入以下命令:

    set vpn ipsec-performance anti-replay window-size 0
    访问 CLI 以禁用防重放

旧版 SFOS 版本

联系 Sophos 支持。

GRE 连接

1. 在 SFOS 和 Cloudflare 之间配置 GRE 隧道

首先在 SFOS 和 Cloudflare anycast IP 地址之间配置 GRE 隧道。

  1. 登录 CLI。

  2. 输入 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>
    访问 CLI 以配置 GRE 隧道

    有关更多详细信息,请参阅 Sophos Firewall 知识库

2. 添加 GRE 或 SD-WAN 路由以通过 GRE 隧道重定向流量

有关如何添加 GRE 或 SD-WAN 路由以通过 GRE 隧道重定向流量的信息,请参阅Sophos Firewall 上的流量重定向机制

3. 添加 LAN/DMZ 到 VPN 的防火墙规则

根据您公司的标准和安全策略创建防火墙规则,允许流量在 Sophos 和 Cloudflare WAN 之间流动。此防火墙规则应包括所需的网络和服务。

  1. 转到 Protect(保护) > Rules and policies(规则和策略)
  2. Firewall rules(防火墙规则) 中,选择 IPv4 > Add firewall rule(添加防火墙规则)
根据您公司的标准和安全策略创建防火墙规则

Sophos Firewall 上的流量重定向机制

要重定向流量,您可以添加静态路由或 SD-WAN 路由。

IPsec

静态路由

转到 Configure(配置) > Routing(路由) > Static routes(静态路由) 以添加基于 XFRM 接口的路由。当您设置基于 IPsec 的隧道接口时(例如上述 Cloudflare_MWAN 示例),该接口将自动创建。

转到静态路由以添加基于 XFRM 接口的路由

注意:此图片中的标签可能反映了以前的产品名称。

SD-WAN 路由

  1. 转到 Configure(配置) > Routing(路由) > Gateways(网关) 以在 XFRM 接口上创建自定义网关。当您设置基于 IPsec 的隧道接口时(例如上述 Cloudflare_MWAN 示例),该接口将自动创建。
转到 Gateways 以添加基于 XFRM 接口的路由

注意:此图片中的标签可能反映了以前的产品名称。

  1. Configure(配置) > Routing(路由) > SD-WAN routes(SD-WAN 路由) 中,选择 Add(添加) 以在路由中添加所需的网络和服务,从而将流量重定向到 Cloudflare。为您的连接输入一个描述性的名称,并在 Incoming interface(入站接口)Source networks(源网络) 中输入您为 IPsec 隧道设置的 IP 地址。不要忘记选择正确的 Primary gateway(主网关) 选项。
转到 SD-WAN 以在路由中添加所需的网络和服务。

GRE

根据您的路由要求,添加 GRE 路由、SD-WAN 路由或两者都添加。

GRE 路由

在 CLI 上添加路由。

  1. 登录 CLI。
  2. 输入 4 选择 Device console(设备控制台),然后输入以下命令以创建隧道:
system gre route add net <IP_ADDRESS> tunnelname <TUNNEL_NAME>
在 CLI 上添加路由。

SD-WAN 路由

  1. 在 GRE 上添加一个自定义网关,将对端 IP 地址(来自您之前选择的 /31 子网)作为 Gateway IP 地址,并禁用 Health check(运行状况检查)
在 GRE 上添加自定义网关。
  1. 添加 SD-WAN 路由,在路由中包含所需的网络和服务,以将流量重定向到 Cloudflare。
添加 SD-WAN 路由。

在 Cloudflare 仪表板上验证隧道状态

Cloudflare 仪表板可监控您账户上将流量从 Cloudflare 路由到源站网络的所有 anycast 隧道的健康状况。有关更多信息,请参阅在仪表板中检查隧道健康状况

配置 Cloudflare 健康检查

  1. 来自 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"
  }
}'
  1. 转到 Configure(配置) > Network(网络) > Interfaces(接口) > Add alias(添加别名)。添加 Cloudflare 为 ICMP 探测流量提供的 IP 地址。这是为了防止 Sophos 防火墙将其作为欺骗数据包丢弃。这与用于创建 VPN 的 IP 不同。这是仅用于探测流量的特殊 IP 地址。
添加 Cloudflare 提供的 IP 地址,以防止探测被防火墙丢弃。
  1. 来自 SFOS 的 ICMP 答复应通过接收到探测数据包的相同隧道返回。您将需要创建一条额外的 SD-WAN 策略路由。
配置 SD-WAN 路由,以便 ICMP 答复通过相同的隧道返回到 Cloudflare。

数据包流将如下所示:

tcpdump -nn proto 1
tcpdump: 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

在 Sophos Firewall 仪表板上验证隧道状态

IPsec

当隧道工作正常时,其 Status(状态) 将显示为绿色。

如果隧道工作正常,它将显示为绿色状态。

注意:此图片中的标签可能反映了以前的产品名称。

相应的 XFRM 接口也将显示 Connected(已连接) 状态。

XFRM 接口也将显示已连接状态。

注意:此图片中的标签可能反映了以前的产品名称。

GRE

访问 CLI 并输入 system gre tunnel show 以检查 GRE 隧道的状态。当隧道工作正常时,其状态将显示为 Enabled(已启用)

工作正常时,GRE 隧道将显示 Enabled 状态。工作正常时,GRE 隧道将显示 Enabled 状态。

故障排除

如果隧道在两端都显示已连接状态,但未建立连接:

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

这篇文档对您有帮助吗?