Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

Sophos Firewall

最終更新 Markdown で表示Agent セットアップ

このチュートリアルでは、次のバージョンの 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 トンネル で接続できます。

IPsec 接続

次の手順で、Sophos Firewall デバイスに IPsec 接続を設定します。明示していない設定は、デフォルトのままで構いません。

1. IPsec プロファイルを追加する

  1. System > Profiles を開きます。
  2. IPsec profilesAdd を選択します。
  3. General settings グループで、次の設定にします。
    • Name: わかりやすい名前を付けます。
    • Key exchange: IKEv2
    • Authentication mode: Main mode
  4. Phase 1 グループで、次の設定にします。
    • DH group (key group): 20
    • Encryption: AES256
    • Authentication: SHA2 256
  5. Phase 2 グループで、次を選びます。
    • PFS group (DH group): Same as phase-1
    • Key life: 28800
    • Encryption: AES256
    • Authentication: SHA2 256
  6. Dead Peer Detection を有効にします。
  7. When peer unreachableRe-initiate を選びます。
  8. Save を選択します。

2. IPsec 接続トンネルを作成する

次に、Sophos Firewall デバイスでサイト間 IPsec VPN 接続を設定します。

  1. Configure > Site-to-site VPN を開きます。
  2. IPsecAdd を選択します。
  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 アドレスの 1 つを入力します。Leased IPs で確認できます。
    • Local ID type: Cloudflare が提供する IKE ID を追加します。
IPsec トンネルを設定します。

注: この画像のラベルは、以前の製品名のままの場合があります。

IPsec トンネルを設定すると、IPsec 接続一覧に Active の状態で表示されます。

IPsec トンネルは IPsec 接続一覧に表示されます。

注: この画像のラベルは、以前の製品名のままの場合があります。

3. XFRM インターフェイスアドレスを割り当てる

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 サービスが再起動し、すべての IPsec トンネルでトンネルフラップが発生します。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 トンネル経由でトラフィックを向ける GRE または SD-WAN ルートを追加する

GRE トンネル経由でトラフィックを向ける GRE または SD-WAN ルートの追加方法は、Sophos Firewall のトラフィックリダイレクトの仕組み を参照してください。

3. LAN / DMZ から VPN 向けのファイアウォールルールを追加する

自社の基準とセキュリティポリシーに沿ったファイアウォールルールを作成し、Sophos と Cloudflare WAN のあいだでトラフィックが流れるようにします。このファイアウォールルールには、必要なネットワークとサービスを含めます。

  1. Protect > Rules and policies を開きます。
  2. Firewall rulesIPv4 > 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 routesAdd を選び、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 上にカスタムゲートウェイを追加します。Gateway IP アドレスにはピア IP アドレス(先ほど選んだ /31 サブネットから)を使い、Health check を無効にします。
GRE 上にカスタムゲートウェイを追加します。
  1. Cloudflare へトラフィックを向ける SD-WAN ルートを追加し、必要なネットワークとサービスを含めます。
SD-WAN ルートを追加します。

Cloudflare ダッシュボードでトンネル状態を確認する

Cloudflare ダッシュボードは、Cloudflare からオリジンネットワークへトラフィックをルーティングする、アカウント上のすべての anycast トンネルの健全性を監視します。詳細は ダッシュボードでトンネルの健全性を確認する を参照してください。

Cloudflare のヘルスチェックを設定する

  1. 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"
  }
}'
  1. Configure > Network > Interfaces > Add alias を開きます。ICMP プローントラフィック用に Cloudflare が提供する IP アドレスを追加します。Sophos ファイアウォールがスプーフパケットとして破棄しないようにするためです。VPN 作成に使う IP とは異なります。プローブ専用の特別な IP アドレスです。
Cloudflare が提供する IP アドレスを追加し、ファイアウォールがプローブを破棄しないようにします。
  1. SFOS からの ICMP 応答は、プローブパケットを受信した同じトンネル経由で返す必要があります。追加の SD-WAN ポリシールートを作成します。
ICMP 応答が同じトンネル経由で Cloudflare に戻るよう、SD-WAN ルートを設定します。

パケットフローは次のようになります。

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 インターフェイスも Connected の状態になります。

注: この画像のラベルは、以前の製品名のままの場合があります。

GRE

CLI にアクセスし、system gre tunnel show と入力して GRE トンネルの状態を確認します。トンネルが動作していると、状態は Enabled になります。

GRE トンネルが動作していると、状態は Enabled になります。 GRE トンネルが動作していると、状態は Enabled になります。

トラブルシューティング

トンネルが両端で接続済みに見えても確立しない場合は、次を確認します。

  • IPsec プロファイルの設定が正しいか確認します。
  • 対応するトンネルインターフェイスが up であることを確認します。
  • SFOS のルーティング設定とルート優先度が正しいことを確認します。
  • Cloudflare 側に静的なバックルートが追加されていることを確認します。
  • 特定ゾーンとホストまたはサービス向けのファイアウォールルールを SFOS に追加する必要があります。GRE と IPsec は VPN ゾーンに属します。
  • tcpdump を実行し、パケットが想定どおり VPN または GRE トンネルを通っているか確認します。
  • Cloudflare でパケットキャプチャを実行し、トラフィックが Cloudflare プラットフォームに届いているか確認します。

役に立ちましたか?