Gadget 42:DNS と WAF / セキュリティ

Cloudflare DNS のフル活用と WAF・ボット対策でサイトを守る

DNS と WAF / セキュリティ

Cloudflare にドメインを載せたら「DNS の高度活用」と「WAF による防御」を組みます。

目的

  • DNS レコードを正しく深く使う(プロキシ/のみ/ワイルドカード)
  • WAF・レート制限・ボット対策で攻撃面を減らす

前提条件

  • ドメイン保有と Cloudflare への移管(41
  • 公式: https://developers.cloudflare.com/dns/ / https://developers.cloudflare.com/waf/

手順

1. DNS の基本フル活用

レコード種別 使いどころ
A / AAAA サーバー IP へ向ける(直結時)
CNAME サブドメインを別ホストへ(Tunnel でも使う)
CNAME Flattening apex でも CNAME 相当が使える(Cloudflare の特徴)
ワイルドカード *.example.com を一括で扱いたい場合
dig +short cf.example.com          # 解決確認
dig +short cf.example.com @1.1.1.1 # Cloudflare DNS で確認

2. プロキシ(オレンジ雲)を理解する

  • オレンジ雲 = Cloudflare を経由(CDN・WAF・保護対象)
  • 灰色雲 = 直接接続(DNS only)
  • 公開サービスは基本オレンジ雲。WAF が効きます

3. WAF で守る

Cloudflare ダッシュボード → WAF:

項目 推奨設定
Managed Rules 全有効(既定で十分)
Custom Rules 管理 URL の保護(例: /admin* を特定 IP のみ許可)
Rate Limiting ログイン等へ 1 分あたりの上限
Bot Fight Mode 明らかなボットをブロック
# Custom Rule 例(管理面を閉じる)
URI PATH contains "/admin" and not IP.src in { 自宅のIP } -> Block

よくある失敗

症状 原因 対処
プロキシ ON なのに IP が見える 灰色雲のまま オレンジ雲へ切替
社内だけ繋がらない DNS 解決の膿 @1.1.1.1 で切り分け(29
自分が WAF にブロック IP 許可の見直し不足 特定 IP 許可を Custom Rule に
OAuth のコールバックが塞がる WAF・レート制限と衝突 必要なパスはルールの Allow で明示

確認

次に読む