解決した課題

  • 自社ECサイトに海外からの不正アクセスが大量に到来し、サーバー負荷増大・ログ肥大・脆弱性探索のリスクが高まっていた。
  • 本ECは完全に国内専用であり、海外アクセスを許容する業務要件がないため、入口での粗い遮断が有効と判断した。

対応内容

  • 方針:アプリ側での対処(WAF/プラグイン等)以前に、OSレイヤ(firewalld)でアクセス元を大きく制限し、攻撃面積を削減する。
  • 国内IPレンジの許可リスト化:
    • 「国内で利用されるIPレンジ」を大雑把に収集し、許可(allowlist)としてfirewalldに投入した。
    • 国内専用という前提のため、基本は「許可されたレンジ以外は遮断」の設計に寄せた(例外を最小化)。
  • Googleクローラの例外許可:
    • SEO/インデックスへの影響を避けるため、Googleが公開しているクローラ関連のIPレンジを追加で許可した。
    • これにより、国内許可リスト運用でもGoogleのクロールに支障が出ないようにした。
  • Let’s Encrypt(certbot)更新の運用対策:
    • 証明書発行・更新時は外部からの到達が必要になるため、常時遮断のままだと更新が失敗し得る。
    • certbotの更新フック(pre/post)としてスクリプトを作成し、更新処理の直前だけ一時的に遮断を解除し、完了後に即座に元の遮断状態へ戻す仕組みを実装した。
    • これにより、平時は攻撃面を閉じつつ、自動更新の運用性も担保した。
  • 補足:
    • IPレンジの「国内/海外」は厳密性に限界があるため、運用上は例外追加や定期的な見直しが前提となる(過度な断定は避ける)。

結果

  • 海外起点の大量アクセスをOSレイヤで大幅に遮断でき、サーバー負荷とノイズ(ログ肥大・探索アクセス)を抑制した。
  • Googleのクローリングは許可レンジにより継続でき、検索面の副作用を回避した。
  • Let’s Encryptの証明書更新も、pre/postフックによる一時開放で自動運用できる状態を維持した。