• 締切済み

サーバーでのCGI起動時間等の制限方法

サーバーを運用しているのですが、以下のように設定するには、どのようにしたら良いのでしょうか。 1、CPUの割り当て時間を制限する。(一定時間でタイムアウトする。) 2、1つのスクリプトが実行中に使用できるメモリ量を制限する。 これらは、おそらく「Cシェル」の「limit」コマンドで行うものとの認識を持っているのですが、それでよろしいでしょうか。 Apacheの設定に「RLimit~」というディレクティブがありますが、これらはApache本体の制限で、ユーザーごとの実行制限ではない、という認識を持っているのですが、それで間違いないでしょうか。 3、1ユーザーが、一度に起動できるCGIの数を1つにする。 これは、どのように設定すれば良いのでしょうか。 ユーザーの認識が問題となるので、「suEXEC」となにか関係があるのでしょうか。 よろしくお願いします。

  • ss963
  • お礼率10% (2/20)

みんなの回答

回答No.1

あんまり詳しくないのですが、RLimit* の解釈はだいたいそういう 認識でいいんだと思います。CGIごとに制限するには、そのCGIのプ ログラム側でなにかをしてやる必要がありそうです。 perl で直接いじれたらいいんですが、どうも具合のいいのはなさ そうですね。(syscall を呼べばできなくはなさそうですけど) csh か、zsh, bash あたりを一度呼んでから、その中で目的のCGI プログラムを起動することになりそうです。 あと、ユーザごとのCGI数の制限に関しては、なにを1ユーザとする かですね。クライアントのIPアドレス1個が1ユーザなのだとすると、 IPアドレスごとにロックをかけて、自分が2ユーザ目以降なら停止 するとか終了するとかするように作ることになると思います。 直接的な解決につながるかはわかりませんが、apache関連のメーリ ングリストのアーカイブから参考になりそうなのを拾いましたので、 たどっていってみてください。 http://apacheml.ecc.u-tokyo.ac.jp/ml/msg00380.html http://apacheml.ecc.u-tokyo.ac.jp/ml/msg05329.html

関連するQ&A

  • CGI Busy の設定方法

    サーバー(redhat-linux6.2,apache1.3.17[suexec-enable])で、以下のような制限を設定をしたいのですが、どのような設定をすればよいのでしょうか。 -------------------------------------------------- 当サーバーでは、お客様ごとに同時に実行できるCGIの数を制限しております。(現在、5つまで) このメッセージはお客様のCGIスクリプトにアクセスが集中した場合に表示されます。表示された場合は、しばらく時間をおいてから再度アクセスしてください。 -------------------------------------------------- 実際、6人以上が一人のユーザーのCGIを同時に実行すると、以下のように表示がされます。 CGI Busy This server is busy. Please try later. サーバが込み合っています。 しばらく待ってから実行してください。

  • CGI (suEXEC)について!

    CGI (suEXEC)についての質問です! OS: Red Hat Linux 7.3 httpd: Apache 1.3.28 Apacheの設定ファイル httpd.conf 内で設定してある DocumentRoot のディレクトリ内にある CGIを”パーミッション700の場合にのみ”動作するようにする方法はありますでしょうか? suEXECを使用してユーザディレクトリ内のCGIは700で動くようにできたのですが、 httpd.conf 内で設定してある DocumentRoot のディレクトリ内では700だと動かない為。 また、suEXECというものは、ユーザーディレクトリのみに適応されるものなのでしょうか? ご存知の方いらっしゃいましたら、アドバイス等を宜しくお願いします。

  • CGIを実行した時に作ったファイルの所有者に関して

    Proftpdとapacheを用いてWebサーバを運用していますがCGIやPHPによって作られたファイルの所有者がapacheになってしまいFTPからファイルが削除できません。 hoge.hoge.comはhogeでCGIを実行し aa.hoge.comはaaでCGIを実行することはできないのでしょうか? バーチャルホストでCGIを実行するときは何か別に記述が必要なのでしょうか? ちなみにFTPDは User   nobody Group   nobody apacheは User apache Group apache このように設定してあります。

  • CGI版PHPについて

    一般的なPerlのCGIが実行可能な状態のApache(Linux上)にCGI版のPHPを追加インストールした場合、ApacheはスクリプトがPerlであるかPHPであるかの違いをどう認識するのでしょうか? 方法1 スクリプトはどちらも*.cgiとして作成し、スクリプト内先頭行のperlやphpへのパスの記述で認識する 方法2 perl→*.cgi php→*.php のようにhttpd.confや.htaccessで設定する 初心者のためこの二つくらいしか思い浮かばないのですが、どちらかが正解だったりしますか??

    • ベストアンサー
    • PHP
  • CGIのアクセス制限について

    環境は windowsXPHome SP3 / Apache2.2 / ActivePerl5 / (MySQLを使う予定) です。 htdocs\index.html htdocs\ddd\aaa.cgi htdocs\ddd\bbb.cgi のようなディレクトリ構成で、httpd.confは、htdocs以下を公開する設定になっていて <Directory "D:\Program Files\Apache Software Foundation\Apache2.2\htdocs\ddd"> AddHandler cgi-script .cgi Options +ExecCGI </Directory> を指定しました。 これを自宅サーバーとして公開する場合、外部からはindex.htmlにアクセスできるようにして、 aaa.cgiやbbb.cgiはindex.htmlからリンクやformのactionから呼び出されてからしか実行できない (直接cgiのurlを指定して開けない)ようにするにはどうすればいいでしょうか? よろしくお願いします。

    • ベストアンサー
    • CGI
  • Windows+Apache2.2で別ユーザー実行

    こんにちは。 Windows2000+Apache2.2でCGIを動かしています。 CGIの言語にはActivePerlを使っています。 CGIが実行される際のファイルやディレクトリのアクセスに制限をかけたいのですが、方法がわかりません。 CGIが実行されるユーザーを指定する方法としては、suExecというのがそれっぽい感じなのですが、Windowsでの使用方法がよくわかりませんでした。これはunix系の環境でしか使えないのでしょうか? 他の方法でも構いません。最終的にアクセス制限ができれば十分です。 なにか方法はないものでしょうか?

    • 締切済み
    • CGI
  • SSL利用時にApache起動時のパスワードを聞かれず起動する方法のセキュリティについて

    Apache & mod_ssl を利用してSSLを使用しています。 秘密鍵に署名する?方法 http://mm.apache.jp/pipermail/apache-users/2001-April/000074.html と、 SSLPassPhraseDialog ディレクティブを使ってパスワードを答えるスクリプトを実行する方法 があると思います。 どちらを採用すべきでしょうか? またそのセキュリティー上の理由は? お願いいたします。

  • apacheでcgiが動きません

    apacheをインストールし設定を行っていますがCGIが動いてくれません。 具体的にはCGIのソースがそのまま表示されてしまいます。 ネットを調べてみても <Directory /home/ultra/public_html> Options +ExecCGI AddHandler cgi-script .cgi .pl </Directory> を追加すれば動くような事が書いてありますがこの設定では動いてくれないようです。 何か根本的に間違っていることをしているのでしょうか。 アパッチのバージョンは以下のとおりです。 Server version: Apache/2.4.3 (Unix) suexecで動かしたくsuexecの設定もしていますが、 ログにsuexecのログが生成されないのでその前の段階かと思うのですが・・。 エラーログなどは特に表示されません。cgiのソースが20xで返されているので 当たり前かもしれませんが .コンパイル前の /configreは以下のように設定しました。 ./configure --enable-mbstring \ --enable-mbstr-enc-trans \ --enable-mbregex \ --enable-i18n \ --with-xml \ --with-mysql=/usr/local/mysql \ --with-pgsql=/usr/local/pgsql \ --enable-track-vars \ --enable-discard-path \ --with-gd \ --enable-gd-native-ttf \ --with-zlib-dir=/usr/local \ --with-pdflib=/usr/local \ --enable-shared-pdflib \ --enable-exif \ --disable-debug \ --enable-debug=no \ --enable-debugger=yes \ --enable-memory-limit=yes \ --enable-magic-quotes=yes \ --with-exec-dir=/usr/bin \ --without-system-regex \ --with-dbase=yes \ --enable-bcmath=yes \ --enable-ftp \ --enable-sockets \ --disable-posix-threads \ --enable-xsl \ --enable-xslt \ --with-xslt-sablot \ --with-xsl=/usr/local \ --with-dom=/usr/local \ --with-dom-xslt=/usr/local \ --enable-soap \ --enable-simplexml \ --with-gettext=/usr/local \ --enable-sqlite-utf8 \ --with-pdo-mysql=/usr/local/mysql \ --with-pdo-pgsql=/usr/local/pgsql \ --with-pdo-sqlite=/usr/local \ --with-curl=/usr/local/lib \ --with-openssl=/usr/local/openssl \ --with-mcrypt=/usr/local \ --with-iconv=/usr/local \ --with-xmlrpc \ --enable-safe-mode \ --enable-ssl \ --enable-dav \ --enable-so \ --enable-suexec \ --with-suexec-caller=apache \ --with-suexec-userdir=public_html \ --with-suexec-docroot=/home \ --with-suexec-logfile=/usr/local/apache2/logs/suexec_log \ --with-suexec-uidmin=500 \ --with-suexec-gidmin=100 ご回答よろしくお願いいたします

  • Fedora Core1サーバーでCGIが利用できません

    Fedora Core1でwebサーバーを立てたのですが、実行しようとすると「500 Internal Server Error」となってCGIが動きません。 perlへのパスやパーミッションの設定も見直しましたが、どこの設定が間違っているか分からないので、設定方法を教えてもらえないでしょうか? 現在の環境は ホスト名:saba.dyndns.org perlのパス:/usr/local/bin/perl CGIを仕えるようにしたいユーザー:guest CGIを設置するディレクトリ:/home/guest/cgi-bin/ Apacheのバージョンは2.0.49 となっています。 また以下はhttpd.confの抜粋です。 Listen *:80 #ScriptAlias /cgi-bin/ "/var/www/html/" ScriptAlias /cgi-bin/ "/home/guest/public_html/cgi-bin/" AddHandler cgi-script .cgi .pl <Directory "/home/guest/public_html/"> Options ExecCGI AllowOverride None Allow from all Order allow,deny </Directory> <Directory /home/*/public_html> AllowOverride FileInfo AuthConfig Limit Options Includes ExecCGI FollowSymLinks <Limit GET POST OPTIONS> Order allow,deny Allow from all </Limit> <LimitExcept GET POST OPTIONS> Order deny,allow Deny from all </LimitExcept> </Directory> 長文失礼しました。

  • suEXECとパーミッションの関係がわかりません

    ホームページ作成初心者です。 (A) suEXECについて http://www.aconus.com/~oyaji/www/apache_linux_suexec.htm では、 ----------------------- なお、CGI 関係以外のファイル( HTML や GIF 等)の扱いは、従来どおり "644" 等としないと見えません。suEXEC はあくまで CGI や SSI の実行に関してのみ機能するものだからです。 ----------------------- 一方 http://tech.bayashi.net/pdmemo/permission.html では、 ----------------------- 拡張子が .html などの HTML ファイル ==> 600 ----------------------- となっています。 600では一般のサイト訪問者がread出来ない様に思えるのですが、問題ないのでしょうか? suEXEC設定がされているサーバーでは、各拡張子のパーミッションはどのように設定すれば良いのか教えてください。 (B) http://tech.bayashi.net/pdmemo/permission.html の ------------------------------- ■UNIX + Apache サーバで nobody権限の場合 UNIXのApacheは通常 nobody権限で実行され ■UNIX + Apache サーバで SuExec環境の場合 SuExec環境では、Apacheがユーザ(オーナ)権限で実行されます。 ------------------------------- 上記のApacheの nobody権限、ユーザ権限、オーナ権限 というのは FTPソフトでパーミッションを設定するときの オーナー権限、グループ権限、ユーザ権限 とは全く関係のない別物なのでしょうか? 特にnobody権限とは何でしょうか? -------------------- ファイルの読み書きもnobody権限しかありません。なので、パーミッションでも第三者に対する許可が必要です -------------------- ↑が何を言っているのか理解できません。 (A)(B)について教えてください。

    • ベストアンサー
    • HTML