OffshoreVps
セキュリティ2026年10月19日読了時間 8 分執筆:OffshoreVps チーム

オリジンサーバーの IP を隠す:プロキシ、CDN、漏えい

CDN がサーバーを隠せるのは、ほかに何も手がかりを与えない場合だけです。DNS 履歴、メール、証明書からオリジン IP が漏れる仕組みと、オリジンを固める方法を解説します。

サイトの前面に CDN やリバースプロキシを置くとトラフィックを吸収し、サーバーのアドレスも隠せますが、それは実際の IP が知られていない間だけです。攻撃者が CDN を破ることはまれで、オリジンを直接探します。このガイドでは、オリジンが漏れる場所と、プロキシ以外からの通信をすべて拒否させる方法を解説します。

「前段のプロキシ」「オリジンの許可リスト」「情報漏えいなし」というラベルが付いた盾と鍵のイラスト。オリジンサーバーの IP を秘匿することを表している
この記事で取り上げる重要なポイント。

オリジンが見つかる経路

  • DNS の履歴:サービスは古いレコードを保存しているため、CDN を導入する前に使っていた IP が今も残っています。
  • サブドメイン:サーバーを直接指す mail.、ftp.、dev. のレコード。
  • メールヘッダー:同じホストから送信したメールのヘッダーに IP が表示されます。
  • 証明書の透明性とインターネットスキャン:スキャナーは証明書を、それを提供しているすべての IP と照合します。
  • アプリケーションの挙動:Webhook、画像取得機能、「この URL を確認する」機能は、オリジンから外部へ接続します。

ステップ 1:クリーンな状態から始める

サーバーがすでに露出している場合、最も安全な対処法は新しい IP を取得するか、新しいサーバーへ移行することです。すでに公開されたアドレスを隠すことはできません。移行はダウンタイムなし移行ガイドを参考に計画してください。

このガイドの手順(順番どおり):1. オリジンが見つかる仕組み;2. クリーンな状態から始める;3. プロキシからのトラフィックのみを受け付ける;4. 漏えいしうるものをすべて分離する;5. 攻撃者の視点でテストする
このガイドの手順(順番どおり)。

ステップ 2:プロキシからの通信だけを受け付ける

Web ポートへは、プロキシが公開しているレンジからのみ許可し、それ以外は許可しません。UFW では次のようになります(プロバイダーが公開しているレンジを使用してください)。

sudo ufw default deny incoming
sudo ufw allow OpenSSH
for ip in $(cat proxy-ranges.txt); do sudo ufw allow from "$ip" to any port 443 proto tcp; done
sudo ufw enable

レンジは変更されるため、定期的に一覧を更新してください。より確実にするには、認証付きオリジンプル(相互 TLS)を使い、プロキシの証明書を持たないクライアントを Nginx が拒否するようにします。

ステップ 3:漏れる可能性のあるものをすべて分離する

  • メールはオリジンからではなく、別のホストまたはリレー経由で送信します。
  • Web 以外のサブドメインはオリジンの IP に向けないでください。
  • アプリケーションからの外部取得は、プロキシまたは別のワーカーを経由させます。
  • 未知の Host に対して空の応答を返すデフォルトの Nginx サーバーブロックを用意し、IP 直指定のスキャンで何も表示されないようにします。
server {
    listen 443 ssl default_server;
    ssl_reject_handshake on;
}

ステップ 4:攻撃者の視点でテストする

DNS 履歴ツールでドメインを検索し、自分の IP レンジを証明書でスキャンし、テストメールのヘッダーを確認します。いずれかでオリジンが見つかったら、IP を変更してやり直してください。

この対策が守るのはアドレスの可用性とプライバシーであり、アカウントの所有者が誰かまでは隠せない点に注意してください。それについては匿名ホスティングの本当の匿名性を、ネットワーク層を突破する攻撃については Layer 7 防御をご覧ください。