Windows環境では、デフォルトでは無効化されている機能があり、明示的に有効化することで利用可能となる機能があります。
その中の一つに、WebサーバーやFTPサーバーを提供することができる「インターネット インフォメーション サービス(以下、IIS)」があります。
そこでここではWindows 10を例に、IISでFTPサーバーを構築する方法を紹介します。
なお、IISでFTPサーバーを構築するにはそれなりの所要時間が必要になるため、サクッと簡単にFTPサーバーを構築したい場合は「Serva」といったツールの利用がおすすめです。
目次
FTPサーバー機能の有効化
まず、IISのFTPサーバー機能を有効化します。
Windowsの「設定」アプリを起動して「アプリ」を選択します。
「アプリ」画面が開いたら、アプリと機能にある「オプション機能」をクリックします。
「オプション機能」画面が開いたら、下部の「関連設定」にある「Windowsのその他の機能」をクリックします。
「Windowsの機能」画面が開くので、一覧から「インターネット インフォメーション サービス」の「FTPサーバー」と「Web 管理ツール」をそれぞれ展開して、「FTP Service」と「IIS 管理コンソール」にチェックを入れて「OK」をクリックします。
機能の有効化処理が正常に終了したら、FTPサーバー機能の有効化は完了です。
FTPサーバーの設定
つぎに、FTPサーバーの設定を行います。
FTPユーザー作成
まず、FTPサーバーに接続するときに利用するユーザーを作成します。(FTPサーバーに匿名接続する場合は、この手順はスキップします。)
ユーザーは、Windows 10のローカルアカウントとして作成し、既存のユーザーアカウントを利用する場合は、この手順はスキップします。
Windows 10でローカルアカウントを作成する手順は、以下の記事をご覧ください。
FTPサイトの追加
つぎに、スタートメニューのプログラム一覧から「Windows管理ツール」を展開して「インターネット インフォメーション サービス(IIS)マネージャー」をクリックします。
「インターネット インフォメーション サービス(IIS)マネージャー」が起動したら、左側の接続タブのコンピューター名を展開し「サイト」を右クリックして、メニューから「FTPサイトの追加」をクリックします。
「FTPサイトの追加」画面が表示されるので「FTPサイト名」と「コンテンツディレクトリ」を指定し「次へ」をクリックします。
「FTPサイト名」は、任意の管理しやすい名前を設定し「物理パス」には、FTP接続した時のルートディレクトリを指定します。
次画面の「バインドとSSLの設定」では、FTPサーバーの待ち受けポート番号や、FTPS(FTP over SSL)サーバーにするかを設定して「次へ」をクリックします。
待ち受けポート番号は、特別な事情がない限り変更する必要はありません。
SSL設定では、FTPサーバーとして構築する場合は「無し」を選択し、FTPSサーバーとして構築する場合は「必要」を選択し、SSL証明書で使用する証明書を選択します。
SSL証明書は、FTPSサーバーをインターネットに公開する予定なら、第三者認証局で発行してもらったSSL証明書をあらかじめインポートしておき、FTPSサーバーを内部ネットワークだけで利用したり、テスト目的で利用する場合は、自己署名証明書を作成しておく方法があります。
次画面の「認証および承認の情報」では、FTPサーバーに匿名(anonymous)で接続させる場合は、認証で「匿名」にチェックを入れ、ユーザー認証させる場合は「基本」にチェックを入れます。
承認の「アクセスの許可」では、FTPサーバーに接続したユーザーに対して「読み取り」や「書き込み」を許可するかを指定し「終了」をクリックします。
作成したサイトが、サイトの一覧画面に表示されていればOKです。
パッシブモードの設定
FTPでは、FTPサーバとFTPクライアントとの間で通信が行われ、通信には制御用の通信とデータ転送用の通信があり、一昔前のFTPで一般的だったアクティブモードでは、制御用の通信はクラアントからサーバーのTCP21番ポートに対して行われ、データ転送用の通信はサーバーのTCPポート20番ポートからクライアントに対して通信が行われます。
そのため、FTPをアクティブモードで使用するには、FTPクライアントマシンのファイアウォールでFTPのデータ転送通信の受信を許可する必要があります。
対して、パッシブモードでは、制御用の通信とデータ転送用の通信ともにクラアントからサーバーに対して行われるため、FTPクラアイン側のファイアウォール設定で受信を許可する必要がないというメリットがあり、最近のFTPではパッシブモードで使用することがほとんどです。
つぎに、FTPサーバーを外部に公開するときの安全性を考えて、FTPサーバーをパッシブモードで動作するよう設定しておきます。
「インターネット インフォメーション サービス(IIS)マネージャー」の接続タブで、コンピューター名をクリックして、機能ビューから「FTPファイアウォールのサポート」をダブルクリックします。
「FTPファイアウォールのサポート」画面が開いたら「データ チャネルのポート範囲」に、データコネクションで利用したいポートの範囲を指定し「適用」をクリックします。
以下では、例としてポート範囲に「60000-60100」を設定しています。
ファイアウォールの設定を促す画面が表示されたら「OK」をクリックします。
設定の反映
上記で行った設定を反映させるため、サービスを再起動します。
スタートメニューのプログラム一覧から「Windows管理ツール」を展開して「サービス」をクリックします。
「サービス」画面が起動したら、サービスの一覧から「Microsoft FTP Service」を選択して、メニューから「サービスの再起動」をクリックします。
サービスが再起動されたら、設定の反映は完了です。
ファイアウォールの設定
つぎに、別のマシンからFTPサーバーに接続できるようファイアウォールの設定を変更します。
スタートメニューのプログラム一覧から「Windows管理ツール」を展開して「セキュリティが強化された Windows Defender ファイアウォール」をクリックします。
「セキュリティが強化された Windows Defender ファイアウォール」が起動したら、左側のメニューから「受信の規則」を選択して、規則の一覧から「FTPサーバー(FTPトラフィック受信)」と「FTPサーバーパッシブ(FTPパッシブトラフィック受信)」を選択して「規則の有効化」をクリックします。
以上で、FTPサーバーの構築完了です。
接続確認
最後に、接続確認として別のWindowsマシンから、構築したFTPサーバーにアクセスできるか、読み書きできるかをチェックします。
暗号化されていないFTPサーバーへ接続するときは、エクスプローラーを使った方法がお手軽です。
暗号化されたFTPSサーバーへ接続するときは、FTPS接続に対応したサードパーティーのツール(Filezillaなど)が必要です。
FTPSサーバーをImplicitモードで動作させるには
FTPSには、認証コマンド実行後に暗号化通信を開始するExplicitモードと、サーバ接続開始時点から暗号化通信を開始するImplicitモードあり、IISで構築したFTPSサーバーは、既定でExplicitモードに設定されています。
現在では、Explicitモードを利用するケースが多いようですが、次の設定を行うことで、IISのFTPSサーバーをImplicit モードで稼働させることもできます。
- 待ち受けポート番号を「21」から「990」に変更
- 「セキュリティが強化された Windows Defender ファイアウォール」で受信の規則「FTPサーバーセキュリティ(FTP SSL トラフィック受信)」を有効化