Cloudflare Spectrum での保護

公開する Minecraft のサーバーは、DDoS 攻撃を受けると、参加する方が接続できなくなります。Cloudflare Spectrum は、サーバーの前に Cloudflare を置いて、攻撃を受け止めるサービスです。
この資料では、プランごとに使える範囲、設定の手順、守れることと守れないことを説明します。

料金は 2026 年 10 月 27 日、仕様は 2026 年 10 月 25 日に、Cloudflare の公式のサイトとドキュメントで確認したものです (税別)。Cloudflare のドキュメントには、Minecraft 専用の設定の手順のページはなく、プランごとの対応の表と、制限事項のページに Minecraft の記載があります。

Cloudflare Spectrum の仕組み

Cloudflare Spectrum は、TCP と UDP の通信を中継する Cloudflare のサービスです。参加する方は Cloudflare に接続し、Cloudflare がサーバーに通信を渡します。

攻撃は Cloudflare で受け止め、サーバーの IP アドレスは見せない。
参加する方play.example.jp に接続
攻撃大量の通信
Cloudflare Spectrum世界中のデータセンターで受け、正しい接続だけを通す

Cloudflare の IP アドレスからの接続だけを受け付ける

Velocityプロキシ
  • ネットワークの層 (L3・L4) の DDoS 攻撃を、Cloudflare のネットワークで受け止める。攻撃の検知のルールは、常に有効
  • Cloudflare Spectrum は TCP の接続を正しく確立してから中継するため、接続を確立しない攻撃はサーバーに届かない
  • サーバーの IP アドレスを、参加する方に見せずに済む
  • Cloudflare Spectrum の IP アドレスは、世界中のデータセンター (中国を除く) から同じアドレスで応答する (エニーキャスト)

プランごとに使える範囲

Minecraft (Java 版) は、Pro と Business のプランで、1 つのアプリケーションに限って使えます。そのほかの TCP・UDP の通信は、Enterprise のプランが必要です。

プラン料金Minecraft の転送量超えた分
Free$0使えない—
Pro$20 / 月 (年払い)、$25 / 月 (月払い)月 5 GB まで1 GB あたり $1
Business$200 / 月 (年払い)、$250 / 月 (月払い)月 10 GB まで1 GB あたり $1
Enterpriseお見積もりすべての TCP・UDP の通信契約による

転送量の目安は、参加する人数とプレイの内容で大きく変わります。見積もりの考え方は、通信の帯域とクライアントの快適さで説明しています。

Enterprise だけの機能

次の機能は、Enterprise のプランでだけ使えます。Pro と Business で設計するときは、これらがない前提で考えます。

  • Proxy Protocol: 参加する方の本当の IP アドレスをサーバーに渡す機能。Pro と Business では、サーバーから見える接続元は Cloudflare の IP アドレスになる
  • IP アドレスでのアクセスの制限 (Cloudflare Spectrum の IP Access rules)
  • 接続先のポートの指定、DNS での接続先の指定、TLS の終端
  • Argo Smart Routing (Cloudflare の中の経路の最適化)
  • 固定の IP アドレス、自社の IP アドレスの持ち込み (BYOIP)

Proxy Protocol を使えない場合、サーバー側では、参加する方の IP アドレスによる BAN やアクセスの制限ができません。対応の方法は、次の「IP アドレスの記録とブロック」で説明します。

統合版は対象外

Cloudflare のドキュメントは、Minecraft の Java 版に対応し、統合版 (Bedrock) には対応していないと明記しています。Geyser で統合版の参加を受け付ける場合、統合版の接続 (Geyser の既定では UDP の 19132 番) は Cloudflare Spectrum では守れないため、別の対策が必要です。

設定の手順

Cloudflare のドキュメントの一般的な手順に沿って、次のように進めます。

  1. サーバーに使うドメインを Cloudflare に追加し、Pro 以上のプランにする
  2. Cloudflare の管理画面の「Spectrum」で「Create an Application」を選び、アプリケーションの種類に Minecraft を選ぶ
  3. 参加する方が接続するドメイン (例: play.example.jp) と、接続を受けるポート、転送先のサーバーの IP アドレスとポートを入力する
  4. サーバーのファイアウォールで、Cloudflare の IP アドレスの範囲からの接続だけを受け付ける (範囲は Cloudflare が公開している)
  5. 参加する方に、Cloudflare Spectrum のドメインで接続していただく

Pro と Business で、Minecraft の既定 (25565 番) 以外のポートを使えるかは、ドキュメントで確認できませんでした。構成を決める前に、Cloudflare の管理画面で確かめます。

サーバーの IP アドレスを隠す

Cloudflare Spectrum を使っていても、サーバーの本当の IP アドレスが知られると、攻撃者は Cloudflare を通らずにサーバーを直接攻撃できます。Cloudflare のドキュメントは、次の対策を勧めています。

  • Cloudflare に移ったあと、サーバーの IP アドレスを変える。以前の DNS の記録は、外部のサービスに履歴として残っている
  • サーバーは、Cloudflare の IP アドレスの範囲からの接続だけを受け付ける
  • Cloudflare を通さない DNS の記録 (SPF、TXT など) に、サーバーの IP アドレスが含まれていないか確かめる
  • メールのサーバーを、同じ機械で動かさない

Minecraft のサーバーでは、次の点も見直します。

  • SRV レコードや、ほかのサブドメイン (地図、管理画面、Discord の連携など) が、サーバーの IP アドレスを直接指していないか
  • Web の地図や分析の画面を、ゲームのサーバーと同じ IP アドレスで公開していないか
  • プラグインや Mod が、サーバーの IP アドレスを外部に送っていないか

IP アドレスの記録とブロック (Pro・Business)

Pro と Business のプランでは、参加する方の本当の IP アドレスを、プロキシやサーバーに渡せません。Cloudflare のドキュメントは、本当の IP アドレスを渡す Proxy Protocol と、Cloudflare Spectrum の IP Access rules を、Enterprise のプランの機能としています。その前提で、記録とブロックを次のように組み立てます。

やりたいことPro・BusinessEnterprise
プロキシで本当の IP アドレスを見るできない (Cloudflare の IP アドレスに見える)Proxy Protocol で渡せる
本当の IP アドレスを記録するCloudflare 側のログ (Logpush の Cloudflare Spectrum のイベント) に残せるCloudflare 側のログと、プロキシのログの両方に残せる
IP アドレスや国でブロックするCloudflare では、記載された方法がないCloudflare Spectrum の IP Access rules (IP アドレス、範囲、国、ASN)
参加する人を限る、BAN するプロキシとサーバーで、アカウント (UUID) で行う同じ。IP アドレスでの BAN も使える

プロキシとサーバーの設定

Cloudflare の IP アドレスは、多くの利用者で共有されています。Cloudflare のドキュメントも、限られた数の送信元から大量の通信が来るように見えることがあると説明しています。Pro と Business のプランでは、Velocity と Paper を次のように設定します。

  • haproxy-protocol(velocity.toml) と proxies.proxy-protocol(paper-global.yml) は false のままにする。Cloudflare が Proxy Protocol の情報を送らないため
  • login-ratelimit(同じ IP アドレスからの接続の間隔の制限、既定 3,000 ミリ秒): 複数の参加者が同じ Cloudflare の IP アドレスから届くため、制限が、関係のない方の参加を止めることがあります。値を小さくするか 0 にして、接続の回数の制限は、アカウントごとに行うプラグインや、ホワイトリストで代わりに行います
  • prevent-client-proxy-connections: Mojang の認証のサーバーに、Cloudflare の IP アドレスを接続元として送ることになるため、false のままにする
  • BAN: /ban-ip は Cloudflare の IP アドレスを BAN してしまい、ほかの参加者にも影響するため使わない。アカウント (UUID) で BAN する

Cloudflare 側で IP アドレスを記録する

本当の IP アドレスは、Cloudflare 側のログには残ります。Cloudflare Spectrum の接続のログ (Logpush のデータセット spectrum_events) は、接続ごとに、接続と切断のイベントを記録します。

主な項目内容
ClientIP・ClientPort参加する方の本当の IP アドレスとポート
ClientCountry・ClientAsn接続元の国と、回線の事業者 (ASN)
ConnectTimestamp・DisconnectTimestamp接続と切断の時刻
ClientBytes・OriginBytes転送量
ColoCode受けた Cloudflare のデータセンター
Event・Status接続、切断、エラーなどの種類と状態
  • Logpush は、Free、Pro、Business のプランでも、使った量に応じた料金で使える。アカウントあたり月 25 GB まで含まれ、超えた分は、Cloudflare の R2 などへは 1 GB あたり $0.03、外部の保存先へは $0.10
  • 保存先は、Cloudflare R2、Amazon S3、Google Cloud Storage、BigQuery、Datadog、Splunk などを選べる。ログはほぼリアルタイムに届く
  • Pro と Business の Minecraft のアプリケーションで spectrum_events を選べるかは、ドキュメントに明記がないため、Cloudflare の管理画面で確かめる

このログには、Cloudflare からサーバーへの接続に使った IP アドレスとポートの項目がないため、Velocity のログの接続と 1 対 1 で結び付けることはできません。接続の時刻で照らし合わせることはできますが、同じ時刻に多くの方が参加すると、正確には特定できません。問題を起こしたプレイヤーへの対応は、アカウントで行うことを基本にします。

ブロックする方法

Pro と Business のプランで、Cloudflare Spectrum の接続を Cloudflare で IP アドレスごとにブロックする方法は、ドキュメントに記載がありません。WAF のルールも、TCP・UDP のアプリケーションには使えません。DDoS 攻撃の検知のルールは、すべてのプランで常に働きますが、調整できるのは Enterprise のプランです。

そのため、Pro と Business では、迷惑な参加を次の組み合わせで防ぎます。

  • ホワイトリストや、メンバーシップとの連携で、参加できる人を限る
  • プロキシのパケットとコマンドの制限 ([packet-limiter]、command-rate-limit) を使う
  • アカウント (UUID) での BAN と、ボットの検知のプラグイン

IP アドレスや国、回線の事業者でのブロックが必要な企画や、IP アドレスで参加者を管理する必要がある場合は、Enterprise のプランを検討します。Enterprise では、Proxy Protocol を有効にして Velocity の haproxy-protocol を true にすると、Velocity とサーバーで本当の IP アドレスを使えます。

守れないこと

Cloudflare Spectrum は、通信の中身 (Minecraft の通信の内容) を検査しません。Cloudflare の WAF のルールも、TCP・UDP のアプリケーションには使えません。そのため、次のような攻撃は、Cloudflare Spectrum では防げません。

  • 正しい手順で接続してくる大量のボットの参加
  • ログインやチャットを大量に送る迷惑行為
  • サーバーやプラグインの不具合を突く操作

これらは、Velocity やサーバーのプラグイン (接続の回数の制限、ボットの検知)、ホワイトリスト、サーバーの更新で対応します。出演者や運営スタッフだけが入るサーバーは、そもそも公開せず、Cloudflare Zero Trust で接続できる人を限る方法もあります (サーバーへの接続の保護)。

ログと分析

  • Cloudflare Spectrum の分析の API で、接続の数、転送量、接続の時間を確認できる
  • Logpush のデータセット spectrum_events で、接続と切断のログを保存できる。Logpush は Free、Pro、Business のプランでも、使った量に応じた料金で使える (アカウントあたり月 25 GB まで含まれる)。Pro と Business の Minecraft のアプリケーションで、このデータセットを使えるかは確認できなかった
  • 攻撃の緩和の理由を見られる Network Analytics は、Enterprise のプランが必要

大規模なサーバーでの利用

2018 年に Cloudflare Spectrum が発表されたとき、大規模な Minecraft のサーバー Hypixel が初期の導入先として紹介されました。Hypixel の CTO は、Mirai のボットネットの初期の標的のひとつで、大規模な攻撃を頻繁に受けると述べています。また、Cloudflare は 2022 年に、Minecraft の MMORPG のサーバー Wynncraft への 2.5 Tbps の攻撃を緩和したと報告しています (大規模な運営の例)。

参考にした資料

Cloudflare Spectrum の導入は、KEY SELECT に

Cloudflare のプランの選定、Cloudflare Spectrum と DNS の設定、サーバーの IP アドレスを隠すための見直し、ファイアウォールの設定まで、KEY SELECT がお引き受けできます。

  • 記事や技術資料の内容についてのご質問とサポートは、保守・サポートのご契約、またはスポットでのご契約をいただいたうえでお受けしています。無償でのサポートは行っておりません。
  • 記事や技術資料の内容は、公開の時点の情報にもとづいて作成しています。内容の正確性、完全性、最新性を保証するものではなく、内容にもとづいて行った作業の結果について、弊社は責任を負いかねます。設定や変更は、ご自身の責任で、検証用の環境で確かめてから行ってください。
  • 記事や技術資料の内容について、ご指摘や誤りにお気づきの点がありましたら、その他のお問い合わせからお知らせください。
  • 技術資料の内容は、引用元として資料の名前と URL を明記していただければ、ご自身の動画や資料としてご利用いただけます。全文の Web サイトでの引用はご遠慮ください。

ご相談・お問い合わせ

内容が固まっていない段階からご相談いただけます。各分野のプロフェッショナルがご対応いたします。ご相談・お見積もりは無料です。