シナリオ: IIS で FTP サイトを構築する
著者: Keith Newman と Robert McMurray
ファイル転送プロトコル (FTP) simple は、コンピューター システム間でファイルを転送するためのプロトコルです。 IIS 8 には、構成が簡単な FTP サーバーが含まれています。
このドキュメントには、既存の IIS 8 Web サーバーでの FTP サーバーのインストール方法と構成方法が記載されています。 最初の 2 つの手順が必須です。 その他のすべての手順は省略できますが、推奨されます。
前提条件
このチュートリアルを最大限に活用するには、次のいずれかのオペレーティング システムを実行しているコンピューターにアクセスできる必要があります。
- Windows Server® 2012
- Windows® 8
手順 1: 既存の IIS Web サーバーへの FTP のインストール
この手順では、Windows Server 2012 または Windows 8 のいずれかを実行している、既存の IIS Web サーバーに FTP サービスをインストールする方法を示します。
Windows Server 2012 に FTP をインストールするには
- [スタート] 画面で [サーバー マネージャー] タイルをクリックし、[はい] をクリックします。
- サーバー マネージャーのダッシュボードで [役割と機能の追加]をクリックします。
- 役割と機能の追加ウィザード の [開始する前に] ページが表示された場合は、 [次へ]をクリックします。
- [インストールの種類の選択] ページで [役割ベースまたは機能ベースのインストール]を選択し、 [次へ]をクリックします。
- [対象サーバーの選択] ページで [サーバー プールからサーバーを選択]を選択し、 [サーバー プール] の一覧からサーバーを選択し、 [次へ]をクリックします。
- [サーバーの役割の選択] ページで [Web サーバー (IIS)] ノードを展開し、 [FTP サーバー] ノードを展開します。
- [FTP サーバー] チェック ボックスと [FTP サービス] チェック ボックスをオンにして、 [次へ]をクリックします。
- [機能の選択] ページで、[次へ] をクリックします。
- [インストール オプションの確認] ページで、[インストール] をクリックします。
Windows 8 に FTP をインストールするには
- [スタート] 画面で「コントロール パネル」と入力し、検索結果の [コントロール パネル] アイコンをクリックします。
- [プログラム] をクリックし、[Windows の機能の有効化または無効化] をクリックします。
- [Windows の機能] ダイアログ ボックスで [インターネット インフォメーション サービス] ノードを展開します。
- [FTP サーバー] ノードを展開します。
- [FTP サーバー] チェック ボックスと [FTP サービス] チェック ボックスをオンにして、[OK] をクリックします。
手順 2: FTP サイトの追加
IIS Web サーバーに FTP サービスをインストールした後、1 つまたは複数の FTP サイトを追加することができます。 クライアントがファイル転送プロトコル (FTP) を使ってサイトとの間でファイルを送受信できるようにするには、FTP サイトを追加します。
Note
FTP の設定は [サイト] セクションに含まれているため、FTP の設定を変更すると、Web サイトのアプリケーションも強制的にリサイクルされます。 このような副作用を回避する場合は、HTTP と FTP の両方ではなく、FTP 専用に設定されたサイトを追加します。
FTP サイトを追加するには
IIS マネージャーを開きます。
[接続] ウィンドウでサーバー ノードを展開し、 [サイト] ノードをクリックします。
[操作] ウィンドウで [FTP サイトの追加] をクリックして、 FTP サイトの追加 ウィザードを開きます。
[サイト情報] ページの [FTP サイト名] ボックスに、FTP サイトの一意なフレンドリ名を入力します。
[物理パス] ボックスに物理パスを入力するか、参照ボタン ([...]) をクリックして、コンテンツ ディレクトリの物理パスを指定します。
[次へ] をクリックして、 [バインドと SSL の設定] ページを開きます。
IP アドレスを [未使用の IP アドレスすべて]のままにしない場合は、 [バインド] の [IP アドレス]の一覧で IP アドレスを選択または入力します。
[ポート] ボックスにポート番号を入力します。
単一の IP アドレスで複数の FTP サイトをホストする場合は、必要に応じて、 [仮想ホスト] ボックスにホスト名を入力します。 たとえば、
www.contoso.com
と入力します。サイトを手動で開始する場合は、 [FTP サイトを自動的に開始する] ボックスをオフにします。
[SSL]の [SSL 証明書] 一覧で証明書を選択します。 必要に応じて [表示] をクリックして [証明書] ダイアログ ボックスを開き、選択した証明書に関する情報を確認します。
次のいずれかのオプションを選択してください。
- [SSL を許可する]:FTP サーバーでクライアントとの非 SSL 接続と SSL 接続の両方のサポートを許可します。
- [SSL が必要]:FTP サーバーとクライアントの間の通信には SSL 暗号化が必要です。
[次へ] をクリックして、 [認証および承認の情報] ページを開きます。
[認証]で認証方法または使用する方法を選択します。
- [匿名]:ユーザー名 anonymous または ftpだけを提供して、すべてのユーザーにコンテンツへのアクセスを許可します (すべてではないにしてもほとんどの FTP クライアントでは、ユーザー名が自動的に入力されます)。
- [基本]:コンテンツにアクセスするには、有効なユーザー名とパスワードを提供する必要があります。 基本認証では、暗号化されていないパスワードがネットワークを経由して転送されるため、この認証方法は、クライアントと FTP サーバー間の接続が安全であることが判明している場合 (Secure Sockets Layer (SSL) を使用している場合など) にだけ使用します。
[承認]の [アクセスを許可する対象] 一覧から、次のオプションのいずれかを選択します。
- すべてのユーザー:すべてのユーザーは匿名であるか、識別されているかどうかにかかわらず、コンテンツにアクセスできます。
- [匿名ユーザー]:匿名ユーザーはコンテンツにアクセスできます。
- [指定された役割またはユーザー グループ]:特定の役割またはユーザー グループのメンバーだけがコンテンツにアクセスできます。 対応するボックスに役割またはユーザー グループを入力します。
- [指定されたユーザー]:指定されたユーザーだけが、コンテンツにアクセスできます。 対応するボックスにユーザー名を入力します。
[アクセスを許可する対象] 一覧からオプションを選択した場合、次のアクセス許可のどちらかまたは両方を選択します。
- [読み取り]:承認されているユーザーは、ディレクトリからコンテンツを読み取ることができます。
- [書き込み]:承認されているユーザーは、ディレクトリに書き込むことができます。
[完了] をクリックします。
手順 3: FTP サイトの既定値の構成
新しい FTP サイトで別の既定値を使用する場合に、FTP サイトの既定値を変更します。
Note
既定値を変更しても、既存のサイトは新しい値でオーバーライドされません。 既存のサイトの値は手動で変更します。
FTP サイトの既定値を構成するには
- IIS マネージャーを開きます。
- [接続] ウィンドウでサーバー ノードと [サイト] ノードをクリックします。
- [操作] ウィンドウをクリックして、[FTP サイトの既定値] をクリックします。
- 設定を変更して、[OK] をクリックします。
次の表に、[FTP サイトの既定値] ダイアログ ボックスで構成に使用できる設定を一覧表示します。
カテゴリの設定 | 設定名 | 説明 |
---|---|---|
全般 | UTF-8 を許可 | UTF8 エンコードを使用するかどうかを指定します。 既定値は True です。 |
全般 | 自動的に開始 | True の場合、FTP サイトの作成時または FTP サービスの開始時に開始されます。 既定値は True です。 |
つながり | コントロール チャネルのタイムアウト | 無通信が原因で接続タイムアウトが発生した場合のタイムアウト (秒) を指定します。 |
つながり | データ チャネルのタイムアウト | 無通信が原因でデータ チャネル タイムアウトが発生した場合のタイムアウト (秒) を指定します。 |
つながり | ソケット プールの無効化 | ポート番号やホスト名ではなく、IP アドレスによって識別されたサイトに対して、ソケット プールを使用するかどうかを指定します。 |
つながり | Max Connections (最大接続数) | サーバーに対する最大同時接続数を指定します。 |
つながり | 最大接続数でリセット | 最大接続応答の送信時に、FTP セッションを切断するかどうかを指定します。 |
つながり | サーバー リッスン バックログ | キューに格納可能な未処理のソケット数を指定します。 |
つながり | 認証されていないタイムアウト | 新しい接続が確立してから認証が成功するまでのタイムアウト (秒) を指定します。 |
資格情報のキャッシュ | Enabled | FTP サービスに対して資格情報のキャッシュが有効かどうかを指定します。 |
資格情報のキャッシュ | [Flush Interval] | キャッシュに保存されている資格情報のキャッシュ有効期間を指定します。 |
ファイル処理 | アップロード中にファイルの読み取りを許可 | サーバーへの転送中に、ファイルが読み取り可能かどうかを指定します。 |
ファイル処理 | 名前変更時の置き換えを許可 | 名前変更時に、他のファイルを上書きできるかどうかを指定します。 |
ファイル処理 | 一部のアップロードを保持 | 部分的にアップロードされたファイルを保持するかどうかを指定します。 |
手順 4: ファイアウォールのサポートの構成
FTP ファイアウォールのサポート機能を使用して、ファイアウォールからパッシブなデータ接続を FTP サーバーが受け入れることができる以下の設定を構成します。
- データ チャネル ポート範囲: パッシブ データ接続のポートの範囲を指定します。 またファイアウォール上で同じ範囲のポートを開くことも必要です。 このオプションはサーバー レベルでのみ構成できます。ポート範囲「0-0」は、サーバーの一時ポートの範囲を使用することを意味します。 一時ポートは、TCP/IP が事前定義された範囲から割り当てる、一時的なトランスポート プロトコルです。
- ファイアウォールの外部 IP アドレス: クライアントがファイアウォールを介して FTP サーバーと通信する場合、クライアントが使用する IP アドレスを認識するように、ファイアウォールの外部 IP アドレスを指定します。
ファイアウォールのサポートを構成するには
IIS マネージャーを開きます。
[接続] ウィンドウでサーバー ノードを選択します。
[機能ビュー] で [FTP ファイアウォールのサポート] をダブルクリックします。
[データ チャネルのポート範囲] ボックスで、ポート番号の範囲を入力します (ハイフンで区切ります)。 たとえば、「5000-6000」と入力します。 または、「0-0」を入力して、Windows TCP/IP 設定で指定された既定のポート範囲を使用します。
Note
ポート 0 から 1024 は予約ポートのため、使用しないでください。
[ファイアウォールの外部 IP アドレス] ボックスに、ファイアウォールの IP アドレスを入力します。
[操作] ウィンドウで、[適用] をクリックします。
手順 5: ユーザー分離の構成
ユーザーの分離機能を使用すると、ユーザーを分離するように FTP サーバーを構成できます。これにより、ユーザーは同じ FTP サイトの他のユーザーのディレクトリにアクセスできなくなります。 ユーザーを分離しないように選択した場合は、共通のディレクトリ構造を共有します。
たとえば、共有コンテンツのダウンロード機能だけを提供するサイトや、ユーザー間でデータの保護を必要としないサイトでは、ユーザーの分離を実行しないことを選択できます。
サイトでユーザーを分離する場合は、以下の分離オプションのいずれかを選択できます。
- ユーザー名ディレクトリ: FTP ユーザー アカウントと名前が同じ物理または仮想ディレクトリにユーザー セッションを分離します。 ユーザーには FTP ルートの位置だけが表示されます。そのため、物理または仮想ディレクトリ ツリーの上方向への移動は制限されます。 作成されるすべてのグローバル仮想ディレクトリは無視されます。
- ユーザー名物理ディレクトリ:FTP ユーザー アカウントと名前が同じ物理ディレクトリにユーザー セッションを分離します。 ユーザーには FTP ルートの位置だけが表示されます。そのため、物理ディレクトリ ツリーの上方向への移動は制限されます。 作成されるグローバル仮想ディレクトリは、すべてのユーザーに適用されます。
- Active Directory で構成された FTP ホーム ディレクトリ: FTP ユーザーごとに、Active Directory アカウント設定で構成されているホーム ディレクトリに、ユーザー セッションを分離します。
ユーザー分離を構成するには
IIS マネージャーを開きます。
[機能ビュー] で [FTP ユーザーの分離] をダブルクリックします。
ユーザーを分離しない場合は、[ユーザーを分離しない。次のユーザーを開始します:] で次のオプションのいずれかを選択します。
- FTP ルート ディレクトリ: すべての FTP セッションが、FTP サイトのルート ディレクトリで開始されることを指定します。 このオプションを使用すると、すべてのユーザーの分離とフォルダー ロジックの開始が無効になります。
- ユーザー名ディレクトリ: フォルダーが存在する場合、すべての FTP セッションが、現在のログオン ユーザーと名前が同じ物理または仮想ディレクトリで開始されることを指定します。
ユーザーを分離する場合は、[ユーザーを分離する。ユーザーを次のディレクトリに制限します: で、次のオプションのいずれかを選択します。
- ユーザー名ディレクトリ (グローバルな仮想ディレクトリを無効にします): FTP ユーザー アカウントと同じ名前の物理または仮想ディレクトリに、ユーザー セッションを分離します。
- ユーザー名物理ディレクトリ (グローバルな仮想ディレクトリを有効にします): FTP ユーザー アカウントと同じ名前の物理ディレクトリに、ユーザー セッションを分離します。
- Active Directory で構成された FTP ホーム ディレクトリ: FTP ユーザーごとに、Active Directory アカウント設定で構成されているホーム ディレクトリに、ユーザー セッションを分離します。
- カスタム: このオプションは高度な機能です。開発者はこのオプションを使って、独自のビジネス ニーズに基づいてホーム ディレクトリを参照する、カスタム プロバイダーを作成することができます。
前の手順で [Active Directory で構成された FTP ホーム ディレクトリ] を選択した場合、[設定] ボタンをクリックして、Active Directory サーバーへのアクセス権限がある [資格情報の設定] ダイアログ ボックスの [ユーザー名] ボックスと [パスワード] ボックスに、ユーザー名とパスワードを入力します。 [パスワードの確認] ボックスにもう一度パスワードを入力し、[OK] をクリックします。
[操作] ウィンドウで、[適用] をクリックします。
手順 6: ディレクトリの参照オプションの構成
ディレクトリの参照機能を使うと、FTP ディレクトリを参照したときに表示される内容を制御できます。
ディレクトリの参照オプションを構成するには
IIS マネージャーを開きます。
[接続] ウィンドウで、サーバー レベルまたはサイト レベルのいずれかを選択します。
[機能ビュー] で [FTP ディレクトリの参照] をダブルクリックします。
[FTP ディレクトリの参照] ページの [ディレクトリの表示スタイル] で、次のオプションのいずれかを選択します。
- MS-DOS: MS-DOS に準拠した方法でディレクトリの内容を表示します。
- UNIX: UNIX に準拠した方法でディレクトリの内容を表示します。
[ディレクトリの表示オプション] で、ディレクトリ一覧に表示する情報を選択します。 以下のオプションを選択することもできます。
- 仮想ディレクトリ: 仮想ディレクトリを表示します。
- 使用可能な {bytes}: ファイル サイズをバイト単位で表示します。
- 西暦を 4 桁で表示: 西暦を 2 桁ではなく、4 桁で表示します。
[操作] ウィンドウで、[適用] をクリックします。
手順 7: ログオン試行制限の構成
この機能を使用すると、IP アドレスが拒否されるまで、指定した時間内で許可される、ログオン試行の最大失敗数を構成することができます。
ログオン試行制限を構成するには
- IIS マネージャーを開きます。
- [接続] ウィンドウでサーバー レベルを選択します。
- [機能ビュー] で [FTP Logon Attempt Restrictions] をダブルクリックします。
- [FTP Logon Attempt Restrictions] ページで、[FTP Logon Attempt Restrictions の有効化] チェック ボックスをオンにします。
- [失敗したログイン試行の最大数] ボックスに、正の整数を入力します。 既定値は 4 ですが、
- [期間 (秒)] ボックスに、正の整数を入力します。 既定値は 30 です。
- [失敗したログイン試行数に基づいて IP アドレスを拒否する] または [ログにのみ書き込む] のいずれかを選択します。 [ログにのみ書き込む] を選択すると、失敗した試行の最大数を超えた場合でも、IIS はクライアントを制限しません。
- [操作] ページで [適用] をクリックします。
手順 8: 要求のフィルターの構成
[FTP 要求フィルター] 機能ページは、FTP サイトの要求フィルター設定を定義するときに使います。 FTP 要求フィルターはセキュリティ機能の一種であり、インターネット サービス プロバイダー (ISP) とアプリケーション サービス プロバイダーはこれを使って、プロトコルとコンテンツの動作を制限することができます。
要求のフィルターを構成するには
- IIS マネージャーを開きます。
- [接続] ウィンドウで、サーバー レベルまたはサイト レベルのいずれかを選択します。
- [機能ビュー] で [FTP 要求フィルター] アイコンをダブルクリックします。
- 一般的な要求フィルター設定を変更するには、[操作] ウィンドウの [機能設定の編集] をクリックします。 次に必要に応じて、一般設定を編集します。
- ファイル名拡張子に基づいてフィルターを追加するには、[ファイル名拡張子] タブを選択します。[操作] ウィンドウで、[ファイル名拡張子の許可] または [ファイル名拡張子の拒否] のいずれかをクリックします。 次に [ファイル名拡張子] ボックスに拡張子を入力し、[OK] をクリックします。
- URL セグメント (フォルダー名など) に基づいてフィルターを追加するには、[非表示セグメント] タブを選択します。[操作] ウィンドウで、[非表示セグメントの追加] をクリックします。 次に [非表示セグメント] ボックスにセグメントを入力し、[OK] をクリックします。
- URL シーケンスに基づいてフィルターを追加するには、[拒否する URL シーケンス] タブを選択します。[操作] ウィンドウで [URL シーケンスの追加] をクリックします。 次に [URL シーケンス] ボックスにシーケンスを入力し、[OK] をクリックします。
- コマンドに基づいてフィルターを追加するには、[コマンド] タブを選択します。[操作] ウィンドウで、[コマンドの許可] または [コマンドの拒否] のいずれかをクリックします。 次に [コマンド] ボックスにコマンドを入力し、[OK] をクリックします。 (警告: コマンド ベースのフィルターを追加する機能は、高度な機能です。この機能を不適切に使用すると、サーバー上のすべての FTP クライアントへのアクセスが拒否される可能性があります。)
手順 9: FTP ログの構成
FTP ログ機能を使って、サーバー レベルまたはサイト レベルでログ機能を構成したり、ログ設定を構成することができます。
FTP ログを構成するには
IIS マネージャーを開きます。
[接続] ウィンドウで、サーバー レベルまたはサイト レベルのいずれかを選択します。
[機能ビュー] で [FTP ログ] アイコンをダブルクリックします。
[ログ ファイル作成単位] メニューで、[サイト] または [サーバー] をクリックします。
[ログ ファイル] で [W3C フィールドの選択] をクリックし、記録する情報を選択します。
[ディレクトリ] で、FTP ログ ファイルを保存する基本フォルダーへのパスを入力するか、[参照] をクリックして基本フォルダーを参照します。
[エンコード] で、[UTF8] (シングルバイト文字とマルチバイト文字) または [ANSI] (シングルバイト文字のみ) のいずれかを選択します。
[ログ ファイル ロール オーバー] で、FTP による新しいログ ファイルの作成方法を次の一覧から選択します。
- スケジュール: 新しいログ ファイルの作成間隔を、[毎時]、[毎日]、[毎週]、または [毎月] から選択します。
- ファイルの最大サイズ (バイト): ファイル サイズがそのバイト数を越えた場合に新しいログ ファイルを作成する値を、正の整数で入力します。
- 新しいログ ファイルを作成しない
協定世界時 (UTC) ではなく、ローカル タイム ゾーンに基づいてログ ファイルの名前付けとロールオーバーを実行する場合は、[ファイル名およびロールオーバーに地域設定を使用する] チェック ボックスをオンにします。
[操作] ウィンドウで、[適用] をクリックします。
手順 10: FTP メッセージの構成
FTP メッセージ機能を使って、FTP サイトに接続した場合に送信されるメッセージの設定を変更します。
FTP メッセージを構成するには
[接続] ウィンドウで、サーバー レベルまたはサイト レベルのいずれかを選択します。
[機能ビュー] で [FTP メッセージ] をダブルクリックします。
[FTP メッセージ] ページの [メッセージの動作] で、FTP メッセージの動作を選択します。 以下のオプションを選択することもできます。
既定のバナーを表示しない: FTP サーバーの既定の識別バナーを表示するかどうかを指定します。
メッセージ内のユーザー変数をサポートする: FTP メッセージに特定のユーザー変数セットを表示するかどうかを指定します。 次のユーザーの変数がサポートされています。
- %BytesReceived% - 現在のセッションで、サーバーからクライアントに送信されたバイト数。
- %BytesSent% - 現在のセッションで、クライアントからサーバーに送信されたバイト数。
- %SessionID% - 現在のセッションの一意の識別子。
- %SiteName% - 現在のセッションをホストしている FTP サイトの名前。
- %UserName% - 現在ログオンしているユーザーのアカウント名。
ローカル要求に対する詳細なメッセージを表示する: FTP クライアントがサーバー自体 (ローカル ホスト) の FTP サーバーに接続されている場合、詳細なエラー メッセージを表示するかどうかを指定します。
[メッセージ テキスト] の下の以下のボックスにメッセージを入力します。
- バナー: FTP クライアントが初めて FTP サーバーに接続された場合に FTP サーバーが表示するメッセージを指定します。
- 接続時のメッセージ: FTP クライアントが FTP サーバーにログインした場合に FTP サーバーが表示するメッセージを指定します。
- 終了: FTP クライアントが FTP サーバーからログ オフした場合に FTP サーバーが表示するメッセージを指定します。
- Maximum Connections (最大接続数): FTP サービスがクライアントの許容接続最大数に達したことが原因で、クライアントの接続ができない場合に、FTP サーバーが表示するメッセージを指定します。
[操作] ウィンドウで、[適用] をクリックします。