[PHP-users 5217] Re: [SECURITY]:PHP4 session spoofing exploit

Toshikazu Yoshikawa php-users@php.gr.jp
Tue, 5 Feb 2002 21:54:25 +0900


吉川@アンカットです。
昔(といっても2週間ほど前ですが)のスレッドに対するリプライで恐縮ですが、
一連の話を興味深く拝見させていただきました。

私見なのですが、レンタルサーバで個々のドメインを
name baseのバーチャルドメインで運用する場合、
以下の設定ではどうでしょうか?

・各ユーザのホームディレクトリ
/home/****
UIDは個々のユーザに対して別のもの
GIDは共通のものにする(例えば webusers)
また、各ホームディレクトリのパーミッションは
drwx-----x (701)

・Apacheの設定
Apacheが稼動するUIDおよびGIDを専用に作成
例えばUID www GID www
また、suExecを有効にしてインストール
./configure \
--enable-module=so \
--enable-suexec \
--suexec-caller=www \
--suexec-docroot=/home \
   :

httpd.conf内にて、メインサーバとバーチャルサーバを設定
メインサーバ
User www
Group www

バーチャルサーバ
<VirtualHost *>
    DocumentRoot /home/****/htdocs
    ServerName www.****.domain
    User ****
    Group webusers
    ScriptAlias /cgi-bin/ "/home/****/cgi-bin/"
   :
</VirtualHost>

CGIスクリプトのUID、GIDは各ユーザのものと同じにし、
パーミッションは-rwx------ (700)

・PHPの設定
PHPはモジュール版としてインストールし、
php.ini内でsafe_modeをONにする。
もしくは、他人のディレクトリのファイルを参照できないように、
httpd.confの各VirtualHostディレクティブ内で、open_basedirを設定する。

<VirtualHost *>
    DocumentRoot /home/****/htdocs
    ServerName www.****.domain
    User ****
    Group webusers
    ScriptAlias /cgi-bin/ "/home/****/cgi-bin/"

    <Directory /home/****/htdocs>
        php_admin_value open_basedir /home/****
    </Directory>
   :
</VirtualHost>

以上で安全性は確保できると思うんですが・・・(自信なし)
どこか勘違いしてるかなぁ。

---
unCut  Toshikazu Yoshikawa
mailto:toshi@uncut00.com