IIS 7 の FTP Over SSL を使用する
作成者: 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/download/FTP という URL からサービスをダウンロードしてインストールする必要がありました。 |
はじめに
Microsoft は、Windows Server® 2008 用に完全に書き換えられた新しい FTP サービスを作成しました。 この FTP サービスには、Web 作成者が以前よりもスマートにコンテンツを公開できる多くの新機能が組み込まれており、Web 管理者がセキュリティと展開に関してより多くの選択肢を利用できるようになりました。
そうした機能の 1 つが、FTP クライアントとサーバーの間でセッションを暗号化できる FTP over Secure Sockets Layer (SSL) です。 このドキュメントでは、FTP サイトをセットアップし、IIS 7.0 の構成ファイルを直接編集できる新しい FTP ユーザー インターフェイスで SSL を使用するようにサイトを構成する方法について説明します。 その構成要素を次に示します。
- 前提条件
- (省略可) 自己署名 SSL 証明書を作成する
- IIS 7.0 マネージャーを使用して SSL 対応 FTP サイトを作成する
- IIS 7.0 の構成ファイルを編集して SSL ベースの FTP 公開機能を追加する
Note
このチュートリアルには、ローカル管理者アカウントを使用して FTP サイトにログインする一連の手順が含まれています。 これらの手順は、必ずサーバー自体でループバック アドレスを使用するか、またはリモート サーバーから SSL 経由で行ってください。 管理者アカウントではなく別のユーザー アカウントを使用する場合は、適切なフォルダーを作成し、必要に応じてそのユーザー アカウントの適切なアクセス許可を設定する必要があります。
前提条件
この記事の手順を完了するには、次の項目をインストールする必要があります。
Windows 2008 Server に IIS 7.0 をインストールし、インターネット インフォメーション サービス マネージャーをインストールする必要があります。
新しい FTP サービス。 次のいずれかのリンクを使用して、Web サイト (https://www.iis.net/) から FTP サービスをダウンロードしてインストールできます。
- FTP 7.5 for IIS 7.0 (x64)
- FTP 7.5 for IIS 7.0 (x86)
FTP 公開用のルート フォルダーを作成する必要があります。
%SystemDrive%\inetpub\ftproot
にフォルダーを作成します。管理者グループのアクセス許可を設定します。
- コマンド プロンプトを開きます。
- 次のコマンドを入力します:
ICACLS "%SystemDrive%\inetpub\ftproot" /Grant administrators:F /T
- コマンド プロンプトを閉じます。
Note
このチュートリアルに出現する各設定では、FTP サイトへのパスとして %SystemDrive%\inetpub\ftproot
が指定されています。 必ずしもこのパスを使用する必要はありませんが、サイトの場所を変更する場合は、このチュートリアル全体で使用されるサイト関連のパスを変更する必要があります。
(省略可) 自己署名 SSL 証明書を作成する
ここでは、FTP サイトのテストに使用する自己署名 SSL 証明書を作成しますが、この作業が不要な場合もあります。
Note
インターネット ベースのアクティビティ用に FTP サイトを設定する場合は、VeriSign、Thawte、DigiCert などの各種の証明機関のいずれかから SSL 証明書を取得することになります。詳細については、「証明機関」を参照してください。
- インターネット インフォメーション サービス (IIS 7.0) マネージャーを開きます。
- [接続] ツリーの一番上のノードで自分のコンピューターをクリックし、[サーバー証明書] 機能をダブルクリックします。
- [アクション] ペインで、[自己署名証明書の作成] をクリックします。
- 新しい証明書の名前として「My FTP Certificate」と入力し、[OK] をクリックします。
IIS 7.0 マネージャーを使用して SSL 対応 FTP サイトを作成する
手順 1: FTP サイト ウィザードを使用して SSL ベースの FTP サイトを作成する
この最初の手順では、管理者アカウントのみを使用して開くことができる新しい FTP サイトを作成します。
IIS 7.0 マネージャーに移動します。 [接続] ペインのツリーから [サイト] ノードを開きます。
ツリーの [サイト] ノードを右クリックし、[FTP サイトの追加] をクリックするか、[操作] ペインの [FTP サイトの追加] をクリックします。
FTP サイトの追加ウィザードが表示されたら次の操作を行います。
[FTP サイト名] ボックスに「My New FTP Site」と入力し、「前提条件」セクションで作成した
%SystemDrive%\inetpub\ftproot
フォルダーに移動します。Note
コンテンツ フォルダーへのパスを入力したい場合は、パス内で環境変数を使用できます。
次へ をクリックします。
次のウィザード ページで次の操作を行います。
[IP アドレス] ボックスの一覧から FTP サイトの IP アドレスを選択するか、または既定値である [すべて未割り当て] を選択します。このチュートリアルの後半で管理者アカウントを使用するため、必ずサーバーへのアクセスを制限し、[IP アドレス] ボックスには「127.0.0.1」と入力して、コンピューターのローカル ループバック IP アドレスを入力してください。
通常は、[ポート] ボックスに FTP サイトの TCP/IP ポートを入力します。 このチュートリアルでは、既定のポートである 21 を選択します。
このチュートリアルではホスト名を使用しないため、[仮想ホスト] ボックスは必ず空欄にしてください。
[証明書] ドロップダウンが SSL 証明書に設定されていることを確認します。 たとえば、省略可能な手順に従って自己署名証明書を作成した場合、ドロップダウン ボックスには "My FTP Certificate" と表示されます。
[SSL を許可する] オプションがオンになっていることを確認します。
次へ をクリックします。
次のウィザード ページで次の操作を行います。
[認証] 設定で [基本] を選択します。
[認可] の設定は次のようにします。
- [以下へのアクセスを許可] ボックスの一覧から [指定されたユーザー] を選択します。
- ユーザー名として「administrator」と入力します。
- [アクセス許可] オプションの [読み取り] と [書き込み] を選択します。
これらの項目が完了したら、[終了] をクリックします。
まとめ
新しい FTP サービスを使用して、SSL ベースの新しい FTP サイトが正常に作成されました。
この手順で完了した項目をまとめます。
- "My New FTP Site" という名前の新しい FTP サイトを作成し、サイトのコンテンツ ルートを
%SystemDrive%\inetpub\ftproot
に設定しました。 - コンピューターのローカル ループバック アドレスにポート 21 で FTP サイトをバインドしました。
- FTP サイトに Secure Sockets Layer (SSL) を必要とすることを選択し、SSL 証明書を選択しました。
- 基本認証を有効にし、ローカル管理者アカウントに読み取りと書き込みアクセスを付与する認可規則を作成しました。
手順 2: 追加の FTP SSL 設定を構成する
FTP の SSL ポリシーは、サイトごとにカスタマイズできます。 コントロール チャネルとデータ チャネルに対して異なる設定を指定できます。 この手順では、FTP サイトの SSL 設定を別途構成して、FTP アクティビティが暗号化されていない場合でも、ユーザー資格情報についてはすべて暗号化されるようにします。
IIS 7.0 マネージャーに移動します。 手順 1 で作成した FTP サイトのノードをクリックします。 すべての FTP 機能のアイコンが表示されます。
SSL オプションを構成するには、[FTP の SSL 設定] アイコンをダブルクリックして SSL 設定機能ページを開きます。
[FTP の SSL 設定] ページが表示されたら、[カスタム] オプションを選択し、[詳細設定] ボタンをクリックします。
[Advanced SSL Policy](SSL ポリシーの詳細設定) ダイアログ ボックスが表示された場合は、次のようにします。
コントロール チャネルの [Require only for credentials](資格情報のみ必須) オプションをオンにします。
Note
この設定では、すべてのユーザー名とパスワードが SSL で暗号化されている必要がありますが、他のすべてのコントロール チャネル アクティビティは、暗号化するかどうかをクライアントが選択できます。
データ チャネルの [許可] オプションをオンにします。
Note
この設定により、データ チャネル アクティビティを暗号化するかどうかをクライアントが選択できるようになります。
これらの項目が完了したら、[OK] をクリックします。
[FTP の SSL 設定] ページの [操作] ペインで [適用] をクリックして SSL の設定を保存します。
まとめ
この手順で完了した項目をまとめます。
- すべてのユーザーの資格情報が暗号化されるようにコントロール チャネルの SSL ポリシーを構成し、他のすべてのコントロール チャネル アクティビティについては暗号化するかどうかを FTP クライアントが選択できるようにしました。
- データ チャネル アクティビティを暗号化するかどうかを FTP クライアントが選択できるように、データ チャネルの SSL ポリシーを構成しました。
FTP サイトにログインする
手順 1. では、管理者アカウントでアクセスできる FTP サイトを作成しました。 手順 2 では、ユーザーの資格情報についてはすべて暗号化を必須とする一方で、それ以外のすべてのコントロール チャネル アクティビティとデータ チャネル アクティビティについては暗号化するかどうかを FTP クライアントが選択できるように、コントロール チャネルの SSL ポリシーを構成しました。
SSL 対応 FTP クライアントを使用して FTP サーバーにログインする場合、FTP サーバーは次の明示的なセキュリティ オプションをサポートします。
- TLS-C/TLS - RFC2228 の既定値で接続に TLS を使用します。 これは、データ接続の暗黙的な保護がないことを意味します。
- TLS-P/SSL - 接続に TLS を使用します。 つまり、データ接続は暗黙的に保護されます。
これらの設定は、サード パーティのほとんどの FTP クライアントで SSL 接続オプションを指定するときに構成できます。
IIS 7.0 の構成ファイルを編集して SSL ベースの FTP 公開機能を追加する
IIS 7.0 の構成ファイルを編集して、SSL ベースの FTP 公開機能を既存の Web サイトに追加することもできます。
Note
applicationHost.config ファイルを編集するには、完全な管理権限が必要です。 次の 2 つの方法のいずれかを使用します。
- ローカルの "管理者" アカウントを使用してコンピューターにログインします。
または
- ローカルの "管理者" アカウント以外の管理アクセス許可を持つアカウントを使用してログインしている場合は、[管理として実行] オプションを使用してメモ帳を開きます。
Note
Windows Vista および Windows Server 2008 オペレーティング システムではユーザー アカウント制御 (UAC) セキュリティ コンポーネントによって applicationHost.config ファイルへのアクセスが禁止されているため、上記の手順のいずれかが必要です。 UAC の詳細については、「 ユーザー アカウント制御」を参照してください。
以降の手順では、既定の Web サイトに FTP 公開機能を追加するために必要なすべての設定について説明します。
手順 1: SSL 証明書のハッシュを取得する:
- [サーバー証明書] 機能で、該当する SSL 証明書をダブルクリックします。 たとえば、省略可能な手順に従って自己署名証明書を作成した場合は、"My FTP Certificate" という名前の証明書をダブルクリックします。
- [詳細] タブをクリックします。
- フィールドをスクロールして [拇印] の値を見つけます。
- [拇印] の値を強調表示すると、次のような形式のデータが表示されます。
"57 68 6F 61 20 44 75 64 65 2C 20 49 49 53 20 52 6F 63 6B 73" - テキスト ボックスから 16 進データをコピーし、クリップボードに貼り付けます。 次に、Windows メモ帳を開き、空のドキュメントにデータを貼り付けます。
Note
この情報は後で使用します。
手順 2: 既定の Web サイトに FTP を追加する
Windows のメモ帳などテキスト エディターを使用して applicationHost.config ファイルを開きます。既定では、
%SystemRoot%\System32\inetsrv\config
フォルダーに格納されています。既定の Web サイトのセクションを見つけます。 次の例のようになるはずです。
<site name="Default Web Site" id="1"> <application path="/"> <virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\wwwroot" /> </application> <bindings> <binding protocol="http" bindingInformation="*:80:" /> </bindings> </site>
bindings コレクションに新しいバインディング要素を作成します。 新しいバインディング要素の protocol 属性の値を "ftp" に設定し、bindingInformation 属性のポート値を "21" に変更します。 既定の Web サイトの設定は、次の例のようになります。
<site name="Default Web Site" id="1"> <application path="/"> <virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\wwwroot" /> </application> <bindings> <binding protocol="http" bindingInformation="*:80:" /> <binding protocol="ftp" bindingInformation="*:21:" /> </bindings> </site>
終了 <bindings> タグの下に <ftpServer> セクションを追加します。認証と SSL の設定はここに格納されます。
Note
FTP サイトの認証設定は、URL ごとに構成できる Web サイトの認証とは異なり、サイト レベルで構成されます。
<ftpServer> <security> <authentication> <anonymousAuthentication enabled="false" userName="IUSR" /> <basicAuthentication enabled="true" /> </authentication> <ssl serverCertHash="" controlChannelPolicy="SslRequire" dataChannelPolicy="SslRequire" /> </security> </ftpServer>
SSL 証明書の拇印データをコピーして、SSL 要素の serverCertHash 属性に貼り付けます。 拇印データからすべてのスペースを削除します。
Note
16 進データは大文字に変換しないと、後で IIS マネージャーに表示されません。
この時点で、既定の Web サイトの設定は次の例のようになっているはずです。
<site name="Default Web Site" id="1"> <application path="/"> <virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\wwwroot" /> </application> <bindings> <binding protocol="http" bindingInformation="*:80:" /> <binding protocol="ftp" bindingInformation="*:21:" /> </bindings> <ftpServer> <security> <authentication> <anonymousAuthentication enabled="false" /> <basicAuthentication enabled="true" /> </authentication> </security> <ssl serverCertHash="57686F6120447564652C2049495320526F636B73" controlChannelPolicy="SslRequire" dataChannelPolicy="SslRequire" /> </ftpServer> </site>
applicationHost.config ファイルの一番下までスクロールし、既定の Web サイトの location セクションを追加します。ここには、認可の設定が追加されます。
Note
この例に示すように、FTP サイトの認可設定は URL ごとに構成されます。
<location path="Default Web Site"> <system.ftpServer> <security> <authorization> <add accessType="Allow" users="administrator" permissions="Read, Write" /> </authorization> </security> </system.ftpServer> </location>
applicationHost.config ファイルを保存します。
SSL ベースの FTP クライアントを使用して既定の Web サイトにログインできるようになりました。
まとめ
このタスクでは、IIS 7.0 の構成ファイルを編集して、SSL ベースの FTP 公開機能を既定の Web サイトに追加しました。 このタスクで完了した項目をまとめます。
- 既定の Web サイトに FTP バインディングを追加しました。
- 既定の Web サイトに対して FTP 基本認証を有効にし、FTP 匿名認証を無効にしました。
- コントロール チャネルとデータ チャネルのすべてのアクティビティに SSL を要求するようにサイトを構成しました。
- 既定の Web サイトに対する読み取り/書き込みアクセス許可を持つように管理者アカウントを構成しました。