Sophos Firewall
このチュートリアルでは、以下のバージョンのSophos FirewallでMagic WANを使用する方法を示します。
-
テストされたSophosフォームファクタ:
- Sophos Firewall XGSおよびXGシリーズハードウェア
- VMware上のSophos Firewall仮想アプライアンス
-
テストされたSophosソフトウェアバージョン:
- SFOSバージョン19.0 MR2-Build 472
- SFOSバージョン19.5.1 MR1-Build 278
Generic Routing Encapsulation (GRE)またはIPsecトンネルを介してMagic WANに接続できます。
以下の手順では、Sophos FirewallデバイスでIPsec接続を設定する方法を示します。明示的に言及されていない設定は、デフォルト値のままで構いません。
- System > Profilesに移動します。
- IPsec profilesでAddを選択します。
- General settingsグループで、以下の設定を確認します:
- Name: プロファイルに説明的な名前を付けます。
- Key exchange: IKEv2
- Authentication mode: Main mode
- Phase 1グループで、以下の設定を確認します:
- DH group (key group): 14(DH2048)
- Encryption: AES256
- Authentication: SHA2 256
- Phase 2グループで、以下を選択します:
- PFS group (DH group): Same as phase-1
- Key life: 3600
- 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アドレスを入力します。
- Local ID type: Cloudflareから提供されたIKE IDを追加します。

IPsecトンネルを設定すると、IPsec接続リストにActiveステータスで表示されます。

Magic WANでトンネルエンドポイントを構成するために必要な/31サブネットからインターフェースアドレスを使用する必要があります。
- Configure > Networkに移動します。
- Interfacesで、ステップ2で作成したIPsecトンネルに対応するインターフェースを選択します。
- インターフェースを編集して、トンネルエンドポイントを構成するために必要な
/31サブネットからアドレスを割り当てます。完了すると、次のようになります:

- Protect > Rules and policiesに移動します。
- Firewall rulesで、SophosとMagic WANの間でトラフィックが流れることを許可する、会社の基準とセキュリティポリシーに基づいたファイアウォールルールを作成します。

Sophos FirewallでIPsecアンチリプレイを無効にする必要があります。アンチリプレイ設定を変更すると、IPsecサービスが再起動され、すべてのIPsecトンネルでトンネルフラップが発生します。これにより、すべてのVPN接続に対するIPsecアンチリプレイ保護がグローバルに無効になります。これらの変更を計画的に行ってください。
以下は、SFOSバージョン19およびSFOSバージョン19.5でこれを達成する方法の手順です:
-
CLIにサインインします。
-
4を入力してDevice consoleを選択し、次のコマンドを入力します:
Terminal window set vpn ipsec-performance-setting anti-replay window-size 0
Sophosサポートに連絡してください。
SFOSとCloudflareのAnycast IPアドレスの間にGREトンネルを構成することから始めます。
-
CLIにサインインします。
-
4を入力してDevice consoleを選択し、次のコマンドを入力します:
Terminal window 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トンネルを介してトラフィックをリダイレクトするためのGREまたはSD-WANルートを追加する方法の詳細は、次のセクション(Sophos Firewallのトラフィックリダイレクションメカニズム)にあります。
SophosとMagic 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にカスタムゲートウェイを追加し、ピアIPアドレス(前に選択した
/31サブネットから)をゲートウェイIPアドレスとして設定し、Health checkを無効にします。

- Cloudflareにトラフィックをリダイレクトするための必要なネットワークとサービスをルートに追加します。

The Cloudflare dashboard monitors the health of all anycast tunnels on your account that route traffic from Cloudflare to your origin network.
ダッシュボードは、トンネルの健康状態を、トラフィックが到達する可能性のある各Cloudflareロケーションから測定したビューを示します。 If the tunnels are healthy on your side, you will see the majority of servers reporting an up status. It is normal for a subset of these locations to show tunnel status as degraded or unhealthy, since the Internet is not homogeneous and intermediary path issues between Cloudflare and your network can cause interruptions for specific paths.
Not all data centers will be relevant to you at all times. You can refer to the Average ingress traffic (last hour) column to understand if a given data center is receiving traffic for your network, and if its health status is relevant to you.
To check for anycast tunnel health:
- Go to the Cloudflare dashboard ↗ and select your account.
- Go to Magic WAN > Tunnel health.
- In Cloudflare colos, you can choose one or more Cloudflare data centers to filter out the traffic that shows up in your anycast tunnels. For example, if you chose the Lisbon data center, your anycast tunnels would only show connections to that data center.
- Below, you have a list of all your anycast tunnels, as well as their current health status. Find the tunnel you wish to inspect and select the arrow (>) before it to open its details.
- The details pane shows the connection status between different Cloudflare servers and your tunnel. Select Traceroute for details in one of the Cloudflare servers shown to check for issues between Cloudflare and your origin network.
- CloudflareからのICMPプローブパケットは、AnycastソースIPを持つICMPリクエストタイプでなければなりません。以下の例では、ターゲット例として
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 decodelistening 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 6413: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 6413: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プラットフォームに到達しているかどうかを確認します。