ラベル apache の投稿を表示しています。 すべての投稿を表示
ラベル apache の投稿を表示しています。 すべての投稿を表示

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年7月12日木曜日

https接続できるGitサーバを立てるならgit-http-backendを使おう


Gitサーバに接続する方法は3つあります。
・SSH
・git
・https


httpsで接続できるようにするには、WebDAVが一般的だったようですが、
どうにも接続が出来ずにいたら「git-http-backend」を使うといいよという情報を発見!



CentOS5で、Trac と git の連携 より
正確なソースがよくわからないけど、どうやら WebDAV だと、push がサポートされないっぽい。最近は、git-http-backend を使うらしい。なので、こいつを使うことに。


gitリポジトリをホストするのにWebDAV使わないほうがいい より
共有gitリポジトリをホストする方法をググると、WebDAVを使ったやり方が結構出てくる。このやり方には明確なデメリットしか無いにもかかわらず、WebDAVを使ってホストする方法を紹介するページでは触れられていないことが多い。(中略)もうWebDAVを導入してしまって構成変えるのも面倒くさい場合は、Smart HTTPを導入することでWebDAVによるホストの欠点を完全に隠すことができる。速度もssh経由に劣らないし、サーバサイドフックも起動する。



「git-http-backend」を使ったら超カンタンにhttpsなGitサーバが出来上がりましたよっと。

2012年6月14日木曜日

[追記アリ]AWSのELBでHealthyHostCountが0になる


某サービスで時たまELBのヘルスチェックに失敗し、HealthyHostCountが1を下回る事がありました。
AutoScalingの設定もしていますが、in/outの時以外でも発生し、
CPU使用率が30%だったとしても発生しました。

原因がわからず、AutoScalingのしきい値を一時的に変更してみたりもしましたが、一向に改善せず。。。


そういえば、ヘルスチェックの設定項目にtimeoutがあったよな、と言うことで許可をもらい設定を変更しました。
初期値の5から少しあげた10に変更。

変更後1日立ちましたが、これまで日に1回は発生していた問題が発生していません。やった!
このまま問題が解決してくれれば・・・


あと、twitterで教えてもらった事があるので箇条書きにします。

■AWSのELBとApacheを使う際の注意点
・Timeoutは120以上が推奨
・ApacheのKeepAliveは有効にすべし。ELBとの接続効率があがる。

thanks for @iara !


【追記(2012-06-15)】
中の人より、詳しい説明を頂きました。
荒木さんありがとうございます!!

debiancdn : Amazon ELBをうまくつかうには、KeepAliveを有効にしよう。Timeoutは60秒よりだいぶ長くしよう。その背景。