• 締切済み

apacheでCGIの置き場所

apacheでwebサーバを運用管理しているのですが、 利用ユーザから「自分のホーム配下でcgiを動かしたい」と要望が来ました。 現在cgiはユーザホームディレクトリとは別に「/xxx/cgi-bin」を設定して、 管理者がファイルの書き込みを行うようににしています。 一般的なセキュリティの考えとして各ユーザのホーム配下にcgiの実行権限をつけるのは問題ないのでしょうか? そのユーザ自信のミスによるセキュリティホールというよりは、 外部からのアタック等の問題を重視したいです。 そのユーザへの説明が必要なので、できればこれについて記載してあるサイトがあったらあわせて教えてください。

みんなの回答

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.5

> 結局はcgiフォルダに対する権限の設定ということになるのではないでしょうか? まあ、適切に設定すれば、問題は無いでしょうね。

noname#41382
質問者

お礼

何度もありがとうございました。 こちらの管理を強化するということで、cgiの置き場については特に触れないようにすることにしました。

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.4

> DocumentRoot配下ならファイル権限をユーザが自由に設定できるので > このような問題が発生する可能性がある ということですね。 ちょっと、ちがうような。 要するに、DocumentRoot配下なら、普通にURL指定するだけで、内容を取得できるのが問題。 ユーザーだけじゃなく、管理者のミスが、事故につながります。 > ということはcgi権限のディレクトリをDocumentRoot配下からはずしても > ユーザがファイル権限を操作することが出来るのであれば意味がないということでしょうか? > 逆にDocumentoRoot配下でもcgi実行権のディレクトリだけはユーザの権限を外しておけば問題ない? > (どちらの場合も、結局は管理者がcgiを設置するという話になるのかな?) ユーザーが、どうchmodしようとも、CGIプログラムは、httpdのuidで動くので、例えば、別ユーザーの.htpasswdにアクセスできちゃうのが問題。 結局のところ、ユーザー設置CGIについて、管理者側でチェックする手間が大変で、責任が負えない、というのが一番の問題。 もちろん、管理者が泣きながら、作業すれば良いんですけどね。 ユーザーのために、管理者は存在するのだから。 > で、suEXECは以下のページで怪しい感じにかかれていたのでちょっと考ています。 > どうなんでしょうか? 実際に実験してみる事を、おすすめします。

noname#41382
質問者

補足

何度も解説ありがとうございます。大変助かります! でまたまた質問なのですが >要するに、DocumentRoot配下なら、普通にURL指定するだけで、内容を取得できるのが問題。 > http://..../user/cgi-bin/ と http://..../cgi-bin/ という違いでいいですか? cgiを他においても見られるという点ではかわならいような気がするのですが。 通常cgi-binディレクトリの在処はわからないし、ソースを見ればどちらもわかるということで。 結局はcgiフォルダに対する権限の設定ということになるのではないでしょうか?

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.3

> DocumentRoot配下にcgi実行権限をつけた場合に起こりえる問題が知りたいです。 DocRoot配下にあると、CGIプログラム用のデータファイルや、(実行権限をつけ忘れた)CGIプログラムの中身が、さらされる恐れがあります。 それで顧客データが流出したって、話を聞いた事があるような。

noname#41382
質問者

補足

追加のアドバイスありがとうございました。 DocumentRoot配下ならファイル権限をユーザが自由に設定できるので このような問題が発生する可能性がある ということですね。 ということはcgi権限のディレクトリをDocumentRoot配下からはずしても ユーザがファイル権限を操作することが出来るのであれば意味がないということでしょうか? 逆にDocumentoRoot配下でもcgi実行権のディレクトリだけはユーザの権限を外しておけば問題ない? (どちらの場合も、結局は管理者がcgiを設置するという話になるのかな?) で、suEXECは以下のページで怪しい感じにかかれていたのでちょっと考ています。 http://www.alt-interface.com/newb/UNIX/arc/3_34.html どうなんでしょうか?

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.2

一般的なセキュリティの考えとしては、問題アリでしょう。 > そのユーザ自信のミスによるセキュリティホールというよりは、 > 外部からのアタック等の問題を重視したいです。 結局、ユーザー自身のミスが、悪意あるユーザーにつけ込まれる隙を作るのですから。 suEXECやchroot、jailなど、他ユーザーを保護する環境を、管理側で整える必要があるでしょう。

noname#41382
質問者

補足

アドバイスありがとうございます! 結局のところ、例えばsuEXECで実行権限の管理さえできていれば cgiの実行権のついたディレクトリはどこでも関係ないということでしょうか? #1の補足にも記載しましたが、実行権限についてはいろいろと見つかったのですが、 この件について触れているものが見つかりませんでした。 DocumentRoot配下にcgi実行権限をつけた場合に起こりえる問題が知りたいです。 見つからないということはこの考え自体間違っているのでしょうか? 何となく利用ユーザが管理するhtmlドキュメントが置かれているディレクトリ配下に cgiの実行権のついたディレクトリがあるのはあまりよろしくないような気がするのは、気分的なものだけでしょうか?^ ^;

回答No.1

こんにちは。 Apache\cgi-binに置けばよいです。なお、httpd.confファイルの編集が必要です。Apache2.0とApache1.3で方法が違うのかな? 下記URLを参考にしてください。 http://www2j.biglobe.ne.jp/~apollo/server/server.html http://www.futomi.com/lecture/apache/index.html 又、Googleで、Apache perl と検索したら、たくさん出てきました。 がんばってください。

参考URL:
http://www2j.biglobe.ne.jp/~apollo/server/server.html
noname#41382
質問者

補足

ご回答ありがとうございました。 すみません。cgiを動かしたいということではなく、 DirectoryのOptionsで「ExecCGI」権限を与えるディレクトリの置き場所についてです。 それが、例えばDocumetoRoot配下より、別のディレクトリにしたほうが良いといったような。 セキュリティ的に調べてみてもapacheの実行ユーザについてがほとんどで、 この件についての説明が見つかりませんでした。 #ということは関係ないのかな?

関連するQ&A