2004/04/19(月) [n年前の日記]
#1 [linux] バーチャルホストについて勉強中
W32.HLLW.Gaobot.gen からの攻撃(?)をログに残さない設定にするために勉強中。固定IPじゃなきゃ使えない機能なのかと思ったけどそういうわけでもないらしい。
_バーチャルホストによる複数サイトの同時運用
_バーチャルホストの設定
_Re: 不正と思われるアクセス内容について < SetEnvIf でログ振り分けができると書いてある。
_Webサーバログについて < SetEnvIf では対策できないと書いてある。
どっちが正しいのやら。
_SetEnvIf ではログ振り分けできない らしい。やっぱり _バーチャルホスト設定を使う方法 になるのか。消えると困るので引用。
_Re: 414 Request-URI Too Long時のSetEnvIfの扱い
_ココ を見たら、
_ココ を見たら、
_SEARCHメソッドの不正ログ対策
_バーチャルホストによる複数サイトの同時運用
_バーチャルホストの設定
_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こんな方法もあるのか。メモ。
◎ とりあえず :
バーチャルホスト設定とやらをしてみた。
うむ。振り分けられてるみたい。それにしても、どうして plala からしかこないんだろう。
W32.HLLW.Gaobot.gen の攻撃以外のアクセスも振り分けられてるみたいだ。HTTP/1.1 とやらが残ってるから、古いブラウザからのアクセスではなさそうだけど。これはいわゆる踏み台探しとやらのアクセスなんだろうか。うーむ。
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 とやらが残ってるから、古いブラウザからのアクセスではなさそうだけど。これはいわゆる踏み台探しとやらのアクセスなんだろうか。うーむ。
この記事へのツッコミ
[ ツッコミを読む(2) | ツッコむ ]
以上です。
本当に感謝感激です。
私のほうこそ、先人、某スレの住人の皆様に感謝、であります。
この場を借りてお礼を言わせてください。
助かりました。ありがとう>先輩方。