VWD を使用した FTP の展開と公開に関するガイド
作成者: Walter Oliver
IIS の FTP サービスは、Windows Web プラットフォームの重要なコンポーネントです。 これは、Windows 環境での FTP 用の堅牢で安全なソリューションとなります。 共有ホスティング環境管理者は、IIS 用 FTP を使用して、顧客がコンテンツをアップロードして同期できるようにします。 Microsoft と FTP の新機能の記事では、新しい FTP 機能について説明します。 主な特徴を次に示します。
IIS との統合:
- .NET XML ベースの *.config 形式に基づく新しい構成ストア
- 新しい管理ツール
新しいインターネット標準のセキュリティとサポート:
- FTP over SSL
- 認証用の Windows 以外のアカウント
- UTF8 と IPv6
共有ホスティングの機能強化:
- 既存の Web サイトに FTP バインドを追加して、同じサイトから FTP と Web コンテンツをホストする
- 仮想ホスト名のサポートが提供され、同じ IP アドレスで複数の FTP サイトをホストできます。
- ユーザーごとの仮想ディレクトリによるユーザーの分離の向上
ログとサポート機能の強化:
- 拡張 FTP ログには、FTP 関連のすべてのトラフィック、FTP セッションの一意の追跡、FTP サブステータス、および FTP ログの追加の詳細フィールドが含められます。
- FTP サーバーにローカルでログオンする場合の詳細なエラー応答
- トラブルシューティングの追加情報を提供する Windows イベント トレーシング (ETW) を使用する場合の詳細情報
次のビデオでは、FTP 7.0 のいくつかの機能の概要とデモを示します。
FTP の配置
FTP は、共有ホスティング構成のフロントエンド サーバーの 1 つです。
この画像では、共有ホスティング環境での FTP デプロイのいくつかの重要な特性が強調表示されています。
- FTP サービスは、リモート管理 (Web 管理 - WMSVC) および MS 配置サービスに使用されるコンピューターと同じコンピューターを共有できます。
- FTP コンピューターは、Web ファーム サーバーによって使用される共有構成の一部です。つまり、このコンピューターにインストールされているコンポーネントも Web ファーム サーバー上に存在する必要があります。 ただし、Web ファームは FTP 要求の処理に使用されないため、FTP、Web Management (WMSVC)、MS 配置サービスが停止する場合があります。
- FTP コンピューターは、Web アプリケーションをホストするためのものではありません。
- インターネットに接続するファイアウォール ルーターは、FTP トラフィックを FTP サーバーに転送するポートを実行します。
デプロイ構成
IIS サーバー用 FTP には、共有ホスティング シナリオに最適な機能がいくつかあります。 以下のガイドラインでは、新しい FTP のユーザー分離機能を利用します。 この機能を使用すると、次のことができます。
- 管理ユーザー アクセスを、ユーザーに対して定義されている物理ディレクトリまたは仮想ディレクトリのみに制限します。 つまり、1 つの FTP サイトを実装します。このサイトには、ユーザー名ごとに特定の物理ディレクトリまたは仮想ディレクトリが含まれます。
- 管理ユーザーが明示的に要求する場合は、SSL を有効にし、すべての接続に 1 つの証明書を使用します。
- FTP サイトを自分のサイトだけのサイトのように表示するユーザー。 FTP サーバーにログオンすると、特定のディレクトリに制限され、ディレクトリ ツリー上を移動できなくなります。
手順
FTP コンピューターを選択し、IIS サービス用の新しい FTP をインストールします。 FTP のインストールとトラブルシューティングに関する記事の手順に従います。
FTP サイトに使用するルート フォルダー (例:
%*SystemDrive*%\inetpub\ftproot
) を作成します。オプションとして、FTP の高可用性や負荷分散の要件がある場合に、Microsoft はネットワーク負荷分散やフェールオーバー クラスターなどのソリューションを提供します。DNS ラウンド ロビンで十分な場合もあります。
SSL 接続と基本認証を許可するサイトを作成します。 [SSL 対応サイトの作成] セクションの手順に従います。
ユーザーの分離機能を有効にします。 [すべてのディレクトリのユーザー分離の構成] セクションの手順に従います。
以下の対応するセクションで説明するように、FTP ファイアウォール設定を構成します。
Windows プロセス アクティブ化サービス (WAS) を停止します。
- コマンド プロンプトで、「services.msc」と入力すると、サービス コンソールが表示されます。
- Windows プロセス アクティブ化サービスをダブルクリックします。
- [Windows プロセス ライセンス認証サービスのプロパティ] ダイアログ ボックスで、このサービスのスタートアップの種類が [無効] に設定されていることを確認します。 [停止] をクリックし、[OK] をクリックします。
- コマンド プロンプトで、「services.msc」と入力すると、サービス コンソールが表示されます。
SSL 対応サイトの作成
このセクションでは、任意のユーザー アカウントを使用して開くことができる新しい FTP サイトを作成します。
IIS マネージャーに移動します。 [接続] ペインのツリーから [サイト] ノードを開きます。
ツリーの [サイト] ノードを右クリックし、[FTP サイトの追加] をクリックするか、[操作] ペインの [FTP サイトの追加] をクリックします。
[FTP サイトの追加] ウィザードが表示されたら次の操作を行います。
[FTP サイト名] のテキスト ボックスに「My New FTP Site」と入力し、FTP サイト用に作成したルート フォルダー (例:
%*SystemDrive*%\inetpub\ftproot
) に移動します。Note
コンテンツ フォルダーへのパスを入力したい場合は、パス内で環境変数を使用できます。
次へ をクリックします。
次のウィザード ページで次の操作を行います。
- [IP アドレス] テキスト ボックスの一覧から FTP サイトの IP アドレスを選択するか、または既定値である [すべて未割り当て] を選択します。この例では、ローカル ループバック IP "127.0.0.1" を使用します。
- [ポート] テキスト ボックスに FTP サイトの TCP/IP ポートを入力します。 この例では、既定のポートである "21" が使用されています。
- [仮想ホスト] テキスト ボックスが空白であることを確認します。 ホスト名は使用しないでください。
- [証明書] ドロップダウン リストが、使用する適切な証明書に設定されていることを確認します。 この例では、"My FTP Certificate" という自己署名証明書を使用します。手順については、自己署名 SSL 証明書の作成を参照してください。
- [SSL を許可する] オプションがオンになっていることを確認します。
- 次へ をクリックします。
次のウィザード ページで次の操作を行います。
[認証] 設定で [基本] を選択します。
[認可] の設定は次のようにします。
- [アクセスを許可する] ドロップダウン リストから [すべてのユーザー] を選択します。
- [アクセス許可] オプションの [読み取り] と [書き込み] を選択します。
これらの項目が完了したら、[終了] をクリックします。
まとめ
新しい FTP サービスを使用して、SSL ベースの新しい FTP サイトが作成されました。 この手順で完了した項目を確認します。
- "My New FTP Site" という名前の新しい FTP サイトを作成し、サイトのコンテンツ ルートを
%*SystemDrive*%\inetpub\ftproot
に配置しました。 - コンピューターの IP アドレスにポート 21 で FTP サイトをバインドしました。
- FTP サイトに Secure Sockets Layer (SSL) を許可し、証明書を選択しました。
- 基本認証を有効にし、すべてのユーザー アカウントに読み取りと書き込みアクセスを付与する認可規則を作成しました。
XML 構成ファイルの直接編集については、「IIS 構成ファイルを編集して SSL ベースの FTP 公開を追加する」を参照してください。
すべてのディレクトリのユーザーの分離を構成する
すべてのディレクトリのユーザーを分離する場合、すべての FTP ユーザー セッションは、FTP ユーザー アカウントの同じ名前を持つ物理ディレクトリまたは仮想ディレクトリに制限されます。 さらに、作成されるすべてのグローバル仮想ディレクトリは無視されます。 この手順では、すべてのディレクトリのユーザーの分離を構成します。
%*SystemDrive*%\inetpub\ftproot\LocalUser\
にフォルダーを作成します。 このフォルダーには、すべてのローカル ユーザー アカウント ディレクトリが含められます。 このフォルダーは、ファイル共有サーバー (NAS) に作成できます。 ユーザー アカウントをプロビジョニングする場合は、ユーザーのコンテンツ フォルダーへの読み取りおよび書き込みアクセス権も割り当てる必要があります。- IIS マネージャーで、先ほど作成した FTP サイトのノードをクリックします。 すべての FTP 機能のアイコンが表示されます。
- FTP ユーザーの分離アイコンをダブルクリックして、FTP ユーザーの分離機能を開きます。
- [FTP ユーザーの分離機能] ページが表示されたら、[ユーザー名ディレクトリ] (グローバル仮想ディレクトリを無効にする) を選択し、[操作] ウィンドウで [適用] をクリックします。
まとめ
この手順で完了した項目の確認: ユーザー名ディレクトリ (グローバル仮想ディレクトリを無効にする) オプションを使用して 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 サービスのパッシブ ポート範囲を構成する
このセクションでは、FTP サービスへのパッシブ接続用にサーバー レベルのポート範囲を構成します。 次の手順に従います。
IIS マネージャーに移動します。 [接続] ウィンドウで、ツリーのサーバー レベル ノードをクリックします。
機能の一覧で [FTP ファイアウォール サポート] アイコンをダブルクリックします。
[データ チャネルのポート範囲] に値の範囲を入力します。
FTP サービスのポート範囲を入力したら、[操作] ウィンドウで [適用] クリックして、構成設定を保存します。
Note
ポートの有効な範囲は 1025 から 65535 です。 (ポート 1 から 1024 は、システム サービスで使用するために予約されています。)
特殊なポート範囲 "0-0" を指定して、Windows TCP/IP ダイナミック ポート範囲を使うように FTP サーバーを構成できます。
詳細については、次の Microsoft サポート技術情報の記事を参照してください。
- 174904 - TCP/IP ポートの割り当てに関する情報 (
https://support.microsoft.com/kb/174904/ "Information about TCP/IP port assignments"
) - 929851 - Windows Vista および Windows Server 2008 では TCP/IP の既定の動的ポート範囲が変更されている
- 174904 - TCP/IP ポートの割り当てに関する情報 (
このポート範囲をファイアウォール サーバーの許可された設定に追加する必要があります。
[ファイアウォールの外部 IP アドレス] 設定に、ファイアウォール サーバーの外部接続アドレスの IPv4 アドレスを入力します。
ファイアウォール サーバーの外部 IPv4 アドレスを入力したら、[操作] ウィンドウで [適用] をクリックして構成設定を保存します。
まとめ
この手順で完了した項目を確認します。
- FTP サービスのパッシブ ポート範囲を構成しました。
- 特定の FTP サイトの外部 IPv4 アドレスを構成しました。
Windows Server 2008 ファイアウォールを構成する方法については、「(省略可能) 手順 3: Windows ファイアウォール 設定を構成する」を参照してください。 ファイアウォールの操作に関する詳細も参照してください。
FTP サーバー名の例
FTP は、ホストが顧客のアカウントをプロビジョニングするときによく含められるサービスです。 上記の手順では、顧客の IIS サービスの FTP が有効になりますが、ホスティング会社名に基づく場合、FTP サーバー名は次のようになります。
ftp.hostingcompany.com すべてのユーザーに対して名前が十分に明確な場合があります。顧客がそれを使用して FTP ディレクトリに接続すると、ディレクトリに移動し、自分のフォルダーのみを表示できるようになります。 ただし、FTP サーバー名は、次のような予約ドメインに基づく FTP サーバー名ほど魅力的ではない可能性があります。
- ftp.customerdomain.com
- customerdomain.com
顧客の FTP サーバー名が予約済みドメイン名に関連付けられている場合、FTP サービスエクスペリエンスはよりパーソナライズされ、魅力的になります。 機能的には前の例と同じですが、このオプションを使用すると、顧客のドメインの名前付けが簡略化されます。 顧客ごとにカスタム FTP サーバー名を設定するには、顧客ドメインに適切な DNS レコードを作成する必要があります。 これには、追加のプロビジョニング手順が必要になります。顧客ごとにカスタム FTP サーバー名を指定する場合は、別のサーバー名を指定して、ドメイン名前が更新される際に FTP サービスが停止することを防ぐこともできます。 カスタム名と共に指定する代替名の例は、ftp.username.hostingcompany.com などになります。このような場合、顧客は 2 つのサーバー名を受け取り、いずれかの名前を使用して同じディレクトリに接続できます。例:
- ftp.customerdomain.com (または customerdomain.com)
- ftp.username.hostingcompany.com
Visual Web Developer から接続する
この記事ではこれまで、共有ホスティング環境で FTP を配置する方法に重点を置いて説明してきました。 このセクションでは、顧客が Visual Web Developer 2008 (VWD) を利用して、ホスト側が提供する FTP サービスを使用して Web アプリケーションを発行する方法について説明します。 次の例では、次のことを前提としています。
- ホスティング会社が "ftpuser1" という名前のユーザーにアカウントをプロビジョニングした。
- ホスティング会社が対応する仮想フォルダー "ftproot\LocalUser*ftpuser1*" を作成した。
VWD を使用して Web アプリケーション コンテンツを公開するには、ftpuser1 で次の手順を実行します。
Ftpuser1 で、Visual Web Developer 2008 (VWD) で "WebSite1" という Web サイトを開きます。
Ftpuser1 で、[Web サイト] メニューから [Web サイトのコピー] を選択します。
Ftpuser1 で [接続] をクリックします。
Ftpuser1 で次の値を入力します。
- ホスティング会社が提供した FTP サーバー名。 次の例では、ループバック IP アドレスは 127.0.0.1 です。
- Port。 次の例では、既定値はポート 21 です。
- パッシブ モード オプション。
- 基本認証オプション。 Ftpuser1 で匿名ログインの選択を解除します。
- ユーザー名: ftpuser1。
- パスワード。
その後、Ftpuser1 で [開く] をクリックします。
Ftpuser1 のフォルダーが [リモート Web サイト] ウィンドウに表示されます。 次の例では、ftpuser1 で初めて Web サイトを公開するため、ウィンドウは空です。
Ftpuser1 では、すべてのファイルとフォルダーを選択し、[同期] をクリックして、ソース Web サイト ペイン内のすべてのコンテンツ アイテムを公開します。
- Ftpuser1 で左側のウィンドウをクリックします。
- Ftpuser1 で Ctrl + A キーを押して、すべてのファイルを選択します。
- Ftpuser1 で [同期] をクリックします (2 つのウィンドウの間にある、上部の 3 番目のボタン)。
ファイルとフォルダーは FTP サーバーにアップロードされ、ユーザーの仮想ディレクトリ ftpuser1 に格納されます。 (ユーザー分離の制限により、ユーザーは同じサーバー上の他のユーザーのコンテンツを識別しません。)
まとめ
このガイドでは、共有ホスティング環境に FTP for IIS サービスをインストールして構成するために必要な情報を提供します。 また、顧客が Visual Web Developer を利用してコンテンツを FTP サイト ディレクトリに公開する方法についても説明します。