« FirefoxのキャッシュとJSPのエラー | メイン | Mozilla Japan »
httpd.confでアクセスログの出力制御
2004年10月30日

SetEnvIf Reqest_Method....実はうまく動いていなかったんです。

これまでもアクセスログの取り方をいろいろ考えてやってみてきたのですが(WebDAVを経由した不正アクセス?)、なぜかうまく取れないことがあったんです。
思惑通りに動いてくれないというか...

その原因が今日、ひょんなことからわかりました。
(って、はてなの質問に答えようと必死で検索したからなんですが(笑)。←自分自身の環境設定のときより真剣なんて笑えちゃう!)

SetEnvIf Request_Method "SEARCH" dav
SetEnvIf Request_Method "OPTIONS" dav
SetEnvIf Request_Method "PROPFIND" dav

こんな風にRequest_Methodをひっかけて判別しようとしていたのですが、どーもこれがうまく動作していなかったようです。

原因はわからないのですが、apacheのせい?
Web上では、皆(というか私がみつけたところ2箇所だけ...)、「うまくいかなかった」とおっしゃっていました。

たまたま取れていたwebDAVのログは、その他のRequest_URIや、BrowserMatchで拾えたんだと思います。
当時の私のコメント、
#  思ったようにうまく拾えないのです..泣。
# それでいろいろ追加してしまいました。
っていうのを読むと泣けてきます。(もちろん笑い泣き)

アクセスログの取り方メモ(修正済み)

解決方法なんですが、
SetEnvIf Request_Method "SEARCH" dav
で拾えないなら、「逆からせめてやろうじゃないか!」って感じで、
SetEnvIf Request_Method "(OPTIONS)|(PROPFIND)|(GET)|(POST)|(PUT)|(DELETE)|(HEAD)" !worm
っとしています。

SEARCH以外のアクセスメソッドのときにwormとみなしません。
W32.HLLW.Gaobot.genっていうワームのログ(SEARCH /\x90\x02\xb1\....以下略のすごーく長い長いリクエスト)があって、これをwebDAVのログに入れると邪魔なので。

OPTIONSとPROPFINDは通して、Request_URIかUser_Agentで拾えればいいかなと判断しました。
そして、SEARCHで始まるものはすべてワームとして判断、ワームと同じ扱いにするようにしました。

まだ実際にどう動くかこれから様子を見なければわかりませんが。

たぶんうまく行く予定デス。(自信なし。)

参考
Apache SetEnvIfディレクティブ
Apache CustomLogディレクティブ

投稿者 megu : 2004年10月30日 01:27

コメント

コメントしてください




保存しますか?