FTP 7.5 ユーザー分離の構成
作成者 : Robert McMurray
発行日 : 2008 年 1 月 15 日 (作業者 : iisteam (英語))
更新日 : 2009 年 3 月 18 日 (作業者 : iisteam (英語))
はじめに
Microsoft は、Windows Server 2008 用に完全に書き換えられた、新しい FTP サービスを作成しました。この新しい FTP サービスには多くの新機能が組み込まれており、Web 作成者にはコンテンツの発行がしやすくなる環境を、Web 管理者にはより優れたセキュリティおよび展開オプションを提供します。
このドキュメントでは、さまざまな FTP ユーザー分離設定の方法について説明します。新しい FTP ユーザー インターフェイスを使用する方法、および IIS 構成ファイルを直接編集する方法の 2 とおりの手順を確認していきます。
注 : このチュートリアルでは、ローカル管理者アカウントを使用して FTP サイトにログインする一連の手順を説明します。これらの手順は、必ず当該サーバー上でループバック アドレスを使用して実行するか、リモート サーバーから SSL を介して実行してください。管理者アカウントの代わりに別のユーザー アカウントを使用する場合は、必要に応じてそのための適切なフォルダーを作成し、そのユーザー アカウントに正しいアクセス許可を設定してください。
このチュートリアルの内容
- FTP Site ウィザードを使用した FTP サイトの作成
- 新しい FTP ユーザー分離設定の確認
- 物理ディレクトリによるユーザー分離設定の構成
- すべてのディレクトリにおけるユーザー分離設定の構成
前提条件
この記事の手順を完了するには、次の項目を満たしている必要があります。
- Windows Server 2008 RC0 サーバーに IIS 7 がインストールされ、インターネット インフォメーション サービス マネージャーがインストールされている必要があります。
- 新しい FTP サービスがインストールされている必要があります。この FTP サービスは、https://www.iis.net/(英語) の Web サイトから次のリンクのいずれかを使用してダウンロードし、インストールできます。
- FTP 発行用のルート フォルダーを作成する必要があります。
- %SystemDrive%\inetpub\ftproot フォルダーを作成します。
- 次の手順で匿名アクセスを許可するための設定を行ないます。
- コマンド プロンプトを開きます。
- 次のコマンドを入力します。
CACLS "%SystemDrive%\inetpub\ftproot" /G IUSR:R /T /E - コマンド プロンプトを閉じます。
- 次のコンテンツ フォルダーを追加で作成する必要があります。
- %SystemDrive%\inetpub\ftproot\LocalUser\Public フォルダーを作成します。
- %SystemDrive%\inetpub\adminfiles フォルダーを作成します。
FTP Site ウィザードを使用した FTP サイトの作成
この最初のセクションでは、新しい FTP サイトを作成し、匿名ユーザーは読み取り専用のアクセス権で、管理者アカウントは読み取り/書き込みのアクセス権で開くことができるように設定します。
- IIS マネージャーの [接続] ウィンドウで、ツリー内の [サイト] ノードをクリックします。
- 次の図に示すように、ツリー内の [サイト] ノードを右クリックして [Add FTP Site] をクリックするか、または [操作] ウィンドウで [Add FTP Site] をクリックします。
- Add FTP Site ウィザードが表示されたら、次の手順を実行します。
- [FTP site name] ボックスに「My New FTP Site」と入力し、「前提条件」セクションで作成した %SystemDrive%\inetpub\ftproot フォルダーを指定します。コンテンツ フォルダーのパスを直接入力する場合、パスに環境変数を使用することができます。
- 上記の手順を完了したら、[次へ] をクリックします。
- ウィザードの次のページで、下記の手順を実行します。
- 通常は、[IP Address] ボックスで FTP サイトの IP アドレスを選択します。または、既定で選択されている [All Unassigned] をそのまま使用することもできます。このチュートリアルでは、後述の手順で管理者アカウントを使用するため、サーバーへのアクセスを制限します。[IP Address] ボックスに、コンピューターのローカル ループバック IP アドレスである「127.0.0.1」を入力してください。
- 通常は、[Port] ボックスに FTP サイトの TCP/IP ポートを入力します。このチュートリアルでは、既定のポート 21 をそのまま使用します。
- このチュートリアルではホスト名は使用しないので、[Virtual Host] ボックスは空白のままにします。
- [SSL Certificate] ボックスで [Not Selected] が選択され、[Allow SSL] オプションがオンになっていることを確認します。
- 上記の手順を完了したら、[次へ] をクリックします。
- ウィザードの次のページで、下記の手順を実行します。
- [Authentication] の設定で、[Anonymous] を選択します。
- [Authorization] の設定の [Allow access to] ボックスで [Anonymous users] を選択し、[Permissions] オプションの [Read] をオンにします。
- 上記の手順を完了したら、[終了] をクリックします。
- IIS マネージャーで、作成した FTP サイトのノードをクリックして、すべての FTP 機能のアイコンを表示します。
- ユーザーがログインできるように、基本認証を追加する必要があります。基本認証を追加するには、[FTP Authentication] アイコンをダブルクリックして FTP 認証機能ページを開きます。
- [FTP Authentication] ページが表示されたら、[Basic Authentication] を選択し、[操作] ウィンドウで [Enable] をクリックします。
- IIS マネージャーで、FTP サイトのノードをクリックして、すべての FTP 機能のアイコンを再表示します。
- 管理者がログインできるように、承認規則を追加する必要があります。承認規則を追加するには、[FTP Authorization Rules] アイコンをダブルクリックして FTP 承認規則機能ページを開きます。
- [FTP Authorization Rules] ページが表示されたら、[操作] ウィンドウの [Add Allow Rule] をクリックします。
- [Add Allow Authorization Rule] ダイアログ ボックスが表示されたら、次の手順を実行します。
- [Specified users] をオンにし、ボックスに「administrator」と入力します。
- [Permissions] の [Read] と [Write] の両方をオンにします。
- 上記の手順を完了したら、[OK] をクリックします。
まとめ
このセクションで完了した手順を下記にまとめます。
- "My New FTP Site" という名前を付けて新しい FTP サイトを作成し、サイトのコンテンツ ルートを %SystemDrive%\inetpub\ftproot に設定しました。
- 作成した FTP サイトを、コンピューターのローカル ループバック アドレスのポート 21 にバインドしました。また、FTP サイトで SSL (Secure Sockets Layer) を使用しないように選択しました。
- FTP サイトの既定の規則を作成して、匿名ユーザーによるファイルへの "読み取り" アクセス権を設定しました。
- 承認規則を追加して、管理者アカウントに FTP サイトへの "読み取り" と "書き込み" の両方のアクセス許可を設定しました。
- FTP サイトに基本認証を追加しました。
新しい FTP ユーザー分離設定の確認
- IIS マネージャーで、作成した FTP サイトのノードをクリックして、すべての FTP 機能のアイコンを表示します。
- [FTP User Isolation] アイコンをダブルクリックし、FTP ユーザー分離機能を開きます。
- [FTP User Isolation] 機能ページには、次の 5 つのオプションが表示されます。
- これらの 5 つのオプションの定義は次のとおりです。
- Do not isolate users. Start users in :
- FTP root directory
- このオプションを指定すると、すべての FTP セッションが FTP サイトのルート ディレクトリで開始されます。
- 注 : このオプションは、この FTP サーバーの新機能です。すべてのユーザー分離または開始フォルダーのロジックを無効にします。
- User name directory
- このオプションを指定すると、現在ログオンしているユーザー名と同じ名前の物理ディレクトリまたは仮想ディレクトリがある場合、すべての FTP セッションがそのディレクトリで開始されます。上記のディレクトリが存在しない場合、FTP セッションは FTP サイトのルート ディレクトリで開始されます。
- 注 : このオプションは、IIS 6.0 FTP サーバーでユーザー分離を行わないように選択した場合と同じです。このオプションの使用に関する詳細については、FTP ユーザー分離を使用した複数の FTP サイトのホスティングに関するトピック (IIS 6.0) (英語) の、ユーザーを分離しない場合の説明を参照してください。
- FTP root directory
- Isolate users. Restrict users to the following directory :
- User name directory (disable global virtual directories)
- このオプションを指定すると、FTP ユーザー アカウント名と同じ名前の物理ディレクトリまたは仮想ディレクトリに FTP ユーザー セッションを分離します。ユーザーは自分の FTP ルートの場所のみを確認することができ、物理ディレクトリまたは仮想ディレクトリのツリーの上位ディレクトリを参照することはできません。作成されているすべてのグローバル仮想ディレクトリは無視されます。
- 注 : このオプションは、この FTP サーバーの新機能です。
- User name physical directory (enable global virtual directories)
- このオプションを指定すると、FTP ユーザー アカウント名と同じ名前の物理ディレクトリに FTP ユーザー セッションを分離します。ユーザーは自分の FTP ルートの場所のみを確認することができ、物理ディレクトリ ツリーの上位ディレクトリを参照することはできません。作成済みのすべてのグローバル仮想ディレクトリは、すべてのユーザーに対して適用されます。
- 注 : このオプションは、IIS 6.0 FTP サーバーでユーザー分離を行うように選択した場合と同じです。
- FTP home directory configured in Active Directory
- このオプションを指定すると、各 FTP ユーザーの Active Directory アカウント設定で構成されているホーム ディレクトリに FTP ユーザー セッションを分離します。
- 注 : このオプションは、IIS 6.0 FTP サーバーで Active Directory のユーザー分離を選択した場合と同じです。このオプションの使用に関する詳細については、FTP ユーザー分離を使用した複数の FTP サイトのホスティングに関するトピック (IIS 6.0) (英語) の、Active Directory モードを使用したユーザー分離の説明を参照してください。
- User name directory (disable global virtual directories)
- Do not isolate users. Start users in :
物理ディレクトリによるユーザー分離設定の構成
物理ディレクトリのみによってユーザーを分離する場合、すべての FTP ユーザー セッションは、FTP ユーザー アカウント名と同じ名前の物理ディレクトリに制限されます。ただし、作成済みのすべてのグローバル仮想ディレクトリは、すべてのユーザーに対して適用されます。
- IIS マネージャーで、作成した FTP サイトのノードをクリックして、すべての FTP 機能のアイコンを表示します。
- [FTP User Isolation] アイコンをダブルクリックし、FTP ユーザー分離機能を開きます。
- [FTP User Isolation] 機能ページが表示されたら、[User name physical directory (enable global virtual directories)] オプションをオンにし、[操作] ウィンドウの [適用] をクリックします。
FTP サイトへのログイン
これでユーザー分離機能を利用して FTP サイトにログインできるようになりました。ただし、次の事項が適用されます。
- FTP サイトに匿名でログインする場合、セッションは「前提条件」セクションで作成した LocalUser\Public フォルダーに制限されます。
- 管理者アカウントを使用して FTP サイトにログインを試みると、管理者アカウントにはホーム ディレクトリが定義されていないため、ログイン要求は拒否されます。管理者アカウントでログインできるようにするには、管理者アカウント用のホーム ディレクトリ (%SystemDrive%\inetpub\ftproot\LocalUser\Administrator) を作成する必要があります。その後、FTP サイトに管理者アカウントでログインした場合、セッションは作成した LocalUser\Administrator フォルダーに制限されます。
まとめ
この手順で完了した項目をまとめると、[User name physical directory (enable global virtual directories)] オプションを使用して、FTP ユーザーの分離を構成しました。ユーザー分離のこのモードを使用すると、すべての FTP ユーザー セッションは、FTP ユーザー アカウント名と同じ名前の物理ディレクトリに制限されます。また、作成済みのすべてのグローバル仮想ディレクトリは、すべてのユーザーに対して適用されます。
各ユーザーのホーム ディレクトリを作成するには、まず FTP サーバーのルート フォルダーの下に、ドメイン名と同じ名前の物理ディレクトリ (ローカル ユーザー アカウントの場合は LocalUser という名前の物理ディレクトリ) を作成する必要があります。次に、FTP サイトにアクセスする各ユーザー アカウント用の物理ディレクトリを作成する必要があります。次の表は、FTP サービスで提供される認証プロバイダーのホーム ディレクトリ構文の一覧です。
ユーザー アカウントの種類 物理ホーム ディレクトリの構文 匿名ユーザー
%FtpRoot%\LocalUser\Public
ローカル Windows ユーザー アカウント
(基本認証が必要)%FtpRoot%\LocalUser\%UserName%
Windows ドメイン アカウント
(基本認証が必要)%FtpRoot%\%UserDomain%\%UserName%
IIS マネージャーまたは ASP.NET のカスタム
認証ユーザー アカウント%FtpRoot%\LocalUser\%UserName%
(注 : 上の表で、%FtpRoot% は FTP サイトのルート ディレクトリを示します。例 : C:\Inetpub\Ftproot)
重要 : グローバル仮想ディレクトリが有効になります。FTP サイトのルート レベルで構成されたすべての仮想ディレクトリに、必要なアクセス許可を持つすべての FTP ユーザーがアクセスできます。
すべてのディレクトリにおけるユーザー分離設定の構成
すべてのディレクトリでユーザーを分離する場合、すべての FTP ユーザー セッションは、FTP ユーザー アカウント名と同じ名前の物理ディレクトリまたは仮想ディレクトリに制限されます。また、作成されているすべてのグローバル仮想ディレクトリは無視されます。この手順では、すべてのディレクトリにおけるユーザー分離を構成します。また、管理者ユーザー用に仮想ディレクトリを追加します。
- IIS マネージャーで、作成した FTP サイトのノードをクリックして、すべての FTP 機能のアイコンを表示します。
- [FTP User Isolation] アイコンをダブルクリックし、FTP ユーザー分離機能を開きます。
- [FTP User Isolation] 機能ページが表示されたら、[User name directory (disable global virtual directories)] オプションをオンにし、[操作] ウィンドウの [適用] をクリックします。
- FTP サイトのツリー ノードを展開し、LocalUser フォルダーを右クリックして、[仮想ディレクトリの追加] をクリックします (注 : この例では、LocalUser フォルダーは物理ディレクトリですが、仮想ディレクトリを使用することもできます)。
- [仮想ディレクトリの追加] ダイアログ ボックスが表示されたら、次の手順を実行します。
- [エイリアス] ボックスに「administrator」と入力します。
- [物理パス] ボックスに「%SystemDrive%\inetpub\adminfiles」と入力します。
- 上記の手順を完了したら、[OK] をクリックします。
FTP サイトへのログイン
これでユーザー分離機能を利用して FTP サイトにログインできるようになりました。ただし、次の事項が適用されます。
- 手順 3 と同様に、FTP サイトに匿名でログインする場合、セッションは「前提条件」セクションで作成した LocalUser\Public フォルダーに制限されます。
- FTP サイトに管理者アカウントでログインする場合、セッションは作成した /LocalUser/administrator 仮想ディレクトリに制限されます。
まとめ
この手順で完了した項目をまとめると、[User name directory (disable global virtual directories)] オプションを使用して、FTP ユーザーの分離を構成しました。ユーザー分離のこのモードを使用すると、すべての FTP ユーザー セッションは、FTP ユーザー アカウント名と同じ名前の仮想ディレクトリまたは物理ディレクトリに制限されます。また、作成済みのすべてのグローバル仮想ディレクトリは無視されます。
各ユーザーのホーム ディレクトリを作成するには、まず FTP サーバーのルート フォルダーの下に、ドメイン名と同じ名前の仮想ディレクトリまたは物理ディレクトリ (ローカル ユーザー アカウントの場合は LocalUser という名前の仮想ディレクトリまたは物理ディレクトリ) を作成する必要があります。次に、FTP サイトにアクセスする各ユーザー アカウント用の仮想ディレクトリまたは物理ディレクトリを作成する必要があります。次の表は、FTP サービスで提供される認証プロバイダーのホーム ディレクトリ構文の一覧です。
ユーザー アカウントの種類 物理ホーム ディレクトリの構文 匿名ユーザー
%FtpRoot%\LocalUser\Public
ローカル Windows ユーザー アカウント
(基本認証が必要)%FtpRoot%\LocalUser\%UserName%
Windows ドメイン アカウント
(基本認証が必要)%FtpRoot%\%UserDomain%\%UserName%
IIS マネージャーまたは ASP.NET のカスタム
認証ユーザー アカウント%FtpRoot%\LocalUser\%UserName%
(注 : 上の表で、%FtpRoot% は FTP サイトのルート ディレクトリを示します。例 : C:\Inetpub\Ftproot)
グローバル仮想ディレクトリは無視されます。FTP サイトのルート レベルで構成されたすべての仮想ディレクトリには、どの FTP ユーザーもアクセスできません。すべての仮想ディレクトリは、ユーザーの物理ホーム ディレクトリまたは仮想ホーム ディレクトリのパスの下に明示的に定義する必要があります。