このチュートリアルでは、次のバージョンの Sophos Firewall で Cloudflare WAN(旧 Magic WAN)を使う方法を説明します。
-
検証済みの Sophos フォームファクター:
- Sophos Firewall XGS および XG シリーズハードウェア
- VMware 上の Sophos Firewall 仮想アプライアンス
-
検証済みの Sophos ソフトウェアバージョン:
- SFOS Version 19.0 MR2-Build 472
- SFOS Version 19.5.1 MR1-Build 278
Cloudflare WAN へは、Generic Routing Encapsulation(GRE)または IPsec トンネル で接続できます。
次の手順では、Sophos Firewall デバイスで IPsec 接続を設定します。明示していない設定は、既定値のままで構いません。
- System > Profiles を開きます。
- IPsec profiles で Add を選びます。
- General settings グループで、次の設定にします。
- Name: わかりやすい名前を付けます。
- Key exchange: IKEv2
- Authentication mode: Main mode
- Phase 1 グループで、次の設定にします。
- DH group (key group): 20
- Encryption: AES256
- Authentication: SHA2 256
- Phase 2 グループで、次を選びます。
- PFS group (DH group): 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 を開きます。
- IPsec で Add を選びます。
- General settings グループで、次の設定にします。
- Name: サイト間 VPN にわかりやすい名前を付けます。
- Connection type: Tunnel interface
- Gateway type: Initiate the connection
- Encryption グループで、次の設定にします。
- Authentication type: Preshared key
- Gateway settings で、次の設定にします。
- Gateway address: アカウントに割り当てられた Cloudflare anycast IP アドレスのいずれかを入力します。Leased IPs ↗ で確認できます。
- Local ID type: Cloudflare が提供する IKE ID を追加します。
注: この画像のラベルは、以前の製品名のままの場合があります。
IPsec トンネルを設定すると、IPsec 接続一覧に Active ステータスで表示されます。
注: この画像のラベルは、以前の製品名のままの場合があります。
Cloudflare WAN で トンネルエンドポイントを設定する ときに必要な /31 サブネットから、インターフェースアドレスを使う必要があります。
- Configure > Network を開きます。
- Interfaces で、手順 2 で作成した IPsec トンネルに対応するインターフェースを選びます。
- インターフェースを編集し、トンネルエンドポイントを設定する ときに必要な
/31サブネットからアドレスを割り当てます。完了すると、次のようになります。
注: この画像のラベルは、以前の製品名のままの場合があります。
- Protect > Rules and policies を開きます。
- Firewall rules で、自社の基準とセキュリティポリシーに沿ったファイアウォールルールを作成し、Sophos と Cloudflare WAN のあいだでトラフィックが流れるようにします。
Sophos Firewall で IPsec Anti-Replay を無効にします。アンチリプレイ設定を変更すると IPsec サービスが再起動し、すべての IPsec トンネルでトンネルフラップが発生します。すべての 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 knowledge base ↗ を参照してください。
GRE トンネル経由でトラフィックを転送する GRE または SD-WAN ルートの追加方法は、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 で 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 上にカスタムゲートウェイを追加します。Gateway IP アドレスにはピア IP アドレス(先に選んだ
/31サブネットから)を使い、Health check は無効にします。
- Cloudflare へトラフィックを転送するルートに、必要なネットワークとサービスを含む SD-WAN ルートを追加します。
Cloudflare ダッシュボードは、Cloudflare からオリジンネットワークへトラフィックをルーティングする、アカウント上のすべての anycast トンネルの健全性を監視します。詳細は ダッシュボードでトンネルの健全性を確認する を参照してください。
- Cloudflare からの ICMP プローブパケットは、anycast 送信元 IP を持つ ICMP request である必要があります。次の例では、ターゲット例として
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 を開きます。ICMP プローブトラフィック用に Cloudflare が提供する 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 プラットフォームに到達しているかを確認します。