このスレッドはクローズされています。記事の閲覧のみとなります。
ルートディレクトリについて |
|
- æ¥æï¼ 2007/07/09 04:29
- ååï¼ サブ
- 管理人様。
いつもお世話になっております。
いよいよWEBサーバー公開に向けて大詰めとなってきました。 これもひとえに管理人様の絶大なるサポートのお陰でございます。
その後、WinSCP及びvsFTPDならびにchrootやWEBサーバーに関して必死に勉強してまいりました。 その結果、安全性や操作性を考えてドキュメントルートの設定を上手く行えばファイル転送を より安全性を高めながら操作しやすくなると考えました。
vsFTPDのchrootではBINDのchrootと違いユーザー(ホーム)の限定をするための設定のようなので、 以下のようにしたいと考えております。
例) メインドメイン :domain.com (homeディレクトリで、できればユーザー(仮称:domain-com)を 作成したホームディレクトリ) http://domain.comでアクセス可。 ファイル転送ソフト表示「/****」他ディレクトリ移動不可
バーチャルドメイン1:domain.net (homeディレクトリで、できればユーザー(仮称:domain-net)を 作成したホームディレクトリ) http://domain.netでアクセス可。 ファイル転送ソフト表示「/****」他ディレクトリ移動不可
バーチャルドメイン2:domain.jp (homeディレクトリで、できればユーザー(仮称:domain-jp)を 作成したホームディレクトリ) http://domain.jpでアクセス可。 ファイル転送ソフト表示「/****」他ディレクトリ移動不可
バーチャルドメイン2はバーチャルドメイン1の応用なので1ができれば バーチャルドメイン2もできるということですよね。
以上のことは可能なのでしょうか。 可能だとすればWEBサーバーの構築はどのようにすれば良いのでしょうか?
そこで、教えていただきたいのですが、 ①ドキュメントルートの設定はどのように行うのがベターなのでしょうか? (どこまで落とし込むことができるのでしょうか?) ②そして、どのように記述すればよいのでしょうか? ③また、ドキュメントルートの設定を変更した場合にその他の設定を 変更しなければならないところはあるのでしょうか?
お忙しいこととは思いますが、何卒宜しくお願い致します。
|
■ コンテンツ関連情報
Re: ルートディレクトリについて ( No.1 ) |
|
- æ¥æï¼ 2007/07/09 15:43
- ååï¼ 管理者
- > vsFTPDのchrootではBINDのchrootと違いユーザー(ホーム)の限定をするための設定のようなので、
> 以下のようにしたいと考えております。 > > 例) > メインドメイン :domain.com > (homeディレクトリで、できればユーザー(仮称:domain-com)を > 作成したホームディレクトリ) > http://domain.comでアクセス可。 > ファイル転送ソフト表示「/****」他ディレクトリ移動不可 > > バーチャルドメイン1:domain.net > (homeディレクトリで、できればユーザー(仮称:domain-net)を > 作成したホームディレクトリ) > http://domain.netでアクセス可。 > ファイル転送ソフト表示「/****」他ディレクトリ移動不可 > > バーチャルドメイン2:domain.jp > (homeディレクトリで、できればユーザー(仮称:domain-jp)を > 作成したホームディレクトリ) > http://domain.jpでアクセス可。 > ファイル転送ソフト表示「/****」他ディレクトリ移動不可 > > バーチャルドメイン2はバーチャルドメイン1の応用なので1ができれば > バーチャルドメイン2もできるということですよね。 > > 以上のことは可能なのでしょうか。
簡単に記すと、以下の意味で宜しいですよね? ・バーチャルサーバを構築する ・ユーザー毎にバーチャルドメインのホームページを公開し、そのユーザにてホームページを公開する 例) root → リアルドメイン (domain.com) :「http://domain.com」 user1 → バーチャルドメイン(domain.net) :「http://domain.net」 user2 → バーチャルドメイン(domain.jp) :「http://domain.jp」
厳密に言えば上記の構築方法はできません。(当方がその構築方法の術が分かりません。) リアルドメインもバーチャルドメインも、そのプロセス(実行しているID)は『apache』となります。 ユーザホームページ公開は、そのユーザページでアクセスされた場合は『apache』がそのユーザに成り切って実行しますが、バーチャルはその様には動作いたしません。
----- 一部のセキュリティを無視すれば取りあえずは可能です。 それは、ディレクトリやファイルのパーミッションを変更する方法です。(以下に説明しますが、他人にも書き込み権限を与えるので危険です。)
ディレクトリやファイルには「パーミッション」があり、その所有者やグループ、他人に対して「Read/Write/Execute」を指定できます。 このパーミッションの「他人」に対して「読み取り(必須)」「書き込み(適時)」「実行(適時)を与えてあげれば可能となります。 ただし、Webページアクセス時にファイルを作成するようなスクリプトの場合、新規に作成されたファイルは、当然プロセスを実行している「apache」となります。 以下にその設定方法を明記しますね。(上記で挙げた例に準拠)
リアルドメイン(domain.com)の公開パス:/var/www/html/ バーチャル(domain.net)の公開パス :/home/user1/public_html バーチャル(domain.jp)の公開パス :/home/user2/public_html
① バーチャル設定ファイルの新規作成(内容は以下) # vi /etc/httpd/conf.d/virtualhost.conf ---------- ここから ---------- NameVirtualHost *:80 # リアルドメインの定義 <VirtualHost *:80> ServerName domain.com DocumentRoot /var/www/html ErrorLog logs/domain_com_error_log CustomLog logs/domain_com_access_log common </VirtualHost> # リアルドメイン1の定義 <VirtualHost *:80> ServerName domain.net DocumentRoot /home/user1/public_html <Directory "/home/user1/public_html"> Options Includes ExecCGI FollowSymLinks AllowOverride All </Directory> ErrorLog logs/domain_net_error_log CustomLog logs/domain_net_access_log common </VirtualHost> # リアルドメイン2の定義 <VirtualHost *:80> ServerName domain.jp DocumentRoot /home/user2/public_html <Directory "/home/user2/public_html"> Options Includes ExecCGI FollowSymLinks AllowOverride All </Directory> ErrorLog logs/domain_jp_error_log CustomLog logs/domain_jp_access_log common </VirtualHost> ---------- ここまで ----------
② バーチャルドメイン公開ディレクトリの構造とパーミッション等 /home/ |-- [drwx-----x user1 user1 ] user1 | `-- [drwxrwxrwx user1 user1 ] public_html | `-- [-rw-r--r-- user1 user1 ] index.html `-- [drwx-----x user2 user2 ] user2 `-- [drwxrwxrwx user2 user1 ] public_html `-- [-rw-r--r-- user2 user2 ] index.html
③ vsFTPDのchroot化。(これを行うことによりログインディレクトリより上層には行けなくなる) (telnetやsshログインを許可してしまうと、当然たのディレクトリに行けるので注意)
ざっと、上記のような感じですが先述した様にセキュリティ的にも危険です。 ほかに方法があるのかも知れませんが、当方にはその構築方法は不明です。
|
Re: ルートディレクトリについて ( No.2 ) |
|
- æ¥æï¼ 2007/07/09 16:50
- ååï¼ サブ
- 管理人様。
お世話になっております。 いつもながら簡潔で分かりやすいご説明有難うございます。 理論的には構築可能ということですね。
丁度、所有者とパーミッションについて理解を深めていたところです。 (まだ、あまり深くないですが(^^;;)
そこで、幾つか教えていただきたいのですが、 SHHでログインすると他のディレクトリへの移動が可能になってしまいますよね? 先ほどご説明頂いた方法では他のディレクトリへの移動が不可能になりますよね? 知識の乏しい私にはどちらも一長一短のような気がするのですが・・・。
サーバー構築に関する操作は限定ユーザーによるSSHでWEBサイトに関しては vsFTPDのchrootを使用するなど上手く使い分けることができればイイのですが・・・。
管理人様からご指摘いただいたセキュリティ的な問題というのは全ての人に書込み権限が 与えられてしまうと言う事なのでしょうか?
例えば以下の部分↓を >`-- [drwxrwxrwx user1 user1 ] public_html ←全ての人に対して全てのことを許可している ↓ ↓下のように設定すると運用上どのような問題があるのでしょうか? ↓(不可能な設定なのでしょうか?) ↓ `-- [drwxr-xr-x user1 user1 ] public_html ←所有者以外は書き込みを禁止している
上記のような設定は無理があるのでしょうか?(既に無理があるのかもしれませんが(^^;;)
お忙しいとは思いますが宜しくお願い致します。
|
Re: ルートディレクトリについて ( No.3 ) |
|
- æ¥æï¼ 2007/07/09 17:25
- ååï¼ 管理者
- > 管理人様からご指摘いただいたセキュリティ的な問題というのは全ての人に書込み権限が
> 与えられてしまうと言う事なのでしょうか? > > 例えば以下の部分↓を > >`-- [drwxrwxrwx user1 user1 ] public_html ←全ての人に対して全てのことを許可している > ↓ > ↓下のように設定すると運用上どのような問題があるのでしょうか? > ↓(不可能な設定なのでしょうか?) > ↓ > `-- [drwxr-xr-x user1 user1 ] public_html ←所有者以外は書き込みを禁止している > > 上記のような設定は無理があるのでしょうか?(既に無理があるのかもしれませんが(^^;;)
本来であればご認識のように、所有者以外は書き込み権限を与えなければ問題ありません。
しかし、
>>リアルドメインもバーチャルドメインも、そのプロセス(実行しているID)は『apache』となります。
上記のコメントを前に書かせて頂いたように、バーチャルサーバでは「apache」で動作します。 バーチャルドメインでの公開で、ファイルの書き込みがあるようなページであった場合、動作しなくなります。
※:注意して頂きたいのは、現在書かせて頂いてるのは『ユーザホームページの公開』ではありません。 バーチャルドメインの公開ですので、話が混乱されないように注意。
最初の当方のコメントに書かせて頂いたように、基本的にはユーザ毎にバーチャルドメイン公開は不可能と思ったほうが良いと思います。
|
Re: ルートディレクトリについて ( No.4 ) |
|
- æ¥æï¼ 2007/07/09 18:07
- ååï¼ サブ
- どうやら、私の考えていることはできないようですね。
現在、使っているレンタルサーバーと同じ使い勝手にしたかったのですが やはり無理なのでしょうか・・・。
|
Re: ルートディレクトリについて ( No.5 ) |
|
- æ¥æï¼ 2007/07/09 18:36
- ååï¼ 管理者
- > どうやら、私の考えていることはできないようですね。
> > 現在、使っているレンタルサーバーと同じ使い勝手にしたかったのですが > やはり無理なのでしょうか・・・。
当方が先述させて頂いた『基本的にはユーザ毎にバーチャルドメイン公開は不可能と思ったほうが良い』と言うのは、私自身がその設定方法が分からない為『できない』と思ってください。 当該レスを見ている方で有識者から的確なアドバイスが頂けるかも知れませんので、もう暫くお待ちお待ちいただいた方が良いと思いますよ。
|
■ その他