不安と労力を減らすために前回はロードアベレージのチェックとアパッチの反応があるかどうかのスクリプトを作りました。
目的は他のことにも手が回るように、放置プレイの為に、更に守りを固めようという事でDoS攻撃の対策をやろうと思います。
ってかネットワークは共有もんだから、やってた方がいいよね。
過去に転送量とかをコントロールできるmod_bwとも、mod_dosdetectorを使い比べて、その当時はやりたかった事にマッチしていたmod_bwをインストールしてた訳ですが、考えた結果はどっちが実用的かなあというとmod_dosdetectorかなと。
もっとアクセスの多いウェブサイトだったら転送量を絞る事が有効になってくるやろうね。
ほとんど参考サイトのままですが若干違いがあるので、簡単に載せとこうと思います、wgetしてますが、実際はSCPで飛ばしました。
sudo yum install httpd-devel mkdir usr cd /home/account/usr wget http://downloads.sourceforge.net/project/moddosdetector/moddosdetector/version-0.2/mod_dosdetector-0.2.tar.gz?use_mirror=jaist tar -zxvf mod_dosdetector-0.2.tar.gz cd mod_dosdetector-0.2 make sudo make install
httpd.confに自動的にモジュールが組み込まれてました。
sudo vim /etc/httpd/conf.d/dosdetector.conf DoSDetection On DoSPeriod 60 DoSThreshold 20 DoSHardThreshold 30 DoSBanPeriod 7200 DoSTableSize 100 DoSIgnoreContentType ^(image/|application/|text/javascript|text/css)
バーチャルホスト内にRewriteの記述をしました。
<VirtualHost *:80> ※※※※※※※※※ RewriteEngine On RewriteCond %{ENV:SuspectHardDoS} =1 RewriteRule .* - [R=503,L] ErrorDocument 503 "/error/HTTP_SERVICE_UNAVAILABLE.html.var" </VirtualHost>
デフォルトのエラーページにメアドがでちゃうので
sudo vim /var/www/error/include/bottom.html
この中にある2行目くらいにある記述を消しました。
テストしてみたですが今回はちゃんと動きました、前回は設定にミスがあったんでしょう。
ほい、実は最初は上手くいかず、リダイレクトされずロードアベレージがガンガンあがってしまって、スクリプトのメールがちゃんと来ました。
ミスですが、昨日のスクリプトもちゃんと動いてるって事でOK(笑)
でもある程度までになるとhttpdを再起動するように修正というか付け足さないと万一触れない時に大暴走した時に困りますよね。
それはまあ多分なんとかなる。
でも、アパッチのモジュールも自分で作れたら更に色々できるし、もっと好みのものが作れるんだろうなあ。
と、とりあえずはこんな感じです。
まあ昔はネームサーバーにかなりのめり込んでましたが、最近はめっきりウェブサーバー系のネタばっかりになってますね、ですがMySQLも触りたいのですよね。
ワードプレスから触ってるっちゃ、触ってますけど。
SQLとかコマンドとか覚えられないし・・・
とまあ、多分しばらくはウェブサーバー系が続くだろうから、いっその事メールサーバーも運用をやめてGoogleAppsでも使おうかなあなんて思っちゃったりなんか。
運用って言ってもLogwatchでチェックしかしてないですけどね。