2012年8月29日水曜日

mod_evasive で画像をチェックしない方法

セキュリティ対策として、mod_evasiveを入れたのはちょっと前。
画像のロードが多いサイトだったので、DoSアタックと勘違いされてアラートメールがぞくぞくと…

通常、mod_evasiveはIPアドレスしかwhitelistに登録できません。
そこで、コンパイル前のソースを書き換えて特定の条件ではスルーするようにします。



------------------------------



[mod_evasive20.c]

- #define MAILER  "/bin/mail %s"
+ #define MAILER  "/bin/mail -s 'DoS Alert! from your-service.com' %s"


static int access_checker(request_rec *r)
{
int ret = OK;

+    /* IGNORE_DOS */
+    if (apr_table_get(r->subprocess_env, "IGNORE_DOS") != NULL)
+      return OK;


※apr_table_get(r->subprocess_env, "IGNORE_DOS") でIGNORE_DOSが有効になっているか確認します。
※apache1.3 を使っている方はいないと思いますが、もし使ってたらap_table_getに直してください。
------------------------------

[modevasive.conf]

+ SetEnvIf Request_URI "\.(gif|jpg|png)$" IGNORE_DOS


※URIに特定の拡張子が含まれていたらIGNORE_DOSが有効になります。

------------------------------


なお、mod_evasive20.c を書き換えた後は、apxsでコンパイルしてApacheの再起動を行います。

# apxs -ica mod_evasive20.c
# apachectl configtest
# apachectl graceful


以上!



※参考URL※

ap_table と apr_table の違い



2012年8月10日金曜日

Fedora8 で php をインストール

今時Fedora8は無いだろうとあちこちから言われそうですが…

たまたま昔テスト用の環境に作ったものが残っていたので使っていましたが、phpのバージョンが古くエラーが出てしまいました。
OSのバージョンアップでも良いのですが、phpだけアップグレード出来ればと思いまして…(^_^;)


phpはyumでインストールしていました。
なのでyumで5.3をインストールしようとしましたがバージョンがありません。(当たり前
remiを使ってインストールするようです。



wget http://rpms.famillecollet.com/remi-release-8.rpm
rpm -ivh remi-release-8.rpm
yum install --enablerepo remi php

2012年8月7日火曜日

ec2-bundle-vol で鍵ファイルが削除される


ec2 tools を更新したインスタンスでAMIを取得し、そのAMIを起動した時の事です。
元のインスタンスでは動いていた ec2 tools のコマンドでエラーが発生する(;´Д`)
理由は、秘密鍵等々が無いから。



どうやらver.1.4.0.0以降ではこれらのファイルが削除されるのがデフォルトのようです。
以下、「--manual」より。

The recursive copying process copies directories from the volume into the image.
The special directories:

- '/dev'
- '/media'
- '/mnt'
- '/proc'
- '/sys'

are always excluded.

Files matching the following regular expressions:

- '*/#*#'
- '*/.#*'
- '*.sw'
- '*.swo'
- '*.swp'
- '*~'
- '*.pem'
- '*.priv'
- '*id_rsa*'
- '*id_dsa*'
- '*.gpg'
- '*.jks'
- '*/.ssh/authorized_keys'
- '*/.bash_history'

are excluded by default on Linux. Individual files that match these patterns may be
included by specifying the '--include' option.



ちなみに、これまで使っていたver.1.3-53773では削除されません。
マニュアルにも載っていません。うぐぅ…
仕方がないので、必要なものだけは「--include」で指定しました。