Conan Exiles サーバーを DDoS 攻撃から守る

公開日 読了時間 36 分

Conan Exiles サーバーが本当に必要とするポートはどれか、RCON とクエリポートをどう固めるか、なぜ PvP サーバーがちょうどレイド時間帯に攻撃されるのか、そしてどの攻撃規模から手前のネットワークでのフィルタリングしか効かなくなるかを解説します。

レイド時間帯が始まるまさにそのときに到達できなくなる Conan Exiles サーバーは、ハードウェアに問題があることはまずありません。ほとんどの場合は攻撃が走っていて、しかも被害が最も大きくなる時間帯を選んでです。本記事では、Conan Exiles サーバーに DDoS 対策が必要な理由、この先の 10 分で追加費用なしにご自身で固められる範囲、その対策が技術的にどこで終わるか、そしてそのあとサーバーの手前のネットワークで何が起きる必要があるかを示します。

本記事の記述はすべて、Funcom の専用サーバー、つまり ConanSandboxServer.exe および StartServer.bat を前提としています。設定はディレクトリ ConanSandbox\Saved\Config\WindowsServer\ にある 3 つのファイル、ServerSettings.ini、Engine.ini、Game.ini に置かれています。これは、サーバーを Linux 上で互換レイヤー経由で動かしている場合にも当てはまります。Funcom が提供するのは Windows 用のアプリケーションだけであり、そのためパスの名前はそこでも WindowsServer のままです。

攻撃がいま進行中の場合:まずは測定値を保存してください(第 9 節)。攻撃が終わってからでは、もう残っていません。そして、いまは INI ファイルを編集しないでください。Conan Exiles は設定をメモリーに保持し、終了時に書き戻すため、動作中のサーバーへの変更はすべて失われます。

Conan Exiles サーバーに DDoS 対策が必要な理由

ほとんどのゲームでは、サーバーの障害は厄介な出来事です。Conan Exiles の PvP サーバーでは、それが戦術の一手になります。失ったものは戻らず、拠点を壊せるのは決められた時間帯の中だけで、その時間帯に守る側をゲームから外してしまえば、誰にも邪魔されずにレイドできます。つまり攻撃には具体的な見返りと、あらかじめ分かっている時刻があり、一度うまくいけば繰り返されます。

この時間帯は秘密ではありません。ServerSettings.ini のうち、プレイヤー同士の戦闘については RestrictPVPTime、建築物への損傷については RestrictPVPBuildingDamageTime に書かれており、しかもどの運用者も自らサーバー名、ルール、Discord に書き出します。そうしなければプレイヤーが知りようがないからです。つまり攻撃側は何も探り出す必要がありません。宣伝されている場所でレイド時間を読み取り、同じ時刻に攻撃を合わせるだけです。

その際、相手側の手間はきわめて小さいままです。いわゆる booter や stresser のサービスは、特定の IP アドレスと特定のポートに向けたフラッドを分単位で売っています。7777 UDP に対するポート単位の DDoS には、ゲームへのアクセスもお使いのサーバーについての知識も必要なく、アドレスとポート番号だけで足ります。まさにそのため、小さなサーバーも大きなサーバーと同じ確実さで狙われます。

そこに、Conan Exiles を大半のサバイバルゲームと分ける特徴が加わります。ServerSettings.ini には LogoutCharactersRemainInTheWorld というスイッチがあります。これが True になっていると、接続が切れたあともキャラクターは消えずに世界に立ち続けます。全プレイヤーを同時にゲームから弾き出す攻撃は、そのとき動かないキャラクターを装備ごと並べて残します。この種の攻撃で技術的に何が起きているかは、記事 DDoS 攻撃とは何か で解説しています。

技術面では、ゲームトラフィックのすべてが UDP で流れます。UDP には要求できるような接続確立の手順がなく、送信元アドレスは偽装できます。つまり攻撃側は、お使いのサーバーに参加する必要も、正しく話しかける必要もなく、負荷をかけられます。誰かがオンラインかどうかを知る必要さえありません。

実際に問題になるポート

Conan Exiles サーバーが外に必要とする UDP ポートはちょうど 3 つ、7777、7778、27015 です。それ以外は任意か、そもそも開いたネットワークに置くものではありません。Funcom は割り当てを次のように文書化しています。

ポート プロトコル 用途 設定場所
7777 UDP ゲームトラフィック(移動、戦闘、建築、同期) Engine.ini、[URL] の節、Port=7777、起動パラメーター -Port=
7778 UDP ピンガー。ゲームポート +1 に固定されている Engine.ini、[URL] の節、PeerPort=7778
27015 UDP サーバーリスト向けの Steam 形式のステータス問い合わせ Engine.ini、[OnlineSubsystemSteam]、ServerQueryPort、起動パラメーター -QueryPort=
7777 TCP クライアントへの Mod 転送。必要なときにだけ開かれる ゲームポートと同一
25575 TCP RCON によるリモート操作。初期状態では無効 Game.ini、[RconPlugin] の節、RconPort=25575、起動パラメーター -RconPort=

ここで定期的に間違われることが 3 つあります。第一に、7778 は自由に選べるポートではなく、常にゲームポート +1 です。同じマシンで 2 つのインスタンスを動かす場合は、そのため 2 つ刻みで飛ばす必要があります。1 つ目に 7777 と 7778、2 つ目に 7779 と 7780、それに問い合わせ用として 27015 と 27016 です。2 つ目のインスタンスを 7778 に置くと、1 つ目からピンガーを奪います。

第二に、7777 の TCP 開放は Mod の転送です。Funcom はクライアントからの要求があったときにだけ開き、要求するのは Epic Games Store のクライアントだけです。Steam のクライアントは、これまでどおり Steam の Workshop インターフェース経由で Mod を取得します。プレイヤーが Steam からしか来ないなら、この開放は必要ありません。

第三に、RCON は初期状態では無効です。RconEnabled の初期値は 0 です。それでもポートが開いているのを見つけた場合は、ご自身で有効にしたか、事業者の出来合いの雛形をそのまま引き継いだかのどちらかです。

費用をかける前に自分でできること

次の 9 つの手順には費用がかからず、実務で最も多いものに効きます。少数の発信元からの小さな狙い撃ちのフラッド、悪用されたクエリポート、RCON へのログイン試行、そして 1 つの Mod による過負荷です。手前ですでにネットワーク側のフィルターが動いている場合にも、やる価値があります。

1. 現状把握:サーバーで何が待ち受けているか

ルールを 1 つ書く前に、お使いのサーバーが外に何を提供しているかを確認します。推測せず、実際に見てください。Windows では次のとおりです。

Get-NetUDPEndpoint | Where-Object LocalPort -in 7777,7778,27015
Get-NetTCPConnection -State Listen | Sort-Object LocalPort
netstat -ano -p UDP | findstr "7777 7778 27015"

サーバーを Linux 上の互換レイヤーで動かしている場合、対応するコマンドは次のとおりです。

ss -lnup
ss -lntp

注目するのはローカルアドレスの列です。0.0.0.0:7777 は「インターネット全体から到達できる」、127.0.0.1:25575 は「ローカルのみ」で、ファイアウォールルールは不要という意味です。攻撃側からの見え方は、外部からのポートスキャンで分かります。しかも明確に UDP でも行ってください。Conan Exiles では TCP だけのスキャンはほとんど何も見つけないからです。

nmap -Pn -sU -p 7777,7778,27015 YOUR.SERVER.IP.ADDRESS
nmap -Pn -p 7777,25575 YOUR.SERVER.IP.ADDRESS

2. 3 つの UDP ポートだけを開ける

Windows では、標準のファイアウォールに 2 つのルールがあれば足ります。1 つ目はゲームの動作を開き、2 つ目はポートを全員に開けるのではなく、RCON をご自身のアドレスに限定します。

New-NetFirewallRule -DisplayName "Conan Exiles" -Direction Inbound -Protocol UDP -LocalPort 7777,7778,27015 -Action Allow
New-NetFirewallRule -DisplayName "Conan RCON" -Direction Inbound -Protocol TCP -LocalPort 25575 -RemoteAddress 203.0.113.10 -Action Allow
Get-NetFirewallRule -DisplayName "Conan*" | Format-Table DisplayName,Enabled,Direction,Action

Linux で同じことを UFW で行うと次のようになります。自分自身を締め出さないよう、この順番どおりに実行してください。

ufw allow 22/tcp comment 'SSH'
ufw allow 7777/udp comment 'Conan Exiles'
ufw allow 7778/udp comment 'Conan Exiles ピンガー'
ufw allow 27015/udp comment 'Conan Exiles クエリ'
ufw allow from 203.0.113.10 to any port 25575 proto tcp comment 'RCON'
ufw default deny incoming
ufw --force enable
ufw status verbose

203.0.113.10 はご自身のアドレスに置き換えてください。復旧手段まで含む詳しい手順は 自分を締め出さずに UFW ファイアウォールを設定する にあります。7777 の TCP 開放は、プレイヤーの誰も Epic Games Store から来ないうちは行わないでください。

3. RCON を固めるか、完全に無効にする

RCON は、お使いのサーバーへの完全なアクセスを持つリモート操作の仕組みです。プレイヤーのキック、BAN、メッセージの送信、コマンドの実行ができます。TCP の 25575 で動き、Game.ini で設定します。

[RconPlugin]
RconEnabled=0
RconPort=25575
RconPassword=
RconMaxKarma=60

RCON が必要ないなら、RconEnabled=0 のままにしてください。これが初期値であり、最も安全な設定です。必要な場合は 3 つの原則があります。第一に、RconPassword は長くランダムでなければなりません。RCON のプロトコルはパスワードを暗号化せずに回線へ流すからです。第二に、このポートは開いたインターネットに置くものではなく、ご自身のアドレスに限定するか、SSH 経由の到達に限ります。第三に、RconMaxKarma はログインフラッドに対する組み込みの保護で、標準値は 60 です。このカウンターは、1 つの発信元が拒否されるまでに短い間に出せる要求の数を制限します。

開いた RCON ポートは、そのうえネットワーク上の存在を確実に知らせる手がかりになります。25575 を広く走査する人はゲームサーバーを見つけますし、手前にフィルタリングのないゲームサーバーは狙う価値のある標的です。

4. クエリポートは閉じるのではなく制限する

ポート 27015 UDP は、Steam 形式のステータス問い合わせに応答します。A2S クエリとは、クライアントがゲームを起動せずにサーバー名、マップ、プレイヤー数、プレイ時間を取得する短い UDP 要求です。サーバーリスト、ご自身のステータスページ、そしてプレイヤー数を表示するあらゆる Discord ボットが、まさにこれを必要とします。

このポートは閉じないでください。そうしないとお使いのサーバーはサーバーリストから消え、新しいプレイヤーには見つけられなくなります。正しい扱いは、送信元アドレスごとの上限です。Linux では次のとおりです。

iptables -I INPUT -p udp --dport 27015 -m hashlimit --hashlimit-name conan_query --hashlimit-mode srcip --hashlimit-above 10/sec --hashlimit-burst 20 -j DROP
iptables -L INPUT -n -v | head -20

発信元ごとに毎秒 10 件の問い合わせは、本物のプレイヤーにもあらゆる監視にも足りますが、毎秒数千件を送ってくる発信元は破棄します。ルールは apt-get install -y iptables-persistent と netfilter-persistent save で保存してください。そうしないと次の再起動で消えます。UFW では /etc/ufw/before.rules に書きます。

ただし、ここには厳しい限界があり、しかも Conan Exiles の運用者の多数派に関わります。Windows のファイアウォールには、送信元アドレスごとの制限がありません。ポートを開く、閉じる、固定のアドレスに限定することはできますが、「送信元あたり毎秒 10 パケットまで」と言うことはできません。Windows サーバーには、この用途に使える標準の機能が単純に存在せず、制限はサーバーの手前のネットワークで行う必要があります。

2 つ目の点は、逆方向の悪用に関わります。リフレクションとは、攻撃側が送信元アドレスを偽装した問い合わせを数千のゲームサーバーに送り、その応答がすべて第三者に集まる、というものです。A2S の応答は要求より大きいため、通信量は途中で何倍にもなります。そのときお使いのサーバーは被害者ではなく武器であり、送信した通信の費用はご自身が負います。Valve はこれに対してチャレンジ応答の方式を導入しました。サーバーは A2S クエリに対して、まず問い返しで応答してよく、アドレスを偽装した送信元はそれに答えられません。効果があるのは有効になっている場所だけなので、27015 に対するレート制限はいずれの場合も必要です。

5. サーバーパスワード、管理者パスワード、スロット

ServerSettings.ini には、攻撃対象領域を直接左右する設定が 3 つあります。

[ServerSettings]
AdminPassword=
ServerPassword=
MaxPlayers=40
IsBattlEyeEnabled=True

AdminPassword は、このファイル全体で最も重大な値です。これはコンソールへのアクセスではなく、通常どおり接続したプレイヤーがゲーム内で自分に管理者権限を与えるためのパスワードです。短い管理者パスワードや推測された管理者パスワードは、ラグではなくサーバーそのものの喪失を意味します。長くランダムに設定し、チームのメンバーが抜けたらすぐに交換してください。

ServerPassword は、公開サーバーを非公開サーバーに変えます。これは荒らし、使い捨てのアカウント、そして通常の参加経路を使うすべての相手に効きます。回線への攻撃には効きません。サーバーをあふれさせる攻撃側は、そもそも参加する気がありません。そのパケットは拒否されますが、それでも届いてはいます。そこが要点です。

MaxPlayers はスロット数を制限し、起動パラメーター -MaxPlayers= でも設定できます。現実的な上限は、それ自体が保護の手立てです。接続中のクライアントはどれも継続的にパケットを生み、マシンが支えられる以上のスロットを持つサーバーは、通常の運用でも早々に崩れます。

6. BattlEye ができることと、できないこと

Conan Exiles は ServerSettings.ini の IsBattlEyeEnabled でアンチチートの検査を備えています。これは有効にしておくべきですが、DDoS 対策ではありません。理由は構造的なものです。アンチチートが検査するのは、すでに接続しているクライアントです。ゲームと同じプロセスで動き、パケットを見られるのはサーバーがすでにそれを処理したあとです。このプロセスが手いっぱいなら、検査のロジックも一緒に沈みます。

追加で導入するサーバー側の道具にも、同じことが当てはまります。サーバー上で動くものはすべて、すでに届いているものを破棄できるだけです。アンチチートが守るのはゲームのルールで、可用性ではありません。

7. Mod を整えておく

改造された Conan Exiles サーバーで報告される障害のかなりの部分は、攻撃ではありません。Mod の一覧は同じ設定ディレクトリに modlist.txt として置かれ、どの Mod もゲームと同じプロセスで動きます。ループを抱えた 1 つの Mod、狭すぎるティック、制限のないデータベース問い合わせのどれかがあれば、攻撃と同じようにサーバーは止まります。違うのは、目立つパケットレートが出ないことだけです。

見分け方は単純で、常に最初に行うべきです。マシンがほとんど働いていないのにネットワークカードのパケットレートが大きく上がるなら、攻撃です。パケットレートは平常どおりなのに全体が引っかかるなら、ソフトウェアです。迷うときは Mod の一覧を半分外して再起動してください。2 回の試行で原因を絞れます。

もう 1 つ、とても実務的な点があります。ゲームの更新のあと、Mod とサーバーのバージョンがかみ合わなくなることがよくあります。プレイヤーは参加時に弾き出され、Discord には「Server down」と書かれ、全員が存在しない攻撃を探します。更新のあとは、まず Mod の一覧を確認してください。

8. アドレスとレイド時間

お使いの IP アドレスは秘密にできません。それがなければ誰も参加できないため、サーバーリストの登録に載りますし、一度接続したプレイヤーは皆それを知っています。アドレスの変更は時間を稼ぎますが、解決ではありません。攻撃側は新しいアドレスを古いアドレスと同じ情報源から、多くの場合は数分から数時間のうちに読み取ります。

それでも役に立つ習慣が 2 つあります。生の IP アドレスをご自身でどこにも公開しないこと、つまり Discord にもプロジェクトのページにも書かないこと。そして、アドレスの変更がすべての参照を壊さないよう、プレイヤーにはホスト名で接続させることです。ここでの定番の落とし穴は、古いアドレスを指す忘れられた A レコードで、これがあるとどんな変更も無意味になります。

レイド時間については、隠すのとは逆のことが当てはまります。公開されていなければ、お使いのサーバーは成り立ちません。その代わり、診断に使ってください。3 晩続けて 18 時 5 分にサーバーが落ち、レイド時間帯が 18 時に始まるなら、それはもう推測ではなく、チケットに添えられる規則性です。

9. 推測せずに測る

最も重要なのは、ほとんど誰も事前にやらない手順、つまりすべてが平常に動いているうちに基準値を作っておくことです。平常時の値がなければ、障害のあとで毎秒 4 万パケットが多かったのか、それとも単に混み合った金曜の夜だったのかを判断できません。Windows では標準の機能で足ります。

Get-NetAdapterStatistics
typeperf "\Network Interface(*)\Packets Received/sec" -sc 20
typeperf "\Network Interface(*)\Bytes Received/sec" -sc 20

Linux で対応するコマンドは次のとおりです。

sar -n DEV 1 10
ip -s link show eth0
tcpdump -ni eth0 udp port 7777 or udp port 27015 -c 200 -q

tcpdump では必ず -c で件数を区切ってください。全負荷の状態での取得は、すでに過負荷のサーバーにさらに負荷をかけます。Conan Exiles のサーバーログはディレクトリ ConanSandbox\Saved\Logs\ に置かれ、起動パラメーター -log を付けるとウィンドウにも同時に書き出されます。セーブデータは ConanSandbox\Saved\game.db という 1 つのファイルです。切迫した状況で何かを変える前に、これを保存してください。測定値の読み方は DDoS 攻撃を検知する にあります。

ここまでの対策が限界を迎える地点:帯域幅とパケットレート

ここからは、どの INI ファイルでも解決できない部分です。これまでの対策はすべてお使いのサーバー上、つまり回線の末端で動きます。ファイアウォールルールが判断するのは、すでにケーブルを通り終えたパケットです。破棄はできますが、送られなかったことにはできません。

一度計算してみてください。一般的なゲームサーバーは 1 Gbit/s につながっており、これは毎秒 125 メガバイトです。誰かがそれより多く送った時点で、回線は埋まります。サバイバル系サーバーへの攻撃はふつう 5 から 50 Gbit/s の範囲で、つまりお使いの回線の 5 倍から 50 倍です。その後ろにあるルールの出来は、もう関係ありません。プレイヤーのパケットは、その手前で通れなくなっているからです。

2 つ目の指標はパケットレートで、ほとんどの場合こちらが帯域幅より先に限界に達します。64 バイトの小さなパケットなら、1 Gbit/s の回線には毎秒約 149 万パケットが入ります。通常のサーバーが破棄を始める前に処理できるのは、CPU とネットワークカードによりますがそのうち数十万です。つまり、お使いの回線を 3 分の 1 も埋めない攻撃でも、計算時間が破棄に取られるため Conan Exiles サーバーを止められます。運用者にはこれが「使用率はまったく高くなかったのに、それでも全部落ちた」という形で見えます。

Conan Exiles では、ゲーム世界の全体が 1 つのプロセスで動くことが状況をさらに悪くします。1 つ目が手いっぱいのときに動き続ける 2 つ目のインスタンスはありません。このプロセスに計算時間が回らなくなった時点で、戦闘、建築、保存が同時に止まります。

実際に起きる規模の目安として、KernelHost のサーバーでは、ボイスサーバー宛ての毎秒 4150 万パケット超で 473.4 Gbit/s 超の攻撃や、ゲームサーバー宛ての 112.2 Gbit/s 超の UDP フラッドなどを除去しています。これに対するローカルの設定はありません。ボリューム型攻撃は、サーバーの手前のネットワークで終わらせる必要があります。

KernelHost が用意している対策

すべてのサーバーに標準で含まれる常時保護

KernelHost の DDoS 対策は 2 段階で構成されており、有効化も注文も設定もなしに常時動いています。

  • 第 1 段階:グローバルなスクラビングネットワークにおける 17 Tbps の緩和能力。 ボリューム型攻撃は、データセンターに届く前に、発生源の近くで除去されます。
  • 第 2 段階:フランクフルトにおける 3.2 Tbps の Arbor リアルタイムフィルタリング。 サーバーの直前で、プロトコル固有のパターンを検知し、パケット単位で破棄します。

決定的な性質が 2 つあります。保護は常時動いており、攻撃を受けてから反応する必要がありません。つまり、最初の数分だけサーバーが落ちている、ということが起きません。どうせ数時間しか続かないレイド時間帯では、まさにそこが要点になります。そしてヌルルーティングは使いません。お使いの IP アドレスはネットワークに残り、破棄されるのは有害なパケットだけです。IP アドレスをネットワークから外す事業者は、ご自身にとって攻撃側と同じ結果をもたらします。どのゲームとプロトコルが対象かは ゲームサーバーの DDoS 対策をリアルタイムで にまとめています。

継続的に攻撃されるサーバー向けの Advanced DDoS Protection

サーバーによっては、たまたまではなく、狙って何週間も攻撃されます。しかもたいていは毎回同じ時刻です。そのために Advanced DDoS Protection があり、月額 50.00 EUR から、PrePaid、最低利用期間なし、初期費用なしで利用できます。違いは容量の大きさではなく、制御できることにあります。

  • 専用の保護 IP をフランクフルトの中核から割り当て、お使いのサーバーを当社のネットワーク内で切り替えます。ご自身の側で作り直す作業はありません。
  • ポートとプロトコルごとに自分で管理できる保護ルールをカスタマーエリアで設定できます。7777 UDP、7778 UDP、27015 UDP で何を許可するかを分けて指定できます。まさにこの切り分けが、とくに Windows ではサーバー自体に欠けています。
  • 変更はリアルタイムで反映されます。そのため、翌朝を待つのではなく、攻撃が進行している最中に調整できます。
  • ゲームに合わせた保護プロファイルを用意しており、改造したアプリケーションや独自のアプリケーションを任意の TCP または UDP ポートで動かす場合にも同様に対応します。

2 つの段階の比較

項目 標準で含まれる DDoS 常時保護 Advanced DDoS Protection
料金 すべてのサーバープランに含まれ、追加料金なし 月額 50.00 EUR から、PrePaid
フィルタリング能力 17 Tbps のグローバルなスクラビングと、フランクフルトにおける 3.2 Tbps の Arbor リアルタイムフィルタリング 同じ 2 段階のフィルタリング
IP アドレス お使いのサーバーの IP アドレス 追加の専用保護 IP
ルールセット 自動プロファイル、設定は不要 カスタマーエリアでポートとプロトコルごとの独自ルール
クエリポート 27015 自動でまとめてフィルタリングされる ゲームポートとは別の独自のレート制限
変更 自動で追従する リアルタイムで反映され、攻撃の最中でも可能
ヌルルーティング なし なし
契約期間 サーバープランに連動 PrePaid、最低利用期間なし、解約予告期間なし、初期費用なし

ほとんどの Conan Exiles サーバーでは、標準で含まれる常時保護と、きちんとした設定を組み合わせれば十分です。Advanced DDoS Protection は、誰かが個人的な問題として攻撃してくる場合への答えです。サーバーをいま別の場所で動かしていて、そこで定期的にネットワークから外されている場合、最も確実な解決は移転です。フィルタリングは、サーバーが置かれているネットワークの中にあるべきものです。

よくある失敗とその対処

「ServerSettings.ini での変更が、再起動したら消えている」:編集したとき、サーバーがまだ動いていました。Conan Exiles は設定をメモリーに保持し、終了時にファイルへ書き戻すため、ご自身の変更が上書きされます。サーバーを終了し、待ち、編集し、起動してください。そのうえで、編集するのは Saved\Config\WindowsServer\ の下のファイルで、隣にある雛形ではありません。そうしないと、次のゲーム更新がすべてを上書きします。

「ポートを変えたら、サーバーがリストに出なくなった」:クエリポートが一緒に変わっていません。ゲームポートとクエリポートは別々の値で、ゲームポート +1 のピンガーも空いていて開放されている必要があります。Engine.ini の [URL] Port と PeerPort を、ServerQueryPort とファイアウォールのルールに突き合わせて確認してください。

「IP アドレスを変えたのに、2 時間後にまたオフラインになった」:攻撃側は新しいアドレスを、古いアドレスと同じ情報源から得ています。多くはサーバーリストの登録、ステータス表示付きの Discord ボット、あるいは古い DNS レコードです。アドレスの変更は時間稼ぎであって、解決ではありません。

「RCON のログに数百件の失敗したログインが並んでいる」:これは 25575 TCP に対するログインフラッドで、当たるのはゲームのロジックであり、回線ではありません。RconMaxKarma がこれを抑えますが、本当に終わらせるには、このポートをご自身のアドレスに限定するか、RconEnabled=0 で RCON を無効にしてください。

「数分ごとにラグスパイクが出るが、サーバーが完全に落ちることはない」:これはパルス状のフラッドの典型的な姿です。数秒の突き上げでもパケットを破棄させるには足りますが、警報を出すしきい値はどれも下回ったままです。そのため、5 分平均ではなく 1 秒ごとに測ってください。そうしないと、集計は目立たない平均値しか示さないのに、プレイヤーは数分ごとに戦闘から弾き出されます。

「全プレイヤーが引っかかるのに、ネットワークのカウンターに異常がない」:それは DDoS 攻撃ではありません。Get-NetAdapterStatistics あるいは sar -n DEV 1 10 が正常の範囲にとどまるなら、原因はソフトウェアです。まず Mod の一覧を確認し、次にサーバーのバージョンを Mod のバージョンと突き合わせてください。

「これまで使っていた事業者に IP アドレスを遮断された」:それがヌルルーティングです。事業者はそれで自分のネットワークを守りますが、ご自身にとっての結果は攻撃の成功と同じで、多くの場合そのあと数時間続きます。判断に迷うときは、フィルタリングなのかヌルルーティングなのかを尋ねてください。その答えは、どんなハードウェアの仕様よりも可用性を左右します。

「取得した通信を見ても、おかしなところがない」:手前のネットワークですでにトラフィックが除去されている場合、サーバーには何も届かないのが当然です。フィルタリングが機能しているときの通常の姿です。逆に回線が飽和していると、測定に使おうとしたリモート管理さえ届かないことがあります。その場合は、ゲスト側のネットワークに依存せず動作する、カスタマーエリアの VNC コンソールを使ってください。

まとめ

  • Conan Exiles サーバーが外に必要とする UDP ポートはちょうど 3 つです。ゲームトラフィック用の 7777、ピンガー用の 7778、ステータス問い合わせ用の 27015 です。TCP の 7777 は Epic のクライアントへの Mod 転送のときだけ、TCP の 25575 は RCON を有効にしている場合だけです。
  • ピンガーはゲームポート +1 に固定されています。そのため、1 台のマシンで複数のインスタンスを動かす場合は 2 つ刻みで割り当てます。
  • RCON は RconEnabled=0 で初期状態から無効であり、必要にならないうちは無効のままにしておくべきです。パスワードは暗号化されずに回線を流れます。
  • ポート 27015 は閉じるのではなく制限します。閉じるとサーバーはサーバーリストから消え、無制限なら標的と反射器を兼ねることになります。
  • Windows のファイアウォールはポートを開く、閉じる、アドレスに限定することはできますが、送信元アドレスごとのレートは制限できません。この仕事はサーバーの手前のネットワークに属します。
  • 1 Gbit/s では毎秒 125 メガバイトで回線が埋まり、64 バイトのパケットならこれは毎秒約 149 万パケットに相当します。それを超えると、ローカルのルールはもう役に立ちません。
  • KernelHost では、グローバルなスクラビングネットワークにおける 17 Tbps の緩和能力と、フランクフルトにおける 3.2 Tbps の Arbor リアルタイムフィルタリングが常時動いており、追加料金もヌルルーティングもありません。

サーバーをすでに KernelHost で動かしている場合、フィルタリングは何もしなくても有効です。それでも異常に気づいたときは、日付、時刻、測定値を添えて サポートチケット を開いてください。お使いの IP アドレス向けにフィルタールールを調整します。攻撃が進行中の場合は、WhatsApp の緊急チャット +43 650 8209883 でもご連絡いただけます。

よくあるご質問

Conan Exiles サーバーがレイド時間帯の最中にオフラインになりました。まず何を確認しますか?
ネットワークカードのパケットレートです。CPU 負荷でもゲームのログでもありません。Windows では Get-NetAdapterStatistics が受信パケットを、Linux では sar -n DEV 1 10 が毎秒のパケット数を示します。マシンがほとんど働いていないのに受信パケットが平常時の値を大きく超えているなら、攻撃です。カウンターに異常がないのにそれでも全体が引っかかるなら、原因はほぼ必ず Mod にあります。どの Mod もゲームと同じプロセスで動くからです。
Conan Exiles サーバーが本当に必要とするポートはどれですか?
ちょうど 3 つの UDP ポートです。ゲームトラフィック用の 7777、ピンガー用の 7778、そしてサーバーリスト向けのステータス問い合わせ用の 27015 です。これに任意の TCP ポートが 2 つ加わります。7777 TCP は、Epic Games Store のクライアントへの Mod 転送のために必要なときだけ開かれ、Steam のクライアントは Workshop インターフェース経由で Mod を取得します。25575 TCP は RCON で、初期状態では無効です。ゲームポートは Engine.ini の [URL] の節に、クエリポートは [OnlineSubsystemSteam] に、RCON のポートは Game.ini の [RconPlugin] にあります。
Conan Exiles のポート 7778 は何のためにありますか?
ポート 7778 UDP はピンガーで、ゲームポート +1 に固定されています。自由に選ぶことはできません。Engine.ini で Port の値を変えると、PeerPort も一緒に動きます。実際に関わってくるのは、1 台のマシンで複数のインスタンスを動かす場合です。ポートは 2 つ刻みで割り当てる必要があり、1 つ目のインスタンスに 7777 と 7778、2 つ目に 7779 と 7780 となります。2 つ目のインスタンスを 7778 に置くと、1 つ目からピンガーを奪います。
クエリポートの 27015 は、単純に閉じてしまえばよいのでしょうか?
いいえ。そうするとお使いのサーバーはサーバーリストから消えます。サーバー名、マップ、プレイヤー数は、まさにこのポート経由で取得されるからです。正しいのは遮断ではなく、送信元アドレスごとの上限です。Linux ではたとえば、iptables と hashlimit で毎秒 10 件の問い合わせに小さな余裕を加えて設定します。これは本物のプレイヤーにもあらゆる監視にも足りますが、毎秒数千件を送ってくる発信元は破棄します。Windows のファイアウォールは送信元アドレスごとのレートを制限できないため、そこではサーバーの手前のネットワークで行う必要があります。
ポート 25575 の RCON はどう固めますか?
最も安全なのは、無効のままにしておくことです。RconEnabled は Game.ini で初期状態から 0 です。RCON が必要な場合は、長くランダムな RconPassword を設定してください。このプロトコルはパスワードを暗号化せずに回線へ流すからです。ポート 25575 TCP は全員に開けるのではなく、ご自身のアドレスに限定してください。標準値 60 の RconMaxKarma はログインフラッドを抑えますが、この限定を置き換えるものではありません。開いた RCON ポートは、そのうえゲームサーバーを広く探している相手に、ここに 1 台あることを知らせます。
Conan Exiles の PvP サーバーがとくに頻繁に攻撃されるのはなぜですか?
そこでは攻撃に具体的な見返りがあり、しかも最適な時刻が公開されているからです。PvP サーバーでは拠点を壊せるのがレイド時間帯の中だけで、その時間帯は ServerSettings.ini の RestrictPVPTime と RestrictPVPBuildingDamageTime で決められ、そのあとサーバー名、ルール、Discord で宣伝されます。まさにこの時間帯に守る側をゲームから外してしまえば、誰にも邪魔されずにレイドできます。さらに LogoutCharactersRemainInTheWorld が True になっていると、弾き出されたキャラクターは装備ごと世界に立ち続けます。
サーバー上のファイアウォールは DDoS 攻撃に効きますか?
小規模な攻撃や作りの粗いボットには効きますが、ボリューム型攻撃には効きません。ファイアウォールルールが判断するのは、すでにお使いの回線を通り終えたパケットです。回線が飽和していれば、プレイヤーのパケットはその手前で通れなくなり、ルールセットの出来とは無関係です。Conan Exiles ではさらに、ほとんどのサーバーが Windows 上で動いており、Windows のファイアウォールには送信元アドレスごとの制限がありません。ボリューム型攻撃は、サーバーの手前のネットワークで終わらせる必要があります。
どのくらいの規模から、Conan Exiles サーバーは自力で耐えられなくなりますか?
一般的なゲームサーバーは 1 Gbit/s につながっており、これは毎秒 125 メガバイトに相当します。サバイバル系サーバーへの攻撃はふつう 5 から 50 Gbit/s の範囲です。同じくらい重要なのがパケットレートです。1 Gbit/s には 64 バイトのパケットなら毎秒約 149 万パケットが入り、通常のサーバーが処理できるのはそのうち数十万にすぎません。つまり帯域幅を使い切られていなくても、攻撃はお使いのサーバーを止められます。ゲーム世界の全体が 1 つのプロセスで動くため、そのとき戦闘、建築、保存が同時に止まります。
KernelHost の Conan Exiles サーバーは、攻撃を受けている間オフラインになりますか?
いいえ。ヌルルーティングは使いません。お使いの IP アドレスはネットワークに残り、破棄されるのは有害なパケットだけです。保護は 2 段階です。グローバルなスクラビングネットワークにおける 17 Tbps の緩和能力と、フランクフルトにおける 3.2 Tbps の Arbor リアルタイムフィルタリングです。常時動いており、攻撃を受けてから反応する必要はありません。つまり、最初の数分だけサーバーが落ちている、ということが起きません。どうせ数時間しか続かないレイド時間帯では、まさにそこが要点になります。
KernelHost の DDoS 対策は別料金ですか?
いいえ。2 段階の常時保護はすべてのサーバープランに追加料金なしで含まれ、提供開始時点から有効です。注文も有効化も設定も必要ありません。お使いのサーバーのすべてのポートとプロトコルに適用されるため、ゲームポートの 7777 UDP にも、7778 UDP のピンガーにも、クエリポートの 27015 UDP にも同じように効きます。
追加で Advanced DDoS Protection が必要になるのはどんなときですか?
サーバーがたまたまではなく狙って何週間も、しかもたいてい毎回同じ時刻に攻撃され、フィルタリングをご自身で制御したい場合です。専用の保護 IP を受け取り、保護ルールをポートとプロトコルごとに、つまり 7777 UDP、7778 UDP、27015 UDP を分けて、カスタマーエリアで自分で管理できます。変更はリアルタイムで反映されるため、攻撃が進行している最中に調整できます。料金は月額 50.00 EUR から、PrePaid、最低利用期間なし、初期費用なしです。

Conan Exiles Conan Exiles の DDoS 対策 ゲームサーバー保護 ポート 7777 ポート 27015 RCON Advanced DDoS Protection リアルタイムフィルタリング