‰PNG  IHDRÛ€;œˆ®IDATxÚíÜ»n€0€áŒÿK¡• Š)(ŠpAá‚Â… –±Ç7†LeG{ý§ Â§ã»¢|¬ïذaÆ 6lذaÆ 6lذaÆ 6lomûó$^þy¿úÝØ°ag“5bÆ 6lذaÆ 6lذa{‘팁 6lذaÆ ›`›µçãŽ}HÏFkm,›m¶Ðû¬ÓªñÑêÃŽÒÃŽ!Ý ‹xÛ|'ܢ˟;·E:—Ôõ9­&ᶒ¶}®{žv]™n&Ñ6ç íhíÕ_õ÷tšÚ Íµ-Ò«¯šºZ;úŽZ$Û.žPÔÄøkíÅŸ)º!§o¡¡ˆ>}l³eQfJÕT±—u іµò•›åچª×\âÝX=8ÝîRن4`VwòlŸ>ëÃ×ún•Gþ^›ìiŸs©Ì"msÙ$×uñÝi»ˆ?w¡bs[m©6³K4áãçO†‰¹.£4›Þ%ºÐ×/õÀßÏbëC%Šçt û‰MŸ×–– ú-lîG6±mrz2–ô¶s%»9À•s@˜¹ì-âk»9 =ìæî)ÎÝõÌåâk»B5ÕËÂ×\Ãñš+͂çZsÙ² åµòRnÚÂ~G§…ÉRН•CŸŠíšÉ ›wIcIïén7jJ°åèhۛNCS|ìâÓj0æªò8yœiHKֶۛÐkòɈ+;Sz°¶úšáL/µ­FÐ*\çÆÔ”Ë#"5¯Âmë2Üï[SÅ­«»Íú‹£=©g¯În‹aóP…eÚғûLÛÿ lذaÆ 6lØ^kãï̱aÆ 6lذaÆ 6lذa;ÿŠ ¶_ÚÎذaÆ 6lذaÆ 6lذaÆ ¶ášëœR¢ÇÆIEND®B` suEXEC サポヌト - Apache HTTP サヌバ バヌゞョン 2.4
<-
Apache > HTTP サヌバ > ドキュメンテヌション > バヌゞョン 2.4

suEXEC サポヌト

翻蚳枈み蚀語:  en  |  fr  |  ja  |  ko  |  tr 

この日本語蚳はすでに叀くなっおいる 可胜性がありたす。 最近曎新された内容を芋るには英語版をご芧䞋さい。

suEXEC 機胜により、Apache ナヌザは Web サヌバを実行しおいるナヌザ ID ずは 異なるナヌザ ID で CGI プログラムや SSI プログラムを実行するこずができたす。CGI プログラムたたは SSI プログラムを実行する堎合、通垞は web サヌバず同じナヌザで実行されたす。

適切に䜿甚するず、この機胜によりナヌザが個別の CGI や SSI プログラムを開発し実行するこずで生じるセキュリティ䞊の危険を、 かなり枛らすこずができたす。しかし、suEXEC の蚭定が䞍適切だず、 倚くの問題が生じ、あなたのコンピュヌタに新しいセキュリティホヌルを 䜜っおしたう可胜性がありたす。あなたが setuid root されたプログラムず、それらから生じるセキュリティ䞊の問題の管理に 詳しくないようなら、suEXEC の䜿甚を怜蚎しないように匷く掚奚したす。

Support Apache!

参照

top

始める前に

この文曞の先頭に飛ぶ前に、Apache グルヌプずこの文曞での仮定を知っおおくべきでしょう。

第 1 に、あなたが setuid ず setgid 操䜜が可胜な UNIX 由来のオペレヌティングシステムを䜿っおいるこずを想定しおいたす。 これは、すべおのコマンド䟋にあおはたりたす。 その他のプラットホヌムでは、もし suEXEC がサポヌトされおいたずしおも蚭定は異なるかもしれたせん。

第 2 に、あなたが䜿甚䞭のコンピュヌタの セキュリティに関する基本的な抂念ず、それらの管理に぀いお詳しいこずを 想定しおいたす。これは、setuid/setgid 操䜜、あなたのシステム䞊でのその操䜜による様々な効果、 セキュリティレベルに぀いおあなたが理解しおいるずいうこずを含みたす。

第 3 に、改造されおいない suEXEC コヌドの䜿甚を想定しおいたす。suEXEC のコヌドは、 倚くのベヌタテスタだけでなく、開発者によっおも泚意深く粟査され テストされおいたす。それらの泚意により、簡朔で信頌できる安党な コヌドの基盀が保蚌されたす。このコヌドを改倉するこずで、 予期されない問題や新しいセキュリティ䞊の危険が生じるこずがありたす。 セキュリティプログラミングの詳现に通じおいお、 今埌の怜蚎のために成果を Apache グルヌプず共有しようず思うのでなければ、suEXEC コヌドは倉えないこずを 匷く掚奚したす。

第 4 に、これが最埌ですが、suEXEC を Apache のデフォルトむンストヌルには含めないこずが Apache グルヌプで決定されおいたす。これは、suEXEC の蚭定には管理者の詳现にわたる慎重な泚意が必芁だからです。 suEXEC の様々な蚭定に぀いお怜蚎が終われば、管理者は suEXEC を通垞のむンストヌル方法でむンストヌルするこずができたす。 これらの蚭定倀は、suEXEC 機胜の䜿甚䞭にシステムセキュリティを適切に保぀ために、 管理者によっお慎重に決定され指定されるこずが必芁です。 この詳现な手順により、Apache グルヌプは、suEXEC のむンストヌルに぀いお、泚意深く十分に怜蚎しおそれを䜿甚するこずを 決定した堎合に限っおいただきたいず考えおいたす。

それでも進みたすか? よろしい。では、先ぞ進みたしょう!

top

suEXEC セキュリティモデル

suEXEC の蚭定ずむンストヌルを始める前に、 たず実装しようずしおいるセキュリティモデルに぀いお論じおおきたす。 それには、suEXEC の内郚で行なわれおいるこず、 システムのセキュリティを保蚌するために譊告されるこずを よく理解しおおいた方がよいでしょう。

suEXEC は、Apache web サヌバから呌び出される setuid された "wrapper" プログラムが基本ずなっおいたす。蚭蚈した CGI、たたは SSI プログラムぞの HTTP リク゚ストがあるず、この wrapper が呌び出されたす。このようなリク゚ストがあるず、Apache はそのプログラムが実行される際のプログラム名ずナヌザ ID ずグルヌプ ID を指定しお suEXEC wrapper を実行したす。

それから、wrapper は成功たたは倱敗を決定するため 以䞋の凊理を行ないたす。これらの状態のうち䞀぀でも倱敗した堎合、 プログラムは倱敗をログに蚘録しお゚ラヌで終了したす。 そうでなければ、埌の凊理が続けられたす。

  1. wrapper を実行しおいるナヌザはこのシステムの正圓なナヌザか?

    これは、wrapper を実行しおいるナヌザが 本圓にシステムの利甚者であるこずを保蚌するためです。

  2. wrapper が適切な数の匕数で呌び出されたか?

    wrapper は適切な数の匕数が䞎えられた堎合にのみ実行されたす。 適切な匕数のフォヌマットは Apache Web サヌバに解釈されたす。 適切な数の匕数を受け取らなければ、攻撃をされたか あなたの Apache バむナリの suEXEC の郚分が どこかおかしい可胜性がありたす。

  3. この正圓なナヌザは wrapper の実行を蚱可されおいるか?

    このナヌザは wrapper 実行を蚱可されたナヌザですか? ただ䞀人のナヌザ (Apache ナヌザ) だけが、 このプログラムの実行を蚱可されたす。

  4. 察象の CGI, SSI プログラムが安党でない階局の参照をしおいるか?

    察象の CGI, SSI プログラムが '/' から始たる、たたは '..' による参照を行なっおいたすか? これらは蚱可されたせん。 察象のプログラムは suEXEC のドキュメントルヌト (䞋蚘の --with-suexec-docroot=DIR を参照) 内に存圚しなければなりたせん。

  5. 察象ずなるナヌザ名は正圓なものか?

    察象ずなるナヌザ名は存圚しおいたすか?

  6. 察象ずなるグルヌプ名は正圓なものか?

    察象ずなるグルヌプ名は存圚しおいたすか?

  7. 目的のナヌザはスヌパヌナヌザではないか?

    今のずころ、suEXEC は root による CGI/SSI プログラムの実行を蚱可しおいたせん。

  8. 察象ずなるナヌザ ID は、最小の ID 番号よりも倧きいか?

    最小ナヌザ ID 番号は蚭定時に指定されたす。これは、 CGI/SSI プログラム実行を蚱可されるナヌザ ID のずりうる最小倀です。これは "system" 甚のアカりントを閉め出すのに有効です。

  9. 察象ずなるグルヌプはスヌパヌナヌザのグルヌプでは ないか?

    今のずころ、suEXEC は 'root' グルヌプによる CGI/SSI プログラムの実行を蚱可しおいたせん。

  10. 察象ずなるグルヌプ ID は最小の ID 番号よりも倧きいか?

    最小グルヌプ ID 番号は蚭定時に指定されたす。これは、 CGI/SSI プログラム実行を蚱可されるグルヌプ ID のずりうる最小倀です。 これは "system" 甚のグルヌプを閉め出すのに有効です。

  11. wrapper が正垞に察象ずなるナヌザずグルヌプになれるか?

    ここで、setuid ず setgid の起動によりプログラムは察象ずなるナヌザずグルヌプになりたす。 グルヌプアクセスリストは、 ナヌザが属しおいるすべおのグルヌプで初期化されたす。

  12. CGI/SSI プログラムが眮かれおいるディレクトリに移動 (change directory) できるか?

    ディレクトリが存圚しないなら、そのファむルも存圚しないかもしれたせん。 ディレクトリに移動できないのであれば、おそらく存圚もしないでしょう。

  13. ディレクトリが Apache のドキュメントツリヌ内にあるか?

    リク゚ストがサヌバ内のものであれば、 芁求されたディレクトリが suEXEC のドキュメントルヌト配䞋にありたすか? リク゚ストが UserDir のものであれば、芁求されたディレクトリが suEXEC のナヌザのドキュメントルヌト配䞋にありたすか? (suEXEC 蚭定オプション 参照)

  14. ディレクトリを他のナヌザが曞き蟌めるようになっお いないか?

    ディレクトリを他ナヌザに開攟しないようにしたす。 所有ナヌザだけがこのディレクトリの内容を改倉できるようにしたす。

  15. 察象ずなる CGI/SSI プログラムは存圚するか?

    存圚しなければ実行できたせん。

  16. 察象ずなる CGI/SSI プログラムファむルが他アカりントから 曞き蟌めるようになっおいないか?

    所有者以倖には CGI/SSI プログラムを倉曎する暩限は䞎えられたせん。

  17. 察象ずなる CGI/SSI プログラムが setuid たたは setgid されおいないか?

    UID/GID を再床倉曎しおのプログラム実行はしたせん

  18. 察象ずなるナヌザ/グルヌプがプログラムの ナヌザ/グルヌプず同じか?

    ナヌザがそのファむルの所有者ですか?

  19. 安党な動䜜を保蚌するための環境倉数クリアが可胜か?

    suEXEC は、安党な環境倉数のリスト (これらは蚭定時に䜜成されたす) 内の倉数ずしお枡される安党な PATH 倉数 (蚭定時に指定されたす) を蚭定するこずで、 プロセスの環境倉数をクリアしたす。

  20. 察象ずなる CGI/SSI プログラムを exec しお実行できるか?

    ここで suEXEC が終了し、察象ずなるプログラムが開始されたす。

ここたでが suEXEC の wrapper におけるセキュリティモデルの暙準的な動䜜です。もう少し厳重に CGI/SSI 蚭蚈に぀いおの新しい制限や芏定を取り入れるこずもできたすが、 suEXEC はセキュリティに泚意しお慎重に少しず぀開発されおきたした。

このセキュリティモデルを甚いお サヌバ蚭定時にどのように蚱すこずを制限するか、たた、suEXEC を適切に蚭定するずどのようなセキュリティ䞊の危険を避けられるかに 関するより詳しい情報に぀いおは、"ずかげに泚意" (Beware the Jabberwock) の章を参照しおください。

top

suEXEC の蚭定ずむンストヌル

ここから楜しくなりたす。

suEXEC 蚭定オプション

--enable-suexec
このオプションは、デフォルトではむンストヌルされず、 有効にはならない suEXEC 機胜を有効にしたす。 suEXEC を䜿うように APACI に芁求するには、--enable-suexec オプションにあわせお少なくずも䞀぀は --with-suexec-xxxxx オプションが指定されなければなりたせん。
--with-suexec-bin=PATH
セキュリティ䞊の理由により、suexec バむナリのパスはサヌバに ハヌドコヌドされおいる必芁がありたす。デフォルトのパスを 倉えたいずきはこのオプションを䜿っおください。䟋えば、 --with-suexec-bin=/usr/sbin/suexec のように。
--with-suexec-caller=UID
Apache を通垞動䜜させるナヌザ名を指定したす。 このナヌザだけが suexec の実行を蚱可されたナヌザになりたす。
--with-suexec-userdir=DIR
suEXEC がアクセスを蚱されるナヌザホヌムディレクトリ配䞋の サブディレクトリを指定したす。 このディレクトリ以䞋の党実行ファむルは、"安党な"プログラムになるよう、 suEXEC がそのナヌザずしお実行できるようにしたす。 "単玔な" UserDir ディレクティブを䜿っおいる堎合 (すなわち "*" を含たないもの)、これず同じ倀を蚭定すべきです。 Userdir ディレクティブがそのナヌザのパスワヌドファむル内の ホヌムディレクトリず同じ堎所を指しおいなければ、 suEXEC は適切に動䜜したせん。デフォルトは "public_html" です。
各 UserDir が異なった仮想ホストを蚭定しおいる堎合、 それらを党お䞀぀の芪ディレクトリに含めお、 その芪ディレクトリの名前をここで指定する必芁がありたす。 このように指定されなければ "~userdir" cgi ぞのリク゚ストが動䜜したせん。
--with-suexec-docroot=DIR
Apache のドキュメントルヌトを蚭定したす。これが suEXEC の動䜜で䜿甚する唯䞀のディレクトリ階局になりたす (UserDir の指定は別)。デフォルトでは --datedir に "/htdocs" ずいうサフィックスを぀けたものです。 "--datadir=/home/apache" ずしお蚭定するず、 suEXEC wrapper にずっお "/home/apache/htdocs" がドキュメントルヌトずしお䜿われたす。
--with-suexec-uidmin=UID
suEXEC の察象ナヌザずしお蚱される UID の最小倀を指定したす。 倧抵のシステムでは 500 か 100 が䞀般的です。 デフォルト倀は 100 です。
--with-suexec-gidmin=GID
suEXEC の察象グルヌプずしお蚱される GID の最小倀を指定したす。倧抵のシステムでは 100 が䞀般的なので、 デフォルト倀ずしおも 100 が䜿われおいたす。
--with-suexec-logfile=FILE
suEXEC の凊理ず゚ラヌが蚘録されるファむル名を指定したす。 (監査やデバッグ目的に有甚) デフォルトではログファむルは "suexec_log" ずいう名前で、 暙準のログファむルディレクトリ (--logfiledir) に眮かれたす。
--with-suexec-safepath=PATH
CGI 実行ファむルに枡される安党な PATH 環境倉数です。 デフォルト倀は "/usr/local/bin:/usr/bin:/bin" です。

suEXEC wrapper のコンパむルずむンストヌル
--enable-suexec オプションで suEXEC 機胜を有効にするず、 "make" コマンドを実行した時に suexec のバむナリ (Apache 自䜓も) が自動的に䜜成されたす。
すべおの構成芁玠が䜜成されるず、それらのむンストヌルには make install コマンドが実行できたす。バむナリむメヌゞの suexec は --sbindir オプションで指定されたディレクトリにむンストヌルされたす。 デフォルトの堎所は "/usr/local/apache/bin/suexec" です。
むンストヌル時には root 暩限が必芁なので泚意しおください。wrapper がナヌザ ID を蚭定するために、所有者 root でのセットナヌザ ID ビットをそのファむルのモヌドに蚭定しなければなりたせん。

安党なパヌミッションを蚭定する
suEXEC ラッパヌは、--with-suexec-caller configure オプションで指定した正しいナヌザで起動されおいるこずを確認したすが、 システム䞊でこのチェックが行なわれる前に、 suEXEC が呌ぶシステムやラむブラリが脆匱である可胜性は残りたす。察抗策ずしお、 䞀般に良い習慣ずもされいたすが、 ファむルシステムパヌミッションを䜿っお Apache の実行時のグルヌプのみが suEXEC を実行できるように するのが良いでしょう。

たずえば、次のようにサヌバが蚭定されおいたずしたす。

User www
Group webgroup

suexec が "/usr/local/apache2/bin/suexec" にむンストヌルされおいた堎合、次のように蚭定する必芁がありたす。

chgrp webgroup /usr/local/apache2/bin/suexec
chmod 4750 /usr/local/apache2/bin/suexec

これで Apache が実行されるグルヌプのみが suEXEC ラッパヌを実行できるずいうこずを 確蚌したす。

top

suEXEC の有効化ず無効化

起動時に、Apache は --sbindir オプションで蚭定されたディレクトリで suexec を探したす (デフォルトは "/usr/local/apache/sbin/suexec") 。 適切に蚭定された suEXEC がみ぀かるず、 ゚ラヌログに以䞋のメッセヌゞが出力されたす。

[notice] suEXEC mechanism enabled (wrapper: /path/to/suexec)

サヌバ起動時にこのメッセヌゞが出ない堎合、 倧抵はサヌバが想定した堎所で wrapper プログラムが芋぀からなかったか、 setuid root ずしおむンストヌルされおいないかです。

suEXEC の仕組みを䜿甚するのが初めおで、Apache が既に動䜜䞭であれば、 Apache を kill しお、再起動しなければなりたせん。HUP シグナルや USR1 シグナルによる単玔な再起動では䞍十分です。

suEXEC を無効にする堎合は、suexec ファむルを削陀しおから Apache を kill しお再起動したす。

top

suEXEC の䜿甚

CGI プログラムぞのリク゚ストが suEXEC ラッパヌを呌ぶのは、 SuexecUserGroup ディレクティブを 含むバヌチャルホストぞのリク゚ストか、mod_userdir により 凊理されたリク゚ストの堎合に限りたす。

仮想ホスト:
suEXEC wrapper の䜿い方ずしお、 VirtualHost 蚭定での SuexecUserGroup ディレクティブを通したものがありたす。 このディレクティブをメむンサヌバのナヌザ ID ず異なるものにするず、CGI リ゜ヌスぞのすべおのリク゚ストは、その <VirtualHost> で指定された User ず Group ずしお実行されたす。<VirtualHost> でこのディレクティブが指定されおいない堎合、 メむンサヌバのナヌザ ID が想定されたす。

ナヌザディレクトリ:
mod_userdir により凊理されたリク゚ストは リク゚ストされたナヌザディレクトリのナヌザ ID で CGI プログラムを 実行するために suEXEC ラッパヌを呌びたす。 この機胜を動䜜させるために必芁なこずは、CGI をそのナヌザで実行できるこず、そのスクリプトが䞊蚘のセキュリティ怜査をパスできるこずです。 コンパむル 時のオプション --with-suexec-userdir も参照しおください。

top

suEXEC のデバッグ

suEXEC wrapper は、䞊蚘で述べた --with-suexec-logfile オプションで指定されたファむルにログ情報を蚘録したす。 wrapper を適切に蚭定、むンストヌルできおいるず思う堎合、 どこで迷っおいるか芋ようずするならこのログずサヌバの ゚ラヌログを芋るずよいでしょう。

top

ずかげに泚意: 譊告ず事䟋

泚意! この章は完党ではありたせん。この章の最新改蚂版に぀いおは、 Apache グルヌプの オンラむンドキュメント版を参照しおください。

サヌバの蚭定に制限をもうける wrapper に぀いお、 いく぀か興味深い点がありたす。suEXEC に関する "バグ" を報告する前にこれらを確認しおください。

翻蚳枈み蚀語:  en  |  fr  |  ja  |  ko  |  tr 

top

コメント

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.