言語を切り替える
テーマを切り替える

Cloudflare導入後も攻撃される?源IP漏洩の7つの隠れた経路と対策ガイド

はじめに

先月、友人から「ブログが攻撃されてサーバーがダウンした。Cloudflareを入れているのに機能していない!」と相談を受けました。調べてみると、攻撃トラフィックはCloudflareを経由せず、サーバーのIPアドレスに直接飛んできていました。

いわゆる**「源IP(Origin IP)漏洩」**です。

多くの人は「Cloudflareを設定したから安心」と考えますが、実際にはDNSの履歴やメールのヘッダー情報など、様々な場所から「本来のIPアドレス」が漏れ出しています。攻撃者はそれを見つけ出し、CDNの防御壁を迂回して直接攻撃を仕掛けてきます。これでは高価なWAFも意味がありません。

この記事では、源IPが漏洩する7つの主要な経路とその検出方法、そして鉄壁の防御を構築するための手順を解説します。

なぜ源IPが漏洩するのか?

CDNの仕組みと直撃攻撃

通常、CloudflareなどのCDNを使うと、ユーザー(および攻撃者)はCDNのエッジサーバーにアクセスし、そこからあなたのサーバーへリクエストが転送されます。外部からはCDNのIPしか見えません。
しかし、もし攻撃者があなたのサーバーの「生IP(Real IP)」を知ってしまったら? 彼らはCDNを無視して、そのIPに直接パケットを送りつけることができます。

5.6 Tbps
観測された最大規模のDDoS攻撃

7つの漏洩経路

1. DNS履歴記録(リスク:高)
これが最も多いケースです。Cloudflareを導入する前に、生のIPで運用していませんでしたか? SecurityTrailsやDNSdumpsterなどのサービスは、DNSレコードの変更履歴を保存しています。攻撃者はそこから「Cloudflare導入直前のIP」を探し出し、攻撃します。

2. メールヘッダー情報(リスク:高)
Webサイトから送信される「登録完了メール」や「パスワードリセットメール」。これらをWebサーバー自身から送っていませんか? メールのヘッダー情報(Received フィールド)には、送信元サーバーのIPアドレスがバッチリ記載されています。

3. サブドメインの放置(リスク:中〜高)
www.example.com はCloudflareを通しているのに、mail.example.comdev.example.comcpanel.example.com などを生のIPに向けていませんか? サブドメインスキャンツールを使えば、これらはすぐに見つかります。同じサーバー(または同じIP帯)にあることがバレればアウトです。

4. サーバー情報の公開(リスク:中)
phpinfo() ページを消し忘れていたり、Apache/Nginxのデフォルトページ、あるいは.gitディレクトリへのアクセス権限設定ミスなどで、サーバー内部の情報やIPが漏れることがあります。

5. SSL証明書(リスク:中)
Certificate Transparency(証明書の透明性)ログには、発行されたすべてのSSL証明書が記録されます。過去にCensysなどの検索エンジンがあなたのIPの443ポートをスキャンし、そこで提示された証明書(あなたのドメインのもの)とIPを紐付けて記録している可能性があります。

6. 海外DNSの解析漏れ
一部のCDN設定では、国内からのアクセスのみCDNを経由し、海外からは直通(またはその逆)になっている場合があります。攻撃者が異なる地域からDNSを引くことで、生IPを取得する可能性があります。Cloudflareでは稀ですが、設定ミスで起こり得ます。

7. サーバーの隣人(リスク:低)
同じサーバー(IP)に同居している別のWebサイトが攻撃を受けたり、IPが特定されたりすることで、巻き添えであなたのIPも特定されることがあります。

あなたのIPは大丈夫? 漏洩チェックリスト

チェック項目推奨ツール解説
DNS履歴SecurityTrails, DNSdumpster過去のAレコードに現在のIPが残っていないか確認。
メールヘッダーメーラーの「ソースを表示」サイトから届いたメールのヘッダーにIPが含まれていないか。
サブドメインSublist3r, OneForAlladmin, test, ftp などのサブドメインがIPを晒していないか。
PingテストPing.pe, Global ping世界各地からPingし、すべてCloudflareのIPが返ってくるか。
証明書ログcrt.sh, CensysIPアドレスで検索し、あなたのドメインの証明書が出てこないか。

鉄壁の防御を構築する4つのステップ

ステップ1:IPアドレスの変更(漏洩している場合)

もし既にIPが特定され攻撃を受けているなら、小手先の対策では不十分です。
サーバーのIPを変更してください。AWSやVPSなら「Elastic IPの付け替え」や「スナップショットからの再構築」でIPを変えられます。これが最も確実な第一歩です。

ステップ2:全トラフィックをCloudflare経由にする

DNS設定画面で、すべてのサブドメインの雲マークを「オレンジ(Proxied)」にします。
メールサーバーなどでどうしても生IPが必要な場合は、Webサーバーとは**別のIP(別のサーバー)**に分けてください。

ステップ3:メール送信は外部サービスを使う

Webサーバーから直接 sendmailpostfix でメールを送るのはやめましょう。
Instead, use:

  • SendGrid / Mailgun / Amazon SES: これらのAPI経由でメールを送れば、メールヘッダーには彼らのIPが載り、あなたのサーバーIPは隠せます。

ステップ4:ファイアウォールでCloudflare以外を遮断(最重要)

これが究極の防御です。
「CloudflareのIPアドレス帯域」からのアクセスのみを許可し、それ以外のすべてのアクセス(80/443ポート)をファイアウォールレベルで遮断します。
これにより、仮に攻撃者が生IPを知っていたとしても、パケットを送りつけることすらできなくなります。

CloudflareのIP範囲は公式サイトで公開されています。
iptablesでの設定例(概念):

# CloudflareのIPを許可
iptables -A INPUT -p tcp -m multiport --dports 80,443 -s 173.245.48.0/20 -j ACCEPT
# ... (他のCF IPレンジも同様に追加) ...

# それ以外は拒否
iptables -A INPUT -p tcp -m multiport --dports 80,443 -j DROP

※ SSHポート(22)を締め出さないように十分注意してください!

さらに高度な対策:Cloudflare Tunnel

ポート開放すらしたくない場合は、Cloudflare Tunnel (旧 Argo Tunnel) がおすすめです。
サーバー内に cloudflared というデーモンを常駐させ、内側からCloudflareへのトンネルを掘ります。

  • メリット: インバウンドポート(80/443)を一切開ける必要がありません。ファイアウォールですべて閉じてOKです。
  • セキュリティ: 源IPを狙う攻撃は物理的に不可能になります。

まとめ

DDoS対策は、Cloudflareを導入しただけでは完了しません。「源IPを隠すこと」がセットで初めて効果を発揮します。

  1. DNS履歴やメールヘッダーからIPが漏れていないか確認する。
  2. 漏れていたらIPを変える。
  3. ファイアウォールでCloudflare以外のアクセスを弾く、またはTunnelを使う。

これで、夜中に叩き起こされる確率はグッと減るはずです。

Cloudflare源IP漏洩対策フロー

Webサーバーの源IPアドレス漏洩を防ぎ、DDoS攻撃を回避する設定手順

⏱️ Estimated time: 30 min

  1. 1

    Step1: 漏洩チェック

    SecurityTrailsなどでDNS履歴を確認し、サイトからのメールヘッダーを検査してIPが露出していないか確認。
  2. 2

    Step2: IP変更(必要な場合)

    既に漏洩している場合は、プロバイダの機能を使ってサーバーのIPアドレスを変更する。
  3. 3

    Step3: DNS設定の修正

    Cloudflareダッシュボードで、Webに関連する全てのサブドメインが「Proxied(オレンジ色の雲)」になっているか確認。
  4. 4

    Step4: ファイアウォール設定

    サーバーのファイアウォール(iptables/UFW/Security Group)で、80/443ポートへのアクセスをCloudflareのIPレンジのみに制限する。

FAQ

Cloudflare Tunnelとは何ですか?
Cloudflare Tunnelは、サーバーからCloudflareのエッジネットワークへ安全なトンネル接続を確立する仕組みです。これを使うと、サーバーのポート(80や443)をインターネットに公開する必要がなくなり、源IPへの直接攻撃を物理的に防ぐことができます。
Cloudflare以外のIPをブロックしたら、自分もアクセスできなくなりませんか?
80/443ポート(Webアクセス)のみをCloudflare限定にすれば、SSH(22ポート)やRDPなどの管理用ポートは影響を受けません。ただし、SSH接続用のIP制限ルールなども別途管理して、締め出し事故には十分注意してください。
メールサーバーもCloudflareで保護できますか?
いいえ、Cloudflareのプロキシ(オレンジ色の雲)はHTTP/HTTPSトラフィックのみを扱います。SMTP/IMAPなどのメールプロトコルはプロキシできません。メールサーバーはWebサーバーとは別のIPで運用し、WebサーバーのIPがメールヘッダーから漏れないようにするのが定石です。

3 min read · 公開日: 2025年12月1日 · 更新日: 2026年1月22日

コメント

GitHubアカウントでログインしてコメントできます

関連記事