FTP の展開と VWD による発行のガイド

公開日: 2009 年 1 月 19 日 (作業者: walterov (英語)

更新日: 2009 年 1 月 19 日 (作業者: walterov (英語))

はじめに

IIS 7 の新しい FTP サービスは、Windows Web Platform の主要コンポーネントです。Windows 環境における堅牢性および安全性に優れた FTP ソリューションを提供します。共有ホスティング環境の管理者は、IIS 7 用 FTP を使用して、コンテンツのアップロードや同期といった機能を顧客に提供できます。記事「Microsoft FTP 7.5 の新機能」では、新しい FTP 機能について紹介しています。主な内容は以下のとおりです。

IIS 7 との統合:

  • .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 のいくつかの機能の概要とデモを紹介しています。

FTP の展開

FTP は、共有ホスティング構成のフロントエンド サーバーの 1 つです。

Ff454121.537_ftp1(ja-jp,TechNet.10).jpg

この図では、共有ホスティング環境における FTP 展開のいくつかの重要な特徴が強調されています。

  1. FTP サービスは、リモート管理 (Web 管理 - WMSVC) <リンク要> や MS 展開サービス <リンク要> に使用するコンピューターを共有できます。

  2. FTP コンピューターは、Web ファームのサーバーが使用する共有構成の一部です。つまり、このコンピューターにインストールされているコンポーネントは、Web ファームのサーバー上にも存在します。ただし、Web ファームは FTP 要求の処理には使用しないため、FTP、Web 管理 (WMSVC)、MS 展開サービスは停止しておくことができます <リンク要>。

  3. FTP コンピューターでは、Web アプリケーションをホストすることを目的とはしていません。

  4. インターネット用のファイアウォール ルーターは、FTP サーバーへの FTP トラフィックのポート フォワーディングを実行します。

展開構成

 

IIS 7 サーバー用の FTP には、共有ホスティングのシナリオに最適な機能がいくつかあります。以下は、新しい FTP ユーザー分離機能を活用ガイドです。この機能によって、次のことが可能になります。

  • 管理者は、ユーザーのアクセスを、そのユーザー用に定義した物理/仮想ディレクトリに制限できます。つまり、単一の FTP サイトを実装して、そのサイトに、ユーザー名ごとに固有の物理ディレクトリまたは仮想ディレクトリを作成できます。

  • 管理者は、SSL を有効にして、すべての接続に対して 単一の証明書を使用できます (ユーザーが明示的に要求する場合)。

  • ユーザーは FTP サイトを自分だけのサイトであるかのように閲覧できます。FTP サーバーにログオンしたユーザーにはそのユーザー用のディレクトリだけが表示され、上位のディレクトリ ツリーへの移動はできません。

手順:

  1. FTP コンピューターを選択し、新しい IIS 7 用 FTP サービスをインストールします。「FTP 7 のインストールとトラブルシューティング」の説明に従います。

  2. FTP サイトのルート フォルダー (例: "%SystemDrive%\inetpub\ftproot") を作成します。

  3. FTP に高可用性や負荷分散の要件がある場合は、必要に応じて、マイクロソフトが提供するネットワーク負荷分散フェールオーバー クラスターなどのソリューションを使用できます。DNS ラウンドロビンで十分な場合もあります。

  4. SSL 接続と基本認証を許可するサイトを作成します。「SSL 対応サイトの作成」<後のセクションへのリンク> の手順に従います。

  5. ユーザー分離機能を有効にします。「すべてのディレクトリに対するユーザー分離の構成」<後のセクションへのリンク> の手順に従います。

  6. 後の該当セクション <後のセクションへのリンク> の説明に従って、FTP ファイアウォールの設定を構成します。

  7. 次の方法で Windows Process Activation Service (WAS) を停止します。

    • コマンド プロンプトに「services.msc」と入力します。
      サービス コンソールが表示されます。

      Ff454121.537_ftp2(ja-jp,TechNet.10).jpg

    • [Windows Process Activation Service] をダブルクリックします。

      Ff454121.537_ftp3(ja-jp,TechNet.10).jpg

    • [Windows Process Activation Service のプロパティ] ダイアログ ボックスで、サービスの [スタートアップの種類] が [無効] になっていることを確認します。[停止]、[OK] の順にクリックします。

SSL 対応サイトの作成

このセクションでは、どのユーザー アカウントでも開くことができる新しい FTP サイトを作成します。

IIS マネージャーに移動します。[接続] ウィンドウのツリーで、[サイト] ノードをクリックします。

ツリーの [サイト] ノードを右クリックして [FTP サイトの追加] をクリックするか、[操作] ウィンドウの [FTP サイトの追加] をクリックします。

Ff454121.537_ftp4(ja-jp,TechNet.10).jpg

FTP サイトの追加ウィザードが表示されたら、以下の操作を行います。

  • [FTP サイト名] ボックスに「My New FTP Site」と入力し、FTP サイト用に作成したルート フォルダー (例: "%SystemDrive%\inetpub\ftproot") の物理パスを入力します。メモ: コンテンツ フォルダーへのパスを入力する場合は、パス内で環境変数を使用できます。

  • [次へ] をクリックします。

    Ff454121.537_ftp5(ja-jp,TechNet.10).jpg

ウィザードの次のページで、以下の操作を行います。

  • [IP アドレス] ボックスで、FTP サイトの IP アドレスを選択するか、既定の [すべて未割り当て] を選択します。この例では、ローカルのループバック IP "127.0.0.1" を使用しています。

  • [ポート] ボックスに、FTP サイトの TCP/IP ポートを入力します。この例では、既定のポート "21" を使用しています。

  • [仮想ホスト] ボックスが空欄になっていることを確認します。ホスト名は使用しません。

  • [SSL 証明書] ボックスの値が、使用する適切な証明書に設定されていることを確認します。この例では、"My FTP Certificate" という自己署名入り証明書を使用しています。この説明については、「自己署名入り SSL 証明書の作成」を参照してください。

  • [SSL] の [許可] オプションが選択されていることを確認します。

  • [次へ] をクリックします。

    Ff454121.537_ftp6(ja-jp,TechNet.10).jpg

ウィザードの次のページで、以下の操作を行います。

[認証] 設定で、[基本] を選択します。

[承認] 設定で、次のように選択します。

  • [アクセスの許可] ボックスの一覧から [すべてのユーザー] を選択します。
  • [アクセス許可] オプションで、[読み取り] および [書き込み] を選択します。

設定が終わったら、[終了] をクリックします。

Ff454121.537_ftp7(ja-jp,TechNet.10).jpg

まとめ

ここでは、新しい FTP サービスを使用して新しい SSL ベースの FTP サイトを作成しました。この手順で実行した内容は以下のとおりです。

  • "My New FTP Site" という名前で、コンテンツのルートを "%SystemDrive%\inetpub\ftproot" とする、新しい FTP サイトを作成しました。

  • FTP サイトをコンピューターの IP アドレス (ポート 21) にバインドしました。

  • FTP サイトに SSL (Secure Sockets Layer) を許可し、証明書を選択しました。

  • 基本認証を有効にし、すべてのユーザー アカウントに読み取りと書き込みのアクセスを許可する承認規則を作成しました。

XML 構成ファイルを直接編集する場合は、「IIS 7 構成ファイルの編集による SSL ベースの FTP 発行の追加」を参照してください。

すべてのディレクトリに対するユーザー分離の構成

すべてのディレクトリについてユーザーを分離すると、FTP ユーザー セッションはすべて FTP ユーザー アカウントと同じ名前の物理ディレクトリまたは仮想ディレクトリに制限されます。また、作成されたグローバルな仮想ディレクトリはすべて無視されます。このステップでは、すべてのディレクトリに対しユーザーの分離を構成します。

  1. "%SystemDrive%\inetpub\ftproot\LocalUser\" にフォルダーを作成します。このフォルダーにはすべてのローカル ユーザー アカウントのディレクトリが格納されます。このフォルダーをファイル共有サーバー (NAS) 上に作成することもできます。また、ユーザー アカウントをプロビジョニングする際は、ユーザーのコンテンツ フォルダーに読み取りと書き込みのアクセス許可を付与する必要があります。

  2. IIS マネージャーで、作成した FTP サイトのノードをクリックします。クリックすると、すべての FTP 機能のアイコンが表示されます。

  3. [FTP ユーザーの分離] アイコンをダブルクリックして、FTP ユーザーの分離機能を開きます。

    Ff454121.537_ftp8(ja-jp,TechNet.10).jpg

  4. [FTP ユーザーの分離] 機能ページが表示されたら、[ユーザー名ディレクトリ (グローバルな仮想ディレクトリを無効にします)] を選択し、[操作] ウィンドウの [適用] をクリックします。

    Ff454121.537_ftp9(ja-jp,TechNet.10).jpg

まとめ

この手順では、[ユーザー名ディレクトリ (グローバルな仮想ディレクトリを無効にします)] オプションを指定して 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 サービスのパッシブ ポート範囲の構成

このセクションでは、FTP サービスへのパッシブ接続に使用するサーバーレベルのポート範囲を構成します。手順は以下のとおりです。

IIS マネージャーに移動します。[接続] ウィンドウのツリーで、サーバーレベルのノードをクリックします。

Ff454121.537_ftp10(ja-jp,TechNet.10).jpg

機能の一覧で、[FTP ファイアウォールのサポート] アイコンをダブルクリックします。

Ff454121.537_ftp11(ja-jp,TechNet.10).jpg

[データ チャネルのポート範囲] に値の範囲を入力します。

Ff454121.537_ftp12(ja-jp,TechNet.10).jpg

FTP サービスのポートの範囲を入力したら、[操作] ウィンドウの [適用] をクリックして構成設定を保存します。**
メモ:**

有効なポートの範囲は 1025 ~ 65535 です (ポート 1 ~ 1024 はシステム サービス用に予約されています)。

特別なポート範囲「0 ~ 0」を入力することもできます。この構成の場合、FTP サーバーでは Windows の TCP/IP 動的ポート範囲が使用されます。

詳細については、次の マイクロソフト サポート情報の記事を参照してください。

このポート範囲を、ファイアウォール サーバーの許可設定に追加する必要があります。

[ファイアウォールの外部 IP アドレス] 設定で、ファイアウォール サーバーの外部 IPv4 アドレスを入力します。

Ff454121.537_ftp13(ja-jp,TechNet.10).jpg

FTP サーバーの外部 IPv4 アドレスを入力したら、[操作] ウィンドウの [適用] をクリックして構成設定を保存します。

まとめ

この手順で実行した内容は以下のとおりです。

  1. FTP サービスのパッシブ ポート範囲を構成しました。

  2. 特定 FTP サイトの外部 IPv4 アドレスを構成しました。

Windows Server 2008 ファイアウォールの構成方法については、「(オプション) 手順 3 : Windows ファイアウォール設定の構成」を参照してください。また、ファイアウォールの作業に関する詳細情報も参照してください。

 

FTP サーバー名の例

ホスティング事業者がユーザーに提供するアカウントには、FTP が含まれていることが一般的です。上記の説明に従うことで、ユーザーに IIS 7 用 FTP を提供できるようになります。FTP サーバー名は、ホスティング事業者の名前を用いる場合、次のようになります。

ftp.hostingcompany.com このように明確な名前ならば、初めてのユーザーにもわかりやすいでしょう。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 は以下の手順を実行します。

  1. Visual Web Developer 2008 (VWD) で、"WebSite1" という名前の Web サイトを開きます。

    Ff454121.537_ftp14(ja-jp,TechNet.10).jpg

  2. [Web サイト] メニューの [Web サイトのコピー] を選択します。

    Ff454121.537_ftp15(ja-jp,TechNet.10).jpg

  3. [接続] をクリックします。

    Ff454121.537_ftp16(ja-jp,TechNet.10).jpg

  4. 以下の値を入力します。

    • ホスティング事業者から提供された FTP サーバー名: 下の例では、ループバック IP アドレスは "127.0.0.1" です。

    • ポート: 下の例では、既定値はポート 21 です。

    • パッシブ モード オプション

    • 基本認証オプション: [匿名ログイン] チェック ボックスをオフにします。

    • ユーザー名: ftpuser1

    • パスワード

  5. [開く] をクリックします。

    Ff454121.537_ftp17(ja-jp,TechNet.10).jpg

  6. [リモート Web サイト] ウィンドウに ftpuser1 のフォルダーが表示されます。ftpuser1 による Web サイトの発行は初めてなので、下の例でこのウィンドウは空になっています。

    Ff454121.537_ftp18(ja-jp,TechNet.10).jpg

  7. [ソース Web サイト] ウィンドウで、すべてのコンテンツ項目を発行します。これには、次のようにしてすべてのファイルとフォルダーを選択し、[同期] ボタンをクリックします。

    • 左側のウィンドウをクリックします。

    • Ctrl キーを押しながら A キーを押し、すべてのファイルを選択します。

    • [同期] ボタン (2 つのウィンドウの間の上から 3 番目のボタン) をクリックします。

      Ff454121.537_ftp19(ja-jp,TechNet.10).jpg

  8. ファイルとフォルダーが FTP サーバーにアップロードされ、ユーザーの仮想ディレクトリ ftpuser1 に格納されます (ユーザーの分離が設定されているため、同じサーバー上にある他のユーザーのコンテンツは表示されません)。

    Ff454121.537_ftp20(ja-jp,TechNet.10).jpg

まとめ

このガイドでは、共有ホスティング環境で IIS 7 用 FTP サービスのインストールおよび構成を行う上で知っておくべき情報を紹介するとともに、ユーザーが Visual Web Developer を使用してコンテンツを FTP サイト ディレクトリに発行する方法について説明しました。