課題:自社ECサイトに海外からの不正アクセスが大量にきてしまう。
解決した課題
- 自社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フックによる一時開放で自動運用できる状態を維持した。