WindowsのIISでFTPサーバーを構築する方法

WindowsのIISでFTPサーバーを構築する方法

Windows環境では、デフォルトでは無効化されている機能があり、明示的に有効化することで利用可能となる機能があります。

その中の一つに、WebサーバーやFTPサーバーを提供することができる「インターネット インフォメーション サービス(以下、IIS)」があります。

そこでここではWindows 10を例に、IISでFTPサーバーを構築する方法を紹介します。

なお、IISでFTPサーバーを構築するにはそれなりの所要時間が必要になるため、サクッと簡単にFTPサーバーを構築したい場合は「Serva」といったツールの利用がおすすめです。

FTPサーバー機能の有効化

まず、IISのFTPサーバー機能を有効化します。

Windowsの「設定」アプリを起動して「アプリ」を選択します。

WindowsのIISでFTPサーバーを構築する方法

「アプリ」画面が開いたら、アプリと機能にある「オプション機能」をクリックします。

WindowsのIISでFTPサーバーを構築する方法

「オプション機能」画面が開いたら、下部の「関連設定」にある「Windowsのその他の機能」をクリックします。

WindowsのIISでFTPサーバーを構築する方法

「Windowsの機能」画面が開くので、一覧から「インターネット インフォメーション サービス」の「FTPサーバー」と「Web 管理ツール」をそれぞれ展開して、「FTP Service」と「IIS 管理コンソール」にチェックを入れて「OK」をクリックします。

WindowsのIISでFTPサーバーを構築する方法

機能の有効化処理が正常に終了したら、FTPサーバー機能の有効化は完了です。

WindowsのIISでFTPサーバーを構築する方法

FTPサーバーの設定

つぎに、FTPサーバーの設定を行います。

FTPユーザー作成

まず、FTPサーバーに接続するときに利用するユーザーを作成します。(FTPサーバーに匿名接続する場合は、この手順はスキップします。)

ユーザーは、Windows 10のローカルアカウントとして作成し、既存のユーザーアカウントを利用する場合は、この手順はスキップします。

Windows 10でローカルアカウントを作成する手順は、以下の記事をご覧ください。

Windowsでローカルアカウントを追加作成する3つの方法
Windowsでローカルアカウントを追加作成する3つの方法
Windows 10でローカルアカウント(ユーザー)を追加/作成する3つの方法を紹介します。

FTPサイトの追加

つぎに、スタートメニューのプログラム一覧から「Windows管理ツール」を展開して「インターネット インフォメーション サービス(IIS)マネージャー」をクリックします。

WindowsのIISでFTPサーバーを構築する方法

「インターネット インフォメーション サービス(IIS)マネージャー」が起動したら、左側の接続タブのコンピューター名を展開し「サイト」を右クリックして、メニューから「FTPサイトの追加」をクリックします。

WindowsのIISでFTPサーバーを構築する方法

「FTPサイトの追加」画面が表示されるので「FTPサイト名」と「コンテンツディレクトリ」を指定し「次へ」をクリックします。

「FTPサイト名」は、任意の管理しやすい名前を設定し「物理パス」には、FTP接続した時のルートディレクトリを指定します。

WindowsのIISでFTPサーバーを構築する方法

次画面の「バインドとSSLの設定」では、FTPサーバーの待ち受けポート番号や、FTPS(FTP over SSL)サーバーにするかを設定して「次へ」をクリックします。

待ち受けポート番号は、特別な事情がない限り変更する必要はありません。

SSL設定では、FTPサーバーとして構築する場合は「無し」を選択し、FTPSサーバーとして構築する場合は「必要」を選択し、SSL証明書で使用する証明書を選択します。

SSL証明書は、FTPSサーバーをインターネットに公開する予定なら、第三者認証局で発行してもらったSSL証明書をあらかじめインポートしておき、FTPSサーバーを内部ネットワークだけで利用したり、テスト目的で利用する場合は、自己署名証明書を作成しておく方法があります。

Windowsで自己署名証明書を作成する方法
Windowsで自己署名証明書を作成する方法
Windowsの「Internet Information Service(IIS)」またはPowerShellコマンドレットで自己署名証明書を作成する方法を紹介します。

WindowsのIISでFTPサーバーを構築する方法

次画面の「認証および承認の情報」では、FTPサーバーに匿名(anonymous)で接続させる場合は、認証で「匿名」にチェックを入れ、ユーザー認証させる場合は「基本」にチェックを入れます。

承認の「アクセスの許可」では、FTPサーバーに接続したユーザーに対して「読み取り」や「書き込み」を許可するかを指定し「終了」をクリックします。

WindowsのIISでFTPサーバーを構築する方法

作成したサイトが、サイトの一覧画面に表示されていればOKです。

WindowsのIISでFTPサーバーを構築する方法

パッシブモードの設定

FTPでは、FTPサーバとFTPクライアントとの間で通信が行われ、通信には制御用の通信とデータ転送用の通信があり、一昔前のFTPで一般的だったアクティブモードでは、制御用の通信はクラアントからサーバーのTCP21番ポートに対して行われ、データ転送用の通信はサーバーのTCPポート20番ポートからクライアントに対して通信が行われます。

そのため、FTPをアクティブモードで使用するには、FTPクライアントマシンのファイアウォールでFTPのデータ転送通信の受信を許可する必要があります。

対して、パッシブモードでは、制御用の通信とデータ転送用の通信ともにクラアントからサーバーに対して行われるため、FTPクラアイン側のファイアウォール設定で受信を許可する必要がないというメリットがあり、最近のFTPではパッシブモードで使用することがほとんどです。

つぎに、FTPサーバーを外部に公開するときの安全性を考えて、FTPサーバーをパッシブモードで動作するよう設定しておきます。

「インターネット インフォメーション サービス(IIS)マネージャー」の接続タブで、コンピューター名をクリックして、機能ビューから「FTPファイアウォールのサポート」をダブルクリックします。

WindowsのIISでFTPサーバーを構築する方法

「FTPファイアウォールのサポート」画面が開いたら「データ チャネルのポート範囲」に、データコネクションで利用したいポートの範囲を指定し「適用」をクリックします。

以下では、例としてポート範囲に「60000-60100」を設定しています。

WindowsのIISでFTPサーバーを構築する方法

ファイアウォールの設定を促す画面が表示されたら「OK」をクリックします。

WindowsのIISでFTPサーバーを構築する方法

設定の反映

上記で行った設定を反映させるため、サービスを再起動します。

スタートメニューのプログラム一覧から「Windows管理ツール」を展開して「サービス」をクリックします。

WindowsのIISでFTPサーバーを構築する方法

「サービス」画面が起動したら、サービスの一覧から「Microsoft FTP Service」を選択して、メニューから「サービスの再起動」をクリックします。

WindowsのIISでFTPサーバーを構築する方法

サービスが再起動されたら、設定の反映は完了です。

ファイアウォールの設定

つぎに、別のマシンからFTPサーバーに接続できるようファイアウォールの設定を変更します。

スタートメニューのプログラム一覧から「Windows管理ツール」を展開して「セキュリティが強化された Windows Defender ファイアウォール」をクリックします。

WindowsのIISでFTPサーバーを構築する方法

「セキュリティが強化された Windows Defender ファイアウォール」が起動したら、左側のメニューから「受信の規則」を選択して、規則の一覧から「FTPサーバー(FTPトラフィック受信)」と「FTPサーバーパッシブ(FTPパッシブトラフィック受信)」を選択して「規則の有効化」をクリックします。

WindowsのIISでFTPサーバーを構築する方法

以上で、FTPサーバーの構築完了です。

接続確認

最後に、接続確認として別のWindowsマシンから、構築したFTPサーバーにアクセスできるか、読み書きできるかをチェックします。

暗号化されていないFTPサーバーへ接続するときは、エクスプローラーを使った方法がお手軽です。

WindowsのエクスプローラーでFTPサーバーに接続する方法
WindowsのエクスプローラーでFTPサーバーに接続する方法
WindowsのエクスプローラーからFTPサーバーに接続して、ファイルをアップロードしたりダウンロードする方法を紹介します。

暗号化されたFTPSサーバーへ接続するときは、FTPS接続に対応したサードパーティーのツール(Filezillaなど)が必要です。

FTPSサーバーをImplicitモードで動作させるには

FTPSには、認証コマンド実行後に暗号化通信を開始するExplicitモードと、サーバ接続開始時点から暗号化通信を開始するImplicitモードあり、IISで構築したFTPSサーバーは、既定でExplicitモードに設定されています。

現在では、Explicitモードを利用するケースが多いようですが、次の設定を行うことで、IISのFTPSサーバーをImplicit モードで稼働させることもできます。

  1. 待ち受けポート番号を「21」から「990」に変更
  2. 「セキュリティが強化された Windows Defender ファイアウォール」で受信の規則「FTPサーバーセキュリティ(FTP SSL トラフィック受信)」を有効化