DDoS攻撃という言葉は聞いたことがあっても、それが自社に起こるリスクはどの程度なのか、実際に何をすべきなのかが判然としないまま放置されていることが多いです。本記事では、DDoS攻撃対策を中小企業でも実装できる理由と、Cloudflareの無料プランで実現可能な保護方法を、実装手順とともに解説します。
中心となる質問はこうです:「セキュリティと利便性のバランスを保ちながら、現実的なコストでDDoS対策を構築できるのか」。その答えは、Cloudflareの無料プランを正しく設定することで、可能です。Cloudflareの基本的なDDoS防御機能は無料で提供され、複数のレイヤーで自動的に攻撃をフィルタリングします。ただし「導入したから完全に安全」ではなく、何をどこまで防ぎ、何を自社で判断する必要があるかを理解することが重要です。
DDoS攻撃が中小企業に増えている理由
警察庁の発表によれば、2023年下半期のDDoS攻撃検挙件数は前年同期比で増加傾向にあり、攻撃の対象も多様化しています。DDoS(Distributed Denial of Service)攻撃は、複数のコンピュータから一斉にサーバーに通信を送りつけることで、正規のユーザーがアクセスできない状態を意図的に作り出す攻撃です。
大規模な企業だけが対象ではなく、実務の現場では中小企業の担当者が「自分のサイトが本当に攻撃されているのか、Cloudflare側の障害なのか判断がつかない」という不透明さや、「特定のページにアクセスするたびにCloudflareの認証が開いて、ユーザーが離脱する」という利便性の悩みに直面しています。
重要なのは、攻撃の大きさではなく、業務が止まるという事実です。中小企業のWebサイトやオンライン決済システムが数時間ダウンするだけで、その日の売上がゼロになります。飲食店の予約サイト、小売業のECプラットフォーム、製造業の受発注システム——いずれも数時間の停止は経営に直結する影響を与えます。
Cloudflareのセキュリティレイヤーの仕組み

CloudflareのDDoS防御は、複数の防御レイヤーで構成されています。まず理解すべきは、Cloudflareはあなたのサーバーの直前に「盾」として立ち、すべてのトラフィックをCloudflareのネットワークを経由させるという仕組みです。
第1レイヤー:ネットワークレイヤー防御(L3/L4)
これはUDPフラッド、SYNフラッド、DNSアンプ攻撃など、インターネット通信の基本プロトコルレベルの攻撃を防ぎます。Cloudflareの無料プランに含まれ、自動的に機能します。この段階で99%のボットトラフィックはフィルタリングされます。
第2レイヤー:アプリケーションレイヤー防御(L7)
HTTPやHTTPSの通信レベルで、不正なリクエストを検出・ブロックします。SQLインジェクションなどのアプリケーション固有の攻撃をここで防ぎます。詳細な攻撃パターンについては用語集を参照してください。
第3レイヤー:チャレンジ認証(Cloudflare Challenge)
ブラウザの正規性を確認するため、ユーザーに簡単な認証を求めます。これが「One more Step」画面として表示される機能です。ここが利便性と安全性のバランスを決める重要なポイントになります。
Cloudflareの無料プランと有料プラン(Pro・Business・Enterprise)では、防御の細かさとカスタマイズ範囲が異なります。以下の比較表から分かることは、無料プランでも中小企業の基本的なDDoS防御は十分であるということです。
| 防御項目 | 無料プラン | Pro(月額$20) | Business(月額$200) |
|---|---|---|---|
| DDoS自動緩和(L3/L4) | ✓ 無制限 | ✓ 無制限 | ✓ 無制限 |
| ファイアウォールルール | ✓ 5個 | ✓ 20個 | ✓ 無制限 |
| レート制限(Rate Limiting) | × | ✓ 10ルール | ✓ 無制限 |
| WAF(マネージドルール) | ✓ 基本 | ✓ カスタム可能 | ✓ カスタム可能 |
| DDoS分析・レポート | △ 基本情報のみ | ✓ 詳細ログ | ✓ 詳細+カスタムレポート |
| 優先サポート | × | × | ✓ 24時間 |
この表から、月額コストなしで無制限のL3/L4防御と5個のファイアウォールルール設定が可能であることが分かります。ただし「本当に攻撃されているのか」を詳しく調査したい、あるいは独自のルールで細かく制御したい場合は、Pro以上が必要になります。
セキュリティと利便性のバランス——チャレンジ認証の正しい設定

実務の現場で最もよく聞かれる悩みは「Cloudflareの認証が頻出して、ユーザーが離脱する」というものです。この問題は、防御と利便性の調整が上手くいっていない状態であり、設定段階で『何に対してチャレンジを求めるか』を明確に区別する必要があります。
セキュリティレベルの調整
Cloudflareのダッシュボード → セキュリティ → セキュリティレベル で、レベルを「低」「中」「高」「最高」から選べます。各レベルの動作は以下の通りです:
- 低:DDoS攻撃の疑いが強い場合のみチャレンジ(通常のボットは通す)
- 中:標準的な不正ボットもチャレンジ(多くの場合、これで十分)
- 高:より多くのボットをチャレンジ(正規ユーザーの一部も影響)
- 最高:ほぼすべての自動化トラフィックをチャレンジ(明らかに攻撃中の場合のみ)
Cloudflareの無料プランで複数サイトを運用している実務者の報告では、「中」に設定したサイトではユーザーからの「認証が多い」という不満がほぼ発生していません。一方、決済サイトや個人情報を扱うサイトは「高」で設定し、その代わり既存顧客には「特定IPアドレスからのアクセスはチャレンジをスキップ」というホワイトリスト設定を組み合わせているケースが多くあります。
ファイアウォールルールによる細粒度制御
セキュリティレベルはサイト全体に適用されるため、よりターゲットを絞ったルールが必要な場合は「ファイアウォールルール」を使用します。無料プランでも5個のルールが作成できます。
以下のルールは「ボットスコアが低く(不正っぽく)、国外からのアクセスで、脅威スコアが高い場合のみ、チャレンジを求める」という意味です。素直な日本からのアクセスはチャレンジされません。
If (cf.bot_management.score < 30) and (ip.geoip.country eq "JP") and (cf.threat_score > 50)
Then Challenge
このルールにより、VPN経由や海外支社からのアクセスの過度なブロックを回避しながら、不正なボットトラフィックのみを検出できます。ただし地域制限を厳しくしすぎると、出張先からのアクセスが全て遮断されるため、事前にどの地域からのアクセスが想定されるかを整理する必要があります。
実装の具体的な手順
Cloudflareを導入してDDoS防御を有効にするまでの最小限の手順は以下の通りです。
ステップ1:ドメインをCloudflareのネームサーバーに切り替える
あなたのドメイン管理画面(お名前.comやエックスドメインなど)で、ネームサーバーをCloudflareのものに変更します。これにより、すべてのDNS解決がCloudflareを経由するようになり、DDoS防御が有効になります。変更は数時間以内に反映されます。
ステップ2:Cloudflareダッシュボード → セキュリティ → DDoS で設定確認
Cloudflareにログインし、対象のドメインを選択してセキュリティセクションを開きます。「DDoS Protection」にはすでに「自動的に有効」と書かれているはずです。これは無料プランのデフォルト動作です。
ステップ3:セキュリティレベルを「中」に設定
セキュリティレベルのドロップダウンから「中」を選びます。デフォルトは「自動」ですが、本番運用では「中」を推奨します。この設定により、標準的な不正ボットをフィルタリングしながら、正規ユーザーの過度なブロックを回避できます。
ステップ4:APIサーバーのIPアドレスをホワイトリスト登録
以下のルールは「自社のAPIサーバーからのアクセスは全てチャレンジをスキップする」という意味です。自動化システムやAPIリクエストに対してはチャレンジ画面を表示できないため、あらかじめホワイトリストに登録する必要があります。
If (ip.src in {"203.0.113.45" "203.0.113.46"})
Then Allow
このルール設定により、食品製造業の在庫データ自動取得システムや、小売業の発注FAX自動化システムのような定期的なAPI連携が遮断される問題を未然に防ぎます。
ステップ5:初期設定後1週間は毎日ダッシュボードを確認
リアルタイムでアクセスを監視し、不正な遮断がないか確認します。「分析 → セキュリティイベント」でチャレンジされたリクエストの詳細を見ることができます。
よくあるつまずきと対策
設定の過度な厳格化による正規ユーザーの遮断
セキュリティレベルを「最高」に設定したり、複数のファイアウォールルールを重ねたりすることで、正規ユーザーのアクセスまでチャレンジされるようになるケースがあります。実例を挙げると、食品製造業のクライアントで「毎日同じ時間に自動で在庫データを取得するシステムが、突然失敗するようになった」という相談がありました。原因はセキュリティレベルを「高」に上げたことで、そのシステムのAPIリクエストが遮断されていたのです。人間のブラウザアクセスにはチャレンジ認証を表示できますが、APIリクエストに対してはチャレンジを表示できないため、単純に失敗して終わります。対策は、そのシステムのIPアドレスを事前に「ホワイトリスト」に登録し、チャレンジをスキップさせることです。
Cloudflare自体の障害との区別がつかない問題
Cloudflareは世界的インフラであり、稀に障害が発生します。その時「自分のサイトが攻撃されているのか、Cloudflare側が落ちているのか」判断がつかないという悩みが出ます。対策は、Cloudflareの公式ステータスページを日常的に確認することです。障害が発生している場合、このページにリアルタイムで更新されます。さらに、自社のダッシュボード → 分析 → トラフィック で「リクエスト数」「ブロック数」「チャレンジ数」の推移を見ると、異常な増加が一目瞭然です。DDoS攻撃中は通常の100倍以上のリクエストが来るため、グラフの形で攻撃と障害の区別がつきやすくなります。
有料プランへのアップグレード判断

無料プランで対応できるのは「攻撃を止める」という目的までです。有料プランが必要になるのは「詳細な分析」「細かなカスタマイズ」「優先的なサポート」を必要とする場合です。以下の条件に当てはまる場合は、Pro以上へのアップグレードを検討する価値があります:
- 月間PV数が100万を超え、DDoS攻撃を受けた場合の損失が大きい
- オンライン決済やAPI連携が中心で、詳細なセキュリティログが必要
- 複数のドメインやサブドメインを運用し、ルール管理が複雑化している
逆に「とりあえずDDoS対策をしたい」という段階なら、無料プランで十分です。実装して1ヶ月運用してから、本当に有料機能が必要かを判断するのが実務的です。
Cloudflareの本書『Cloudflare活用入門 — 無料でできるWebサイト高速化』で詳しく解説されているように、無料プランの活用次第で、有料プランを契約する前に十分な基盤構築が可能です。
よくある質問
Q1:Cloudflareの無料プランで本当にDDoS攻撃を防げますか?
A1:はい、無料プランでも基本的なDDoS攻撃は防げます。ネットワークレイヤー攻撃は自動遮断され、アプリケーションレイヤー攻撃もマネージドルールで対応されます。実務的には、複数サイトを運用している担当者の報告でも、無料プランのままで実際の攻撃被害が発生していないケースが大半です。
Q2:セキュリティレベルを高く設定すると、正規ユーザーもブロックされますか?
A2:その可能性があります。特にVPN経由のアクセスや海外からのアクセスは、セキュリティレベルが高いと遮断されやすくなります。推奨は「中」で開始し、実運用で問題が出たら調整する段階的アプローチです。
Q3:チャレンジ認証の表示を減らしたいのですが、どうすればよいですか?
A3:セキュリティレベルを「低」にすれば、チャレンジ表示は大きく減ります。ただしその分、ボットトラフィックは増えます。代替案として、信頼できるIPアドレスを事前にホワイトリスト登録し、そこからのアクセスはチャレンジをスキップさせる方法が有効です。
📚 この記事で引用した書籍
Cloudflare活用入門 — 無料でできるWebサイト高速化
著者: 谷口航平 | pububu刊
月額0円で世界最速クラスのインフラを手に入れる。Cloudflareの全機能を地方中小企業の視点で解説。
Amazonで購入 →