mod_evasiveの調整

  • 投稿日:
  • by
  • カテゴリ:
  • ハッシュタグ:

今日、出先からMTの記事を編集しようとしたら、「403 Forbidden」が表示されました。 それまでは何の問題もなく編集できていたのに、何で? まさかMySQLをInnoDBに変更した影響じゃないよね?

しばらく放っておいてもう一度チャレンジしたら、今度はちゃんと書き込みできました。 なんだか釈然としないですが、とりあえず書き込めたからまあいいかと。


ところで、ここ数日ですが DoS攻撃除けの mod_evasive が、頻繁にメールを送ってくるようになりました(といっても1日10件程度)。 急にアクセス数が増えた訳でもないのになんでだろう?

ググってみると、DoS攻撃を検出すると mod_evasive は「403 Forbidden」を返すんだとか。 ってことは、さっきの「403」は mod_evasive にハネられたってこと?

Apacheに対するサービス拒否攻撃を回避する方法 - 最新Windowsセキュリティ事情:ITpro

全体的に見ると,mod_evasiveをApacheに追加したのは妥当であるように思える。実際に,一部の侵入者を撃退する助けになってくれるからだ。だが設定を慎重に行わないと,Webページの先読み込みをどんどん行うブラウザやプロキシ・サーバーを使うような,比較的悪意のないユーザーまでブロックしてしまう可能性がある(こういった先読みは通常,ブラウジング体験を向上させたり,全体的なブラウジング速度を高めたりするのに使われる)。従って,設定を慎重に行い,(メール送信機能を使う場合は)mod_evasiveが送信する電子メールをきちんと監視して,設定が厳しすぎないかどうか判断する必要がある。

mod_evasive の設定は、以下のようにしていました。

<IfModule mod_evasive20.c>
    DOSHashTableSize 3097
    DOSPageCount 3
    DOSSiteCount 50
    DOSPageInterval 2
    DOSSiteInterval 1
    DOSBlockingPeriod 60
    DOSWhitelist 127.0.0.1 192.168.0.*
    DOSLogDir "/var/log"
    DOSEmailNotify  (メールアドレス)
</IfModule>

この設定では2秒間(DOSPageInterval 2)に同じページを3回(DOSPageCount 3)参照するか、1秒間(DOSSiteInterval)に同じサイトへのリクエストが50回(DOSSiteCount 50)を超えると、DoS攻撃と認定して60秒間(DOSBlockingPeriod 60)アクセスを禁止します。

とりあえず、DOSPageCount を 3 → 5 に、DOSSiteCount を 50 → 70 に緩和してみました。
あと、出先のIPアドレスを、DOSWhitelist に登録しました。
これでしばらく様子をみることにします。