mod_evasive を導入してみる

このページは約 2分22秒で読めます。

Ping一括配信サービス Pingoo! にPing を送ると、お返しに鬼のような連続アクセスがあるので困る。サービス自体は便利なのになあ。

ということで、Nuclear Elephant: mod_evasive をApache に組み込んで、連続アクセスを遮断するようにして対応してみる。

インストール

Apache 2 でDSO が有効になっているならば、apxs を利用すれば簡単。Vine 3.2 では以下の手順でインストールできました。

$ wget http://www.zdziarski.com/projects/mod_evasive/mod_evasive_1.10.1.tar.gz
$ gtar xvzf mod_evasive_1.10.1.tar.gz 
$ cd mod_evasive_1.10.1.tar.gz 
$ cd mod_evasive
$ sudo /usr/bin/apxs -i -a -c mod_evasive20.c

httpd.conf に追記されるモジュールロード部分のパスが間違っているので、

LoadModule evasive20_module   modules/mod_evasive20.so

と記述。

設定

<IfModule mod_evasive20.c>
  DOSHashTableSize 3097
  DOSPageCount 2
  DOSSiteCount 50
  DOSPageInterval 1
  DOSSiteInterval 1
  DOSBlockingPeriod 10
  DOSLogDir "/var/log/apache2/mod_evasive"
</IfModule>

これで、あるIP アドレスから、1秒間に2回以上の同一ページへのアクセスがあったり、50回以上のリクエストが送られてきたときに、10秒間アクセスを拒否する動作をする、と。

ログを見てみると、トップページやフィードへのアクセスが微妙な間隔を空けて集中しているので、5秒に3回のリクエストがあったら制限するように変更してみよう。

スポンサーリンク

Trackback URL

No Trackback to mod_evasive を導入してみる

Still quiet here.

5 Responses to mod_evasive を導入してみる

  1. しかし自宅サーバーでブログって・・・凄いですね。
    私も実は以前XOOPSでやっていた事がありましたが、なんだかやっている意味が見いだせなくて止めてしまいました。
    ちなみにスキルがあまり無いので時間ばかり喰っていたという事もあります。

    この環境はWordPressですよね。
    魅力的なソフトウェアだと思いますし、ちょっと最近またモゾモゾといじくりたい欲求が出てきてます。

    しかしこういうサーバー管理とかやり始めると、今みたいにライトノベルの感想を書いている時間はなくなるだろうなあ・・・なんて思うのも事実でして、ちょっとジレンマですね。

  2. 数年前に比べれば、自宅でのサーバ運用もかなり敷居が低くなってきたように感じます。最初に外部にサーバを公開したときは、フレッツISDN だったなあ……。
    XOOPS はコミュニティ系の機能がかなり豊富なので、一時期社内のポータルとして使用していたことがあります。逆に多機能すぎるので、使い方によっては戸惑う部分が多いのかもしれませんね。私も深い部分まで理解してるわけではないのでアレですが(^^;
    もともと、このサーバ環境自体が、会社で稼働しているサーバの試験環境の性格も強いので、むしろ管理のために管理してるような気もします(笑) WordPress はCMS として使ってもなかなか便利なソフトウェアなので、長い付き合いになりそうです。

    時間配分は難しいですよねー。私も本を読む時間とコンピュータを触る時間がほとんどで、それ以外になかなか時間が取れません。そこをうまく捻出して何とかするのが、趣味人としての腕の見せ所なのでしょうか(笑)

  3. オフ会Wikiの更新もしてくださいw>ますたぁ

    そういえばお互いLinuxの勉強始めたのは同じころでしたなぁ。
    そのせいでお互い相変わらずVINE使いとw

    ところで、記事の件、iptablesで
    iptables -N WEB-DENY
    iptables -A INPUT -i ppp0 -p tcp –tcp-flags SYN,ACK,FIN,RST RST -j WEB-DENY
    iptables -A FORWARD -i ppp0 -p tcp –tcp-flags SYN,ACK,FIN,RST RST -j WEB-DENY
    iptables -A WEB-DENY -m limit –limit-burst 5 -j RETURN
    iptables -A WEB-DENY -j DROP

    のような感じで実現できませんかね?
    や、まあ、ツール使ったほうが面白いですがw

    #いいかげんiDSソフトくらいいれとかないとなぁ…

  4. スマンw

    iptables はほとんど外部からのフィルタリングにしか使ってないので、DOS 対策の設定などについてはさっぱり知らないんですよねえ。勉強しなければ。サンクス。

    IDS は簡単に導入できればぜひともという感じですが、Linux 触りはじめた頃に、Snort の導入に挫折した記憶からか、どうにも苦手意識ががが(笑)

  5. ありがとうございます非常に参考になりました^^