IIS 7 での FTP ユーザー分離の構成
作成者: Robert McMurray
互換性
バージョン | メモ |
---|---|
IIS 7.5 | FTP 7.5 サービスは、Windows 7 および Windows Server 2008 R2 の IIS 7.5 の機能として付属しています。 |
IIS 7.0 | FTP 7.0 および FTP 7.5 サービスは、IIS 7.0 とは別にリリースされ、https://www.iis.net/downloads/microsoft/ftp という URL からサービスをダウンロードしてインストールする必要がありました。 |
はじめに
Microsoft は、Windows Server 2008 用に完全に書き換えられた新しい FTP サービスを作成しました。 この新しい FTP サービスには、Web 作成者が以前よりも適切にコンテンツを公開できるようにする多くの新機能が組み込まれており、Web 管理者にはより多くのセキュリティと展開のオプションが提供されています。
このドキュメントでは、新しい FTP ユーザーのインターフェイスを使用して IIS 構成ファイルを直接編集することで実行する、さまざまな FTP ユーザーの分離設定について順を追って説明します。
Note
このチュートリアルには、ローカル管理者アカウントを使用して FTP サイトにログインする一連の手順が含まれています。 これらの手順は、必ずサーバー自体でループバック アドレスを使用するか、またはリモート サーバーから SSL 経由で行ってください。 Administrator アカウントではなく別のユーザー アカウントを使用する場合は、適切なフォルダーを作成し、必要に応じてそのユーザー アカウントの適切なアクセス許可を設定する必要があります。
前提条件
この記事の手順を完了するには、次の項目が必要です。
Windows Server 2008 RC0 サーバーに IIS 7 をインストールし、インターネット インフォメーション サービス マネージャーをインストールする必要があります。
新しい FTP サービスをインストールする必要があります。 次のいずれかのリンクを使用して、Web サイト (https://www.iis.net/) から FTP サービスをダウンロードしてインストールできます。
- FTP for IIS 7 (x64)
- FTP for IIS 7 (x86)
FTP 公開用のルート フォルダーを作成する必要があります。
%SystemDrive%\inetpub\ftproot
にフォルダーを作成します。匿名アクセスを許可するようにアクセス許可を設定します。
コマンド プロンプトを開きます。
次のコマンドを入力します。
ICACLS "%SystemDrive%\inetpub\ftproot" /Grant IUSR:R /T
コマンド プロンプトを閉じます。
追加のコンテンツ フォルダーを作成する必要があります。
%SystemDrive%\inetpub\ftproot\LocalUser\Public
にフォルダーを作成します。%SystemDrive%\inetpub\adminfiles
にフォルダーを作成します。
FTP サイト ウィザードを使用した FTP サイトの作成
この最初のセクションでは、匿名ユーザーによる読み取り専用アクセスと管理者アカウントによる読み取り/書き込みアクセス用に開くことができる新しい FTP サイトを作成します。
IIS マネージャーの [接続] ウィンドウで、ツリー内のサイト ノードをクリックします。
次の図に示すように、ツリーの [サイト] ノードを右クリックし、[FTP サイトの追加] をクリックするか、[操作] ウィンドウの [FTP サイトの追加] をクリックします。
FTP サイトの追加ウィザードが表示されたら次の操作を行います。
- [FTP サイト名] ボックスに「My New FTP Site」と入力し、「前提条件」セクションで作成した
%SystemDrive%\inetpub\ftproot
フォルダーに移動します。 コンテンツ フォルダーへのパスを入力したい場合は、パス内で環境変数を使用できることに注意してください。 - これらの項目が完了したら、[次へ] をクリックします。
- [FTP サイト名] ボックスに「My New FTP Site」と入力し、「前提条件」セクションで作成した
ウィザードの次のページで、次の操作を行います。
- 通常は、[IP アドレス] ドロップダウンから FTP サイトの IP アドレスを選択するか、または既定値である [すべて未割り当て] を選択します。このチュートリアルの後半で管理者アカウントを使用するため、必ずサーバーへのアクセスを制限し、[IP アドレス] ボックスには「127.0.0.1」と入力して、コンピューターのローカル ループバック IP アドレスを入力してください。
- 通常は、[ポート] ボックスに FTP サイトの TCP/IP ポートを入力します。 このチュートリアルでは、既定のポートである 21 を選択します。
- このチュートリアルではホスト名を使用しないため、[仮想ホスト] ボックスは必ず空欄にしてください。
- [証明書] ドロップダウンが [選択されていません] に設定されており、[SSL を許可する] オプションが選択されていることを確認します。
- これらの項目が完了したら、[次へ] をクリックします。
次のウィザード ページで次の操作を行います。
- [認証] 設定に [匿名] を選びます。
- [認可] 設定で、[アクセス許可]ドロップダウンから [匿名ユーザー] を選択し、[アクセス許可] オプションの [読み取り] を選択します。
- これらの項目が完了したら、[完了] をクリックします。
IIS マネージャーで、作成した FTP サイトのノードをクリックして、すべての FTP 機能のアイコンを表示します。
基本認証を追加して、ユーザーがログインできるようにする必要があります。 [FTP 認証] アイコンをダブルクリックして、[FTP 認証機能] ページを開きます。
[FTP 認証] ページが表示されたら、[基本認証] を強調表示し、[操作] ウィンドウで [有効] をクリックします。
IIS マネージャーで、FTP サイトのノードをクリックして、すべての FTP 機能のアイコンをもう一度表示します。
認可規則を追加して、管理者がログインできるようにする必要があります。 [FTP 認可規則] アイコンをダブルクリックして、[FTP 認可規則機能] ページを開きます。
[FTP 認可規則] ページが表示されたら、[操作] ウィンドウで [許可ルールの追加] をクリックします。
[認可規則の追加] ダイアログ ボックスが表示されたら、次の操作を実行します。
- [指定されたユーザー] を選択し、ボックスに「administrator」と入力します。
- [アクセス許可] で、[読み取り] と [書き込み] の両方を選択します。
- これらの項目が完了したら、[OK] をクリックします。
まとめ
このセクションで完了した項目をまとめます。
- "My New FTP Site" という名前の新しい FTP サイトを作成し、サイトのコンテンツ ルートを
%SystemDrive%\inetpub\ftproot
に設定しました。 - FTP サイトをポート 21 のコンピューターのローカル ループバック アドレスにバインドし、FTP サイトに Secure Sockets Layer (SSL) を使用しないことを選択しました。
- 匿名ユーザーにファイルへの "読み取り" アクセスを許可する FTP サイトの既定のルールを作成しました。
- FTP サイトの "読み取り" と "書き込み" の両方のアクセス許可を管理者アカウントに許可する認可規則を追加しました。
- FTP サイトに基本認証を追加しました。
新しい FTP ユーザー分離設定の確認
IIS マネージャーで、作成した FTP サイトのノードをクリックして、すべての FTP 機能のアイコンを表示します。
[FTP ユーザー分離] アイコンをダブルクリックして、FTP ユーザー分離機能を開きます。
FTP ユーザー分離機能ページが表示されたら、次の 5 つの異なるオプションを使用できることがわかります。
これらの 5 つのオプションは次のように定義されます。
ユーザーを分離しないでください。 次からユーザーを開始する:
FTP ルート ディレクトリ
すべての FTP セッションが、FTP サイトのルート ディレクトリで開始されることを指定します。
Note
このオプションは、この FTP サーバーの新機能であり、すべてのユーザー分離や開始フォルダー ロジックを簡単に無効にできます。
ユーザー名ディレクトリ
フォルダーが存在する場合、すべての FTP セッションが、現在のログオン ユーザーと名前が同じ物理または仮想ディレクトリで開始されることを指定します。フォルダーが存在しない場合、FTP セッションは FTP サイトのルート ディレクトリで開始されます。
Note
このオプションは、IIS 6.0 FTP サーバーでユーザーを分離しないと選択した場合と同じです。。 このオプションを使用する方法の詳細については、「FTP ユーザー分離を使用した複数の FTP サイトのホスト (IIS 6.0)」トピックの 「ユーザー モードを分離しない」 セクションを参照してください。
ユーザーを分離します。 ユーザーを次のディレクトリに制限する:
ユーザー名ディレクトリ (グローバル仮想ディレクトリを無効にする)
このオプションは、FTP ユーザー アカウントと同じ名前の物理ディレクトリまたは仮想ディレクトリに対して FTP ユーザー セッションを分離することを指定します。 ユーザーには FTP ルートの位置だけが表示されます。そのため、物理または仮想ディレクトリ ツリーの上方向への移動は制限されます。 作成されるすべてのグローバル仮想ディレクトリは無視されます。
Note
このオプションは、この FTP サーバーの新機能です。
ユーザー名物理ディレクトリ (グローバル仮想ディレクトリを有効にする)
このオプションは、FTP ユーザー アカウントと同じ名前の物理ディレクトリに対して FTP ユーザー セッションを分離することを指定します。 ユーザーには FTP ルートの位置だけが表示されます。そのため、物理ディレクトリ ツリーの上方向への移動は制限されます。 作成されるグローバル仮想ディレクトリは、すべてのユーザーに適用されます。
Note
このオプションは、IIS 6.0 FTP サーバーでユーザー分離を選択する場合と同じです。
Active Directory で構成された FTP ホーム ディレクトリ
このオプションは、各 FTP ユーザーの Active Directory アカウント設定で構成されているホーム ディレクトリに FTP ユーザー セッションを分離することを指定します。
物理ディレクトリによるユーザー分離設定の構成
物理ディレクトリのみでユーザーを分離する場合、すべての FTP ユーザー セッションは、FTP ユーザー アカウントと同じ名前の物理ディレクトリに制限されます。 ただし、作成されるグローバル仮想ディレクトリは、すべてのユーザーに適用されます。
- IIS マネージャーで、作成した FTP サイトのノードをクリックして、すべての FTP 機能のアイコンを表示します。
- [FTP ユーザー分離] アイコンをダブルクリックして、FTP ユーザー分離機能を開きます。
- FTP ユーザー分離機能ページが表示されたら、[ユーザー名の物理ディレクトリ (グローバル仮想ディレクトリの有効化)] オプションを選択し、[操作] ウィンドウで [適用] をクリックします。
FTP サイトへのログイン
ユーザー分離を使用して FTP サイトにログインできるようになりましたが、次の情報が適用されます。
- FTP サイトに匿名でログインすると、[前提条件] セクションで作成した "LocalUser\Public" フォルダーにセッションが制限されます。
- 管理者アカウントを使用して FTP サイトにログインしようとすると、管理者アカウントにホーム ディレクトリが定義されていないため、ログオン要求が拒否されます。 管理者アカウントのログインを許可するには
%SystemDrive%\inetpub\ftproot\LocalUser\Administrator
で管理者アカウントのホーム ディレクトリを作成する必要があります。 その後、管理者アカウントを使用して FTP サイトにログインした場合、セッションは先ほど作成した "LocalUser\Administrator" フォルダーに制限されます。
まとめ
この手順で完了した項目をまとめます。[ユーザー名の物理ディレクトリ (グローバル仮想ディレクトリの有効化)] オプションを使用して FTP ユーザー分離を構成しました。 このユーザー分離モードを使用する場合、すべての FTP ユーザー セッションが FTP ユーザー アカウントと同じ名前の物理ディレクトリに制限され、作成されるすべてのグローバル仮想ディレクトリがすべてのユーザーに適用されます。
各ユーザーのホーム ディレクトリを作成するには、まず、FTP サーバーのルート フォルダーの下に物理ディレクトリを作成する必要があります。このディレクトリのローカル ユーザー アカウントには、ドメインにちなんで付けられた名前か LocalUser という名前が付けられます。 次に、FTP サイトにアクセスするユーザー アカウントごとに物理ディレクトリを作成する必要があります。 次の表に、FTP サービスに付属する認証プロバイダーのホーム ディレクトリ構文を示します。
ユーザー アカウントの種類 | 物理ホーム ディレクトリの構文 |
---|---|
匿名ユーザー | %FtpRoot%\LocalUser\Public |
Windows のローカル ユーザー アカウント (基本認証が必要) | %FtpRoot%\LocalUser\%UserName% |
Windows ドメイン アカウント (基本認証が必要) | %FtpRoot%\%UserDomain%\%UserName% |
IIS マネージャーまたは ASP.NET のカスタム認証ユーザー アカウント | %FtpRoot%\LocalUser\%UserName% |
Note
上記の表で、%FtpRoot% は FTP サイトのルート ディレクトリです (例: C:\Inetpub\Ftproot
)。
重要: グローバル仮想ディレクトリが有効になっています。十分なアクセス許可があれば、FTP サイトのルート レベルで構成されているすべての仮想ディレクトリに、すべての FTP ユーザーがアクセスできます。
すべてのディレクトリに対するユーザー分離設定の構成
すべてのディレクトリでユーザーを分離する場合、すべての FTP ユーザー セッションは、FTP ユーザー アカウントと同じ名前の物理または仮想ディレクトリに制限されます。 さらに、作成されるすべてのグローバル仮想ディレクトリは無視されます。 この手順では、すべてのディレクトリに対してユーザー分離を構成し、管理者ユーザー用の仮想ディレクトリを追加します。
IIS マネージャーで、作成した FTP サイトのノードをクリックして、すべての FTP 機能のアイコンを表示します。
[FTP ユーザー分離] アイコンをダブルクリックして、FTP ユーザー分離機能を開きます。
FTP ユーザー分離機能ページが表示されたら、[ユーザー名の物理ディレクトリ (グローバル仮想ディレクトリの有効化)] オプションを選択し、[操作] ウィンドウで [適用] をクリックします。
FTP サイトのツリー ノードを展開し、LocalUser フォルダーを右クリックして、[仮想ディレクトリの追加] をクリックします。
Note
この例では、"LocalUser" フォルダーは物理ディレクトリですが、仮想ディレクトリを使用することもできます。
[仮想ディレクトリ] ダイアログ ボックスが表示されたら、次の操作を実行します。
- [エイリアス] に「administrator」と入力します。
- 物理パスに
%SystemDrive%\inetpub\adminfiles
と入力します。 - これらの項目が完了したら、[OK] をクリックします。
FTP サイトへのログイン
ユーザー分離を使用して FTP サイトにログインできるようになりましたが、次の情報が適用されます。
- 手順 3 で FTP サイトに匿名でログインすると、[前提条件] セクションで作成した "LocalUser\Public" フォルダーにセッションが制限されます。
- その後、管理者アカウントを使用して FTP サイトにログインした場合、セッションは先ほど作成した "/LocalUser/administrator" フォルダーに制限されます。
まとめ
この手順で完了した項目をまとめます。[ユーザー名の物理ディレクトリ (グローバル仮想ディレクトリの有効化)] オプションを使用して FTP ユーザー分離を構成しました。 このユーザー分離モードを使用する場合、すべての FTP ユーザー セッションが FTP ユーザー アカウントと同じ名前の物理ディレクトリに制限され、作成されるすべてのグローバル仮想ディレクトリが無視されます。
各ユーザーのホーム ディレクトリを作成するには、まず、FTP サーバーのルート フォルダーの下に仮想または物理ディレクトリを作成する必要があります。このディレクトリのローカル ユーザー アカウントには、ドメインにちなんで付けられた名前か LocalUser という名前が付けられます。 次に、FTP サイトにアクセスするユーザー アカウントごとに仮想または物理ディレクトリを作成する必要があります。 次の表に、FTP サービスに付属する認証プロバイダーのホーム ディレクトリ構文を示します。
ユーザー アカウントの種類 | 物理ホーム ディレクトリの構文 |
---|---|
匿名ユーザー | %FtpRoot%\LocalUser\Public |
Windows のローカル ユーザー アカウント (基本認証が必要) | %FtpRoot%\LocalUser\%UserName% |
Windows ドメイン アカウント (基本認証が必要) | %FtpRoot%\%UserDomain%\%UserName% |
IIS マネージャーまたは ASP.NET のカスタム認証ユーザー アカウント | %FtpRoot%\LocalUser\%UserName% |
Note
上記の表で、%FtpRoot% は FTP サイトのルート ディレクトリです (例: C:\Inetpub\Ftproot
)。
グローバル仮想ディレクトリは無視されます。FTP ユーザーは、FTP サイトのルート レベルで構成されているすべての仮想ディレクトリにアクセスすることはできません。 すべての仮想ディレクトリは、ユーザーの物理または仮想ホーム ディレクトリ パスの下に明示的に定義する必要があります。