トップページunix
1001コメント348KB

Apache関連 Part5

■ このスレッドは過去ログ倉庫に格納されています
0001攻撃ヘリAPACHENGNG
HTTP ServerのApacheに関する話題を扱うスレッドです。

前スレ Apache関連 Part4
http://pc.2ch.net/test/read.cgi/unix/1040312647/

Apache関連サイトへのリンクは >>2-5 あたり
0112名無しさん@お腹いっぱい。NGNG
>>111
キミ、なかなか面白いね
0113名無しさん@お腹いっぱい。NGNG
夏の終わりまであと1週間か…
0114名無しさん@お腹いっぱい。NGNG
>103氏は激しく後悔してるんだろーな・・・
ガンガレ!
011599NGNG
はい、がんばります。
0116114NGNG
>115
君にエールを送った訳ではないです
君みたいなのを相手にしてしまった>103氏にエールを送ったのです

勘違いしないでね
0117名無しさん@お腹いっぱい。NGNG
ぶっちゃけ夏厨氏ねと
な、厨房99
0118名無しさん@お腹いっぱい。NGNG
>>115
あからさま過ぎるのは面白くないよ
修行が足りないね
011999NGNG
結論です。犯人は apache の設定ではありませんでした。
インストールして間もないうちに誰かが CGI で ZE****な
ファイルを作成していました。suEXEC は使っていないので
ファイルのユーザは httpd のユーザと同じで気が付き
ませんでした。
なかなか素敵なオチだったと思うのですが、いかがなもの
でしょうか?
0120名無しさん@お腹いっぱい。NGNG
氏ね
0121名無しさん@お腹いっぱい。NGNG
なんか、Mozilla/4.0 (compatible; MSIE 5.5; Windows 98) な UA の人から
執拗に / にアクセスされるんだけど、どうにかする方法きぼんぬ。
0122名無しさん@お腹いっぱい。NGNG
>>121
http://search.luky.org/linux-users.a/msg00469.html
0123名無しさん@お腹いっぱい。NGNG
>>119
氏ね

>>121
どうしたいの?
0124名無しさん@お腹いっぱい。NGNG
対策
・virtualhostでIP直打ちのアクセスを隔離
・icmp echo replyを返さない
・プロバにゴルァする

■レンタルサーバーの新躍動■
http://arigato3.net/
0125名無しさん@お腹いっぱい。NGNG
>>124
氏ね
0126114NGNG
/ といっても、DocumentRootでしょ?
正常なリクエストなんだからほっとけばいいんでない?
0127名無しさん@お腹いっぱい。NGNG
リクエスト出してるのは明らかにvirusだけどね。

>>119
氏ね
0128名無しさん@お腹いっぱい。NGNG
>>127
氏ね
0129名無しさん@お腹いっぱい。NGNG
ちょっと質問があるんですが
apacheのモジュールで、アクセス数が一定量を超えた時とかに
「現在アクセスが多すぎです。暫くたってから再度接続してください」
みたいなページに自動的に飛ばすようなものってありますか?
0130名無しさん@お腹いっぱい。NGNG
>>129
おまえのおかげで俺はちょいと検索して
「なるほど、あれは知ってたけどこういうモジュールもあったのね」
と知識を深めることが出来た。ありがとう。でも教えない。
0131114NGNG
>130様、お慈悲で御座います、教えて下さい。
あなたの為なら、靴でも舐めます。

しかし、これだけは言わせて下さい・・・氏ね。
0132名無しさん@お腹いっぱい。NGNG
>>129
そのアクセス数ってどう定義するのよ?
「回数/一定時間」それとも「接続数/IP」?
0133名無しさん@お腹いっぱい。NGNG
>>131
氏ね
0134名無しさん@お腹いっぱい。NGNG
>>134
氏んだ
0135こどちゃ♪NGNG
ここは氏ねで1000を目指すスレッドですか?
114が香ばしいのには同意だが。
0136名無しさん@お腹いっぱい。NGNG
いや、134が勝手に氏んだからここからはまたマターリ
0137名無しさん@お腹いっぱい。NGNG
現在、RedHat9付属のApache2を使っています。
suexecがデフォルトで起動している事もあり、UserDirの下層はユーザー権限で
動かしたいとは思うのですが、modではユーザー権限の動作はしないので
DocumentRootの下層のみmodを使い、UserDirでは通常スクリプト(?)として
処理したいと考えております。

php.confを見ると、

<Files *.php>
SetOutputFilter PHP
SetInputFilter PHP
LimitRequestBody 524288
</Files>

となっており、拡張子で処理する様になっています。これをDocumentRootの下層のみ
に抑えるには、どうしたら良いのでしょうか?
0138名無しさん@お腹いっぱい。NGNG
<Files *.php> 〜 </Files> を /etc/httpd/conf/httpd.conf の
<Directory /var/www/html> 〜 </Directory> の中に移動。
0139名無しさん@お腹いっぱい。NGNG
>>138
ありがとうございます
おかげさまでDocumentRootの下層のみmodを使う事が出来る様になりました
今度はUserDirの下層でPHPをバイナリ(?)として動かそうとしているのですが、
動いてくれません;
httpd.confに、
「AddHandler cgi-script .php」
「AddHandler php-script .php」
など、あれこれ弄り廻しては再起動してみるのですが。。。。
同じ拡張子をもたせた上で modとバイナリ(?)処理を共存させる事は出来ないのでしょうか?

[index.php]
#!/usr/local/bin/php
<?
print `whoami`;
?>
0140139NGNG
>>139
[user@linux user]$ which php
/usr/bin/php
となったので「#!/usr/local/bin/php」から「#!/usr/bin/php」
にindex.phpの内容を変更しました。

AddHandler cgi-script .phpを追加するとmod_phpも動かなくなるのが
確認できたので、AddHandler php-script .phpで設定中

UserDir下のPHPにアクセスすると以下の表示
You don't have permission to access the requested object. It is either read-protected or not readable by the server.
0141名無しさん@お腹いっぱい。NGNG
参照
http://www.book-i.net/ad07
0142名無しさん@お腹いっぱい。NGNG
>>137
> SetInputFilter PHP

これって、POST で投げられたデータを PHP で処理するってことでしょ。
セキュリティホールじゃん。

/~hoge/ 以下で mod_php を使わないようにするには、
<LocationMatch ^/~>
RemoveOutputFilter .php
AddHandler cgi-script .php
</LocationMatch>
かな。

AddHandler cgi-script のかわりに、
AddHandler php-script .php
Action php-script /cgi-bin/php
とすれば、通常の PHP スクリプトのように、実行パーミッションを立てず、
また #!/usr/bin/php も不要で動くと思う。
事前に php の実行バイナリを /cgi-bin/php にコピーしておくこと。
0143139NGNG
>>142
ありがとうございます^^
おかげさまで、やりたい事が出来ました

「#!/usr/bin/php」が不要なのは大変魅力的ではありますが、phpの実行バイナリを
URLからアクセス出来る場所(かな^^;)に置かなければならないのは気がひけますので、
「AddHandler cgi-script .php」の方を使用させて戴き、その結果 UserDirの
下層はユーザー権限で動作する様になりました。
php.iniの設定でも躓いておりましたが^^;;。

はじめは何の事なのか判らなかったのですが調べてみると、
LimitRequestBody 524288の事をおっしゃられているみたいですね
知らなかったので数字を大きくしておきました
これにはサイズの問題いがいにも、セキュリティホールがあるのですか?
それらの記事は見つける事が出来ませんでした
0144名無しさん@お腹いっぱい。NGNG
そじゃなくて、POST で投げるデータの中に <?php ...?> が含まれていれば、
mod_php がその部分を PHP スクリプトとして実行してしまうってこと。
0145139NGNG
>>144
それは、とっても危険ですね
つまり。。。mod_phpを使うとかなり危険だと^^;
フォームをGETにしとこうかなぁ
0146名無しさん@お腹いっぱい。NGNG
SetInputFilter を使うのが危険なのであって、PHP が危険なのではない。
入力フィルタに使って嬉しいものって、現状では存在しないのでは?

>フォームをGETにしとこうかなぁ
フォームが GET でも、クライアントが POST で投げることは可能。
スクリプトはそれを無視するかもしれないが、InputFilter はその前に処理される。
0147139NGNG
「SetInputFilter PHP」の事だったんですね;
コメントつけてみよ^^;
0148139NGNG
<Files *.php>
SetOutputFilter PHP
#SetInputFilter PHP
LimitRequestBody 524288
</Files>

として再起動してみましたが特にエラーもでなかったので良いのかな^^;
ただ、#しようがしまいが自動で実行されてる気も。。。
0149名無しさん@お腹いっぱい。NGNG
Unix 板もレベルが落ちたなw
こりゃ Linux 板に負けてるって言われてもしかたないわ。
0150名無しさん@お腹いっぱい。NGNG
ちと気になって php のソースを見てみたが、mod_php を入力フィルタとして
使ったときには出力フィルタとは全然違う処理がされるっぽいな。
どう違うかまでは追いきれてないけど。
ならば SetInputFilter PHP でも問題なさそう。スマソ。

# ソース付属のドキュメントにはフィルタとしての使用のことなんて一言も触れてないぞ
0151名無しさん@お腹いっぱい。NGNG
SetInputFilter 使うときは Red Hat のアップデート当てろよ。
入力データが壊れるバグがあるらしい。
0152名無しさん@お腹いっぱい。NGNG
板のレベルが落ちたとしても人としての価値までは落したくないものだw
0153名無しさん@お腹いっぱい。NGNG
サーバ管理者見習いのまた見習いみたいな事やってます。ヘタレです。
どうにも行き詰ってしまったのでお知恵をお貸し下さい。

CGIからPOSTで投げられるデータのサイズをLimitRequestBodyで制限して(今回5Mb)
それより大きいサイズのデータが来たらErrorDocumentでエラーページに飛ばしたい。
という依頼を受けてhttpd.confのVirtualhostタグ内に
LimitRequestBody 5120000
ErrorDocument 413 http://hogehoge.com/err.html
というような設定を追加したのですが、イマイチ期待通りの動きをしてくれません。。
Netscape6〜だと上手く行くのですが、IE6だとエラーページに飛ばないのです。

調べたらLimitRequestBodyとErrorDocument 413の組み合わせは
〜1.3.27のapacheで問題があるらしい事が分かりましたが、
英語ドキュメントの単語拾い読みなのでこれが原因と断言できる自信はありません
もしこれが原因だったとしたら、件のサーバは正に1.3.27を使っているので該当するわけですが、
検証も何も無しでいきなりapacheのバージョンアップはできないので
apacheのバージョンアップという方法は無しです。
虫のいい話ですが、あくまでapacheの設定だけで解決する方法を探しています。

何かいい方法をご存じないでしょうか?
また、別の原因(とその解決策)が考えられるならそれも教えていただけると幸いです。
0154名無しさん@お腹いっぱい。NGNG
>>153
クライアント側からの検証が甘い
先にサーバーなのかIEなのか切り分けレ
0155名無しさん@お腹いっぱい。NGNG
オライリーからapacheハンドブック改訂版でたね!
0156153NGNG
>クライアント側からの検証が甘い
>先にサーバーなのかIEなのか切り分けレ

ログを見るとエラーログ側に「制限より大きいサイズのデータが送られた」
(現在自宅なので正確なメッセージ不明です。すみません)
というようなログが吐かれていて、
通常のログファイルにはリターンコード302が出ているのでエラーでのりダイレクトはされているようです。
ただし、私が見るところを間違えていなければ、何故かデータをPOSTしたCGIに。

IEだとそこで処理が終わってしまうのですが、Netscapeだとその後どうしたことか
ErrorDocumentで設定したURLへのリクエストが出ていて、それでエラーメッセージが表示されています。

以上から、どちらか一方が原因というよりは双方の欠陥が重なった結果のような気がしています。
0157親切な漏人NGNG
>>156
それは大昔の話、IEってエラーページが何バイトか未満だったか時に
自前のエラーページを出すだか真っ白になるだか、そんな地雷を
踏んだよーな気がするのう。試しに短いのと長いの作って試して味噌

>>153
>調べたらLimitRequestBodyとErrorDocument 413の組み合わせは
>〜1.3.27のapacheで問題があるらしい事が分かりましたが、
既知バグはカスタムエラーページを設定していてもそれが出ないで
デフォルトのが返るっていってるだけみたいだけど、ソースはどこよ?

ってゆうか、ネスケでちゃんとカスタムエラーが出てるなら違う話かの。
0158153NGNG
>>157
>踏んだよーな気がするのう。試しに短いのと長いの作って試して味噌

やってみましたが動作は変わりませんでした。

>デフォルトのが返るっていってるだけみたいだけど、ソースはどこよ?

昨日、自分の見たソースの日本語版を発見しました。
ttp://www.jpn.hp.com/upassist/assist2/patchdigest/PHSS_29546.txt
157氏の指摘の既知バグと同じ事のようです。

とりあえず、解決の糸口もつかめないし納期もあるので、
今回はcgiの方で対応してもらうことになりました。
0159名無しさん@お腹いっぱい。NGNG
Apacheのログに↓のようなのが出てたけど、これってウィルス?
それともただのアタックかな?

65.dsl-216-145-29.ccom.net - - [01/Oct/2003:19:09:20 +0900] "GET /scripts/nsiislog.dll" 404 301 "-" "-"
0160名無しさん@お腹いっぱい。NGNG
>>159
http://www.google.com/search?hl=ja&inlang=ja&ie=Shift_JIS&q=GET+%2Fscripts%2Fnsiislog.dll&lr=lang_ja
0161名無しさん@お腹いっぱい。NGNG
Apache2のWebDAVって1024MB以上のファイルってupできないんでしょうか?
0162名無しさん@お腹いっぱい。NGNG
Apache 付属の logresolve って遅くて遅くて泣けてくるんですが、
同様の動作をするフィルタで何かオススメありませんか?
0163名無しさん@お腹いっぱい。NGNG
logresolve がおそいんじゃなくて、dnslookupに時間がかかってるんじゃないの?
こればっかりはしょうがないだろ。
0164名無しさん@お腹いっぱい。NGNG
並列で解決するのがほしい、とかそういう話?
0165名無しさん@お腹いっぱい。NGNG
そのままaccess_logは書き換えてくれないけど、
webalizer付属のwebaresolverは並列でlookupするよね。

lookupするだけだったらdjbtoolのdnsnameが速い。
んでも、何についてきたかは覚えてない。
0166djb watcherNGNG
>>165
> lookupするだけだったらdjbtoolのdnsnameが速い。

ということにしたいのですね。
dnsfilter の間違いでは?
0167名無しさん@お腹いっぱい。NGNG
dnsname - does a reverse lookup for the IP address
ですがなにか?
0168162NGNG
adns とゆーレゾルバライブラリのオマケによさげなものを見つけました。
http://www.chiark.greenend.org.uk/~ian/adns/
Nimda とかによるわけのわからん IP アドレスのいっぱい詰まったログを
5000行ばかり食わせてみたら、

% time ./adnsresfilter < access.log > hoge
3.969u 1.808s 0:13.37 43.0% 70+1338k 0+5io 0pf+0w

# /dev/null にリダイレクトしたらコケたよママン…。

同じことを logresolve にやらせて10分経過しましたが、
まだ3割程度しか終わってない模様。
0169162NGNG
って、よく見てみたら、adnsresfilter の出力けっこういいかげんだな。
名前に変換されてない行がわんさか。タイムアウトが異様に短いのか?
0170名無しさん@お腹いっぱい。NGNG
>>168
ほぉ。
adns を使う ModLogAn なんてのを見つけた。
http://jan.kneschke.de/projects/modlogan/
0171名無しさん@お腹いっぱい。NGNG
perl -pe 's|(^\d+.\d+.\d+.\d+)|gethostbyaddr(pack("C4", split(/\./, $1)), 2)|e;' access_log
じゃだめ?
0172名無しさん@お腹いっぱい。NGNG
だめ。gethostbyaddr()になんにも入ってなかったらどうすんの?
0173162NGNG
>って、よく見てみたら、adnsresfilter の出力けっこういいかげんだな。
>名前に変換されてない行がわんさか。タイムアウトが異様に短いのか?

options: -t<milliseconds>|--timeout <milliseconds>
-w|--wait (always wait for queries to time out or fail)
このあたりの引数を指定したらまともになった。
若干遅くなったけど、それでも十分高速。
逆引きの正引きが一致するかどうかもチェックしてる模様。
logresolve は逆引きしかしないので、こっちの方が精度が高いかも。

っていうか、>>168で実行した logresolve がまだ終わんないんですけど。
0174名無しさん@お腹いっぱい。NGNG
ぐぐったら、 AWStats の logresolvemerge なんてのがあるみたい。どうなんだろ?
0175名無しさん@お腹いっぱい。NGNG
>>167
> dnsname - does a reverse lookup for the IP address
> ですがなにか?

知ったかの人ですか?
0176名無しさん@お腹いっぱい。NGNG
>>175
有意義なことは何も書かないで、荒らすだけだけのdjb厨は
publicfile使っててください。
0177名無しさん@お腹いっぱい。NGNG
こんなところでも F は暴れてるのかよ
0178名無しさん@お腹いっぱい。NGNG
>>176
>>166
0179名無しさん@お腹いっぱい。NGNG
(つд`)モウヤメテヨ、、、
0180名無しさん@お腹いっぱい。NGNG
アパッチのエロい人のウラ話だけど、もう読んだ?
http://www.kyoto-u.com/lounge/pc/html/200310/03100002.html
0181名無しさん@お腹いっぱい。NGNG
>板のレベルが落ちたとしても人としての価値までは落したくないものだw
人としての価値も地に落ちたようだな。
0182名無しさん@お腹いっぱい。NGNG
>>180
ミラー
http://fuba.s7.xrea.com/mirror/1065626317_0.html
0183名無しさん@お腹いっぱい。NGNG
>>182
グッジョブ( ̄ー ̄)
0184名無しさん@お腹いっぱい。NGNG
Mac板のスレもミラーきぼんぬ。
0185名無しさん@お腹いっぱい。NGNG
よそでやれ。
0186名無しさん@お腹いっぱい。NGNG
なんか誤解があるなあ。まあいいんだけど、ここでやる咄じゃないやね。
0187名無しさん@お腹いっぱい。NGNG
>>180,182 見えないんですけど、、
0188名無しさん@お腹いっぱい。NGNG
>>182
でぃ もーると ぐらっつぇ
0189名無しさん@お腹いっぱい。NGNG
apache2.0.47ですが、KeepAliveを細かく制御したいと考えております。
下記の様なことは可能でしょうか?

・ある特定のcgi(perl)だけKeepAliveする。
・ある特定のIPアドレスから繋ぎに来たときだけKeepAliveする。
・VirtualHostによってKeepAliveTimeoutを別々に設定する。

このようなことはできるのでしょうか?なにかmodがあるのでしょうか。
色々検索してみたのですが分かりませんでした。m(__)m
0190名無しさん@お腹いっぱい。NGNG
>>189
まぬあるを見ると、
KeepAlive
Context: server config,virtual host
Module: core

CGIは(細工無しには)論外。IP別は無理。VirtualhostはOK。ってとこじゃないかな。
0191名無しさん@お腹いっぱい。NGNG
換気用変数nokeepaliveつかって
SetEnvIfNoCase Remote_Addr "\.cgi$" nokeepalive
SetEnvIfNoCase Request_URI "\.cgi$" nokeepalive
なんてすることはできる。
ので、正規表現いじくって特定のだけ 許可にできるんでない?
0192名無しさん@お腹いっぱい。NGNG
>>191
それ、検証する方法ってある?
特定のconnection がkeepaliveされてるかどうかを調べる方法。
0193名無しさん@お腹いっぱい。NGNG
http://www.example.com/server-status/
0194189NGNG
>>190-191
ありがとうございます。なんとかできそうですね。
助かりました。試してみます。(__)

>>192-193
serverstatusは便利ですよね。
mrtgでグラフにして日夜チューニングに励んでいます。
0195名無しさん@お腹いっぱい。NGNG
apache2で転送量を制限するモジュールってないんですかねぇ。
0196名無しさん@お腹いっぱい。NGNG
耐障害性をあげるため、webサーバを完全2重化したいのです。
アクセス分散はラウンドロビンを使えばいいと思うのですが、
2重化するにはどんな手を使ったら良いか、ご存じの方いますか?
できればその状態でphpセッションとかも使えるのがベストなんですが。。。
0197名無しさん@お腹いっぱい。NGNG
>>196
共有DISKがあればいいね。
0198名無しさん@お腹いっぱい。NGNG
それだと耐障害性が上がんないね。
セッションもっていうことならF5のBIG-IPは?
0199名無しさん@お腹いっぱい。NGNG
もちろん、共有DISKはDisk-Arryで。
0200名無しさん@お腹いっぱい。NGNG
ついに『モー○ング娘。』のトイレ盗撮ビデオ見つけた♪
TV収録時と全く同じ衣装!ここでサンプル動画も見れたよ♪
http://www.nukix.net/index2.html
0201名無しさん@お腹いっぱい。NGNG
>>196
F5のとかが使えるなら、それに越したことはないと思うけど、
http://shibuya.pm.org/blosxom/techtalks/techtalks_200310_slides_and_reviews.html
の「mod_perl における C10K problem」で紹介されてる Pound ってのはどうか。
Pound http://www.apsis.ch/pound/index.html
0202名無しさん@お腹いっぱい。NGNG
セッションレベルで耐障害性が必要なのって例えばどのような用途?
0203名無しさん@お腹いっぱい。NGNG
E-コマ鯖。B2Bサバ。SSLなんか噛んでるとSSLハードウエアアクセラレーション
ついてるのが欲しくなる。


それにしてもF5ボリすぎ。アメーリカから直接買うと半額以下。
死ねって感じ。
0204名無しさん@お腹いっぱい。NGNG
>>197-203
レスありがとうございます。
参考にします。

>>202
よく考えたら、さすがに正サーバが落ちたときに、副がセッション情報を引き継ぐところまでの
耐障害性は必要ありませんね。
正がぶちんと落ちても、自動で副が変わりを果たすというシステムを作りたいのです。


さすがにF5とかは買えません。
マシンは複数台増やすことができますので、オープンソース系ソフトを使って
なんとかやりくりしたいのですが。。。

201の他に良いアイディアをご存じの方がいましたら教えてください。


0205名無しさん@お腹いっぱい。NGNG
>>204
> 他に良いアイディアをご存じの方がいましたら教えてください。

Apache スレはあなたのサポートセンターではありません
コンサルタントでも雇って氏ね
0206名無しさん@お腹いっぱい。NGNG
>>204
フリーのロードバランサ使うといいYO!
0207名無しさん@お腹いっぱい。NGNG
2.0.48
1.3.29
キタ━(゚∀゚)━( ゚∀)━(  ゚)━(  )━(゚  )━(∀゚ )━(゚∀゚)━!!!!
020811NGNG
可愛くてエッチな美少女アイドルたちがいっぱい♪
画面の向こう側でアナタとの出会いをドキドキしながら待っています!
http://www.bigchat.tv
0209 NGNG
バイナリ待ち
まだでねーよ
0210名無しさん@お腹いっぱい。NGNG
http://www.apache.org/dist/httpd/Announcement.html

1.3.29
リリースしたみたいよ
0211名無しさん@お腹いっぱい。NGNG
basic認証を掛けているディレクトリに、ある特定のUserAgentがアクセスして
来た時は認証を無しにする、と言う設定は可能ですか?

SetEnvIfやRewiteRuleで、RemoteUserを設定すれば良いのかと思いましたが
出来ませんでした。
0212NGNG
mod_ssl 待ち・・・歯がゆい
■ このスレッドは過去ログ倉庫に格納されています