Tag Archives: httpd

Apache DoS攻撃対策 – mod_evasive編

ApacheのDoS攻撃対策には、色々なモジュールが用意されてる。 有名どころだと、はてな製のmod_dosdetector、ITProでも紹介されたmod_evasiveだろうか。 これまで、mod_dosdetectorを利用してきたけど、今回はmod_evasiveを導入してみた。 モジュール、mod_evasive サーバ環境は、 CentOS/5.5 (64bit版) , Apache/2.2.15 mod_evasive インストール apxsコマンドでApacheにモジュールを追加するので、mod_so.cが必要。 mod_so.cがない場合は、yumからhttpd-develを事前にいれておく。 # httpd -l core.c prefork.c http_core.c mod_so.c ←これがあること # cd /usr/local/src/ # wget http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz # tar zxvf mod_evasive_1.10.1.tar.gz # cd mod_evasive # vi mod_evasive20.c # define MAILER "/bin/mail … Continue reading

特定URLへ検索botのアクセスを制限する

検索ロボットに巡回させたくないURLがある場合、robots.txtを設置する方法がある。 ただ、robots.txtを無視してアクセスする検索ロボットも少なくない。 確実に拒否するならば、Apache設定ファイルにてdeny指定したほうがよい。 事の発端は、wordpress pluginで自動多言語化(15言語程度)した際に、 検索ロボットが、各言語化した場所(URL)までクロールするため、 サーバにかなりの負荷がかかってしまっていた。 多言語化されたURL(巡回拒否したいURL)は下記の通り。 ex1. http://example.jp/abc/en/*****/ ex2. http://example.jp/abc/de/*****/ http://example.jp/abc//*****/といった形式のため、 LocationMatch で正規表現にてマッチさせる。 $ vi /etc/httpd/conf.d/httpd.conf #UAから検索bot判定する / no_log=ログに残さない SetEnvIf User-Agent "^Baiduspider" no_log bots SetEnvIf User-Agent "^BasicHTTP" no_log bots SetEnvIf User-Agent "^Bookmark" no_log bots SetEnvIf User-Agent "^Gigabot" no_log … Continue reading