AWS WAFのratebaseやShield, Route53, Fail2banを利用したり、スケーリング対応などなど・・・色々とDoSへの対応はあると思いますが、今回はApacheのDoS対策モジュールを利用します。

mod_dosdetectorの大きな動作はリクエスト数の閾値を超えたら環境変数に値をセットし、その変数を見てmod_rewriteに処理させるといったものなので、既存構成に大きな影響を与えることなくカジュアルに対応出来ます。

 

環境

  • Amazon Linux2
  • ALB配下のEC2

 

Apache DoS対策の流れ

  1. mod_dosdetectorでDoSを検知したら環境変数にセットする
  2. mod_rewriteで対象IPに対してルールを適用する
    503を返したり、リダイレクトでどっかに飛ばしたり・・・!

 

mod_dosdetectorをインストールしよう

 

 

 

 

コマンドの場所を確認

 

コマンドが/usr/sbin/apxsでないとインストールでこけるからリンクを張る

 

インストール

 

ログにALB配下でクライアントのIPを取ってくるように設定

 

 

mod_dosdetectorの設定

今回は下記となるように設定

  • 5秒間100リクエストでDoS判定
  • DoSと判定したら503を返す

 

 

反映を行いましょ~!

 

WEBサーバ当てにふわっと迷惑にならない程度にF5攻撃でも行います。

60リクエストを超えると503が返されました。

正常動作していますね。

 

ログを見る

 

お疲れ様です。

 

金広優
この記事を書いた人:金広優

システムガーディアン爆弾処理班。アクセス負荷対策やNginxへの移行案件が多いこの頃。IBM Cloud、AWSなどを扱ったクラウド、オフィスや商業施設のネットワーク構築案件が多くなっています。