mieki256's diary



2004/04/19(月) [n年前の日記]

#1 [linux] バーチャルホストについて勉強中

W32.HLLW.Gaobot.gen からの攻撃(?)をログに残さない設定にするために勉強中。固定IPじゃなきゃ使えない機能なのかと思ったけどそういうわけでもないらしい。

_バーチャルホストによる複数サイトの同時運用
_バーチャルホストの設定
_Re: 不正と思われるアクセス内容について < SetEnvIf でログ振り分けができると書いてある。
_Webサーバログについて < SetEnvIf では対策できないと書いてある。
どっちが正しいのやら。

_SetEnvIf ではログ振り分けできない らしい。やっぱり _バーチャルホスト設定を使う方法 になるのか。消えると困るので引用。
NameVirtualHost *:80
<VirtualHost *:80>
  ServerName dummy
  DocumentRoot /path/to/dummy/dir   # 存在するが空のディレクトリ
  CustomLog /dev/null ""            # アクセスログを捨てる
  ErrorLog /dev/null                # エラーログも捨てる
</VirtualHost>

<VirtualHost *:80>
  ServerName 本来サービスしたいホスト名
    :
</VirtualHost>
以下も関連ページ、だろうか。
_Re: 414 Request-URI Too Long時のSetEnvIfの扱い

_ココ を見たら、
 SetEnvIf Request_Method "(GET)|(POST)|(PUT)|(DELETE)" log
 とすればSEARCH /\x90\は記録されません。

 手っ取り早くていいけど規定以外のを記録するやり方だから、切り分けが難しい。
 SetEnvIf Request_URIで、CordRedやNimda
 SetEnvIf Request_Addrで、ローカルを弾きつつ
 SEARCH /\x90\を弾く方法ないでしょうかねぇ。
とあった。メモ。

_ココ を見たら、
パイプ経由のロギングを利用するのはどうよ?
CustomLog "|/root/sh/logfilter >> /var/log/httpd/access_log" combined env=!nolog
とでもして、/root/sh/logfilterスクリプト内で
"SEARCH /\x90\x02\…"は弾くようにするとか。
あるいは、「異常なログを隔離する」ではなく、
CustomLog /dev/null common
CustomLog /path/to/access_log combined env=REMOTE_ADDR
のように、環境変数が正常にセットされているもののみ隔離するという方法でも
できそうだが、これはうまくいくかどうかは試していない。
<VirtualHost>でhost名を知らないアクセス=ワームを分離する方法ですが、
これだとローカルからのIP直打ちアクセスも分離されてしまうんじゃないでしょうか。
わざわざ串を刺すのはちょっと…。

 IP 直打ちでも Host: にその IP アドレスが入るので、
 プライベートアドレスを ServerAlias に指定すればよし。

NameVirtualHost *
<VirtualHost *>
ServerName dummy.host
CustomLog [隔離ログ]
...
</VirtualHost>
<VirtualHost *>
ServerName xxx.yyy.zzz
ServerAlias localhost 127.0.0.1 192.168.0.1 ...
CustomLog [ほんとのログ]
...
</VirtualHost>

このように設定すれば、Host: がないか、
あってもグローバルの IP アドレスの場合は dummy.host の設定が使われる。
とあった。メモ。

_SEARCHメソッドの不正ログ対策
このアクセスログに記録しないようにするには、
httpd.conf 等に以下のように設定してください。
「HTTPのステータスコードが414ではない時に記録する」という設定です。
詳しくは
_apche のマニュアル
をご覧ください。

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
 ↓
LogFormat "%h %l %u %t \"%!414r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
こんな方法もあるのか。メモ。

とりあえず :

バーチャルホスト設定とやらをしてみた。
NameVirtualHost *:80

<VirtualHost *:80>
    ServerName dummy.host
    DocumentRoot /home/httpd/dummy
    ErrorLog /var/log/httpd/worm_error_log
    TransferLog /var/log/httpd/worm_access_log
</VirtualHost>

<VirtualHost *:80>
    ServerName ホスト名
    ServerAlias localhost 127.0.0.1 192.168.0.*
    DocumentRoot /home/httpd/html
</VirtualHost>

<VirtualHost *:80>
    ServerName LAN内での名前
    ServerAlias localhost 127.0.0.1 192.168.0.*
    DocumentRoot /home/httpd/html
</VirtualHost>
こんな感じでどうか。2004/04/19 23:00 に httpサーバをリスタート。それ以降ログが振り分けられていればOK、かな。

うむ。振り分けられてるみたい。それにしても、どうして plala からしかこないんだろう。

W32.HLLW.Gaobot.gen の攻撃以外のアクセスも振り分けられてるみたいだ。HTTP/1.1 とやらが残ってるから、古いブラウザからのアクセスではなさそうだけど。これはいわゆる踏み台探しとやらのアクセスなんだろうか。うーむ。

この記事へのツッコミ

Re: バーチャルホストについて勉強中 by Harry    2004/05/04 00:57
同じ問題を試行錯誤していた所です。これ以上はないくらい参考になりました。
本当に感謝感激です。
Re: バーチャルホストについて勉強中 by mieki256    2004/05/05 04:26
いや、私は先輩方の公開情報をまとめただけなんで…
私のほうこそ、先人、某スレの住人の皆様に感謝、であります。
この場を借りてお礼を言わせてください。
助かりました。ありがとう>先輩方。

以上です。

過去ログ表示

Prev - 2004/04 - Next
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project