画像のロードが多いサイトだったので、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※
mod_evasive の書き換え参考
request_rec の構造体
ap_table と apr_table の違い
0 件のコメント:
コメントを投稿