Windows Server 2012 R2でFTPS(FTP over SSL/TLS)サーバーを構築する完全ガイド
ファイル転送に広く使われているFTPには、大きな弱点があります。それは、転送されるデータを保護・暗号化する仕組みが標準では用意されていないという点です。FTPサーバーに接続する際、ユーザー名やパスワードも平文で送信されるため、盗聴のリスクにさらされます。特に公衆回線などの信頼できない通信経路を使ってデータを転送する場合は、FTPSやSFTPなど、より安全なプロトコルを利用することが推奨されます。本記事では、Windows Server 2012 R2上にFTPSサーバーを構築する手順を詳しく解説します。
FTPSとSFTPの違いについて
FTPSプロトコル(FTP over SSL/TLS、FTP+SSLとも呼ばれます)は、標準的なFTPプロトコルを拡張したもので、クライアントとサーバー間の通信をSSL/TLSによって暗号化して保護します。接続には従来どおり21番ポートが使用されるのが一般的です。
注意:FTPSとSFTP(Secure FTP / SSH FTP)は混同しないようにしましょう。SFTPはSSHプロトコルの拡張であり、FTPとはまったく別物です。名前は似ていますが、技術的な基盤が異なるため、用途に応じて正しく選択する必要があります。
なお、FTP over SSLのサポートはIIS 7.0(Windows Server 2008)から追加されました。FTPSサーバーを動作させるには、IISサーバーにSSL証明書をインストールしておく必要があります。
FTPサーバーの役割のインストール
Windows Server 2012 R2へのFTPサーバーロールのインストールは、サーバーマネージャーから「役割と機能の追加」ウィザードを実行し、「Webサーバー(IIS)」ロール内の「FTPサーバー」を選択するだけで完了します。特別な問題はなく、すでに多くのドキュメントでも解説されている基本的な作業です。
IISでのSSL証明書の生成とインストール方法
次に、IISマネージャーコンソールを開き、対象のサーバーを選択して[サーバー証明書]セクションへ移動します。

このセクションでは、証明書のインポート、証明書要求の作成、証明書の更新、自己署名証明書の作成などを行えます。ここでは検証目的として、自己署名証明書を作成してみましょう。(PowerShellのNew-SelfSignedCertificateコマンドレットを使って作成することも可能です。)自己署名証明書を使用した場合、サービスにアクセスした際に「信頼されていないCAが発行した証明書」という警告が表示されます。この警告を無効化したい場合は、GPO(グループポリシー)を使ってその証明書を信頼された証明書の一覧に追加してください。
[自己署名入り証明書を作成する]を選択します。

証明書作成ウィザードで証明書の名前を入力し、種類として[Web ホスティング]を選択します。

作成された新しい自己署名証明書が、利用可能な証明書の一覧に表示されます。この証明書の有効期限は1年間である点に注意してください。

SSL対応FTPサイトの作成方法
続いて、FTPサイトを作成します。IISマネージャーコンソールで[サイト]を右クリックし、新しいFTPサイトを追加([FTPサイトの追加])します。

サイト名とFTPサイトのルートディレクトリのパスを指定します(本例ではデフォルトの C:\inetpub\ftproot を使用しています)。

ウィザードの次の画面で、先ほど作成したSSL証明書を選択します。

最後に、認証方式とユーザーのアクセス権限を選択すれば設定は完了です。
ヒント:ユーザーごとに個別のFTPルートフォルダーを持たせたい場合は、「ユーザー分離機能」を使ったFTPサーバーの構築方法を参照するとよいでしょう。
ウィザードで[完了]をクリックします。デフォルトではSSLによる保護が必須となり、制御コマンドと転送データの両方が暗号化されます。
FTPSとファイアウォールの関係
FTPプロトコルでは、2つの異なるTCP接続が使用されます。1つはコマンド通信用、もう1つはデータ転送用です。データ転送チャネルごとに個別のTCPポートが開かれ、そのポート番号はクライアントまたはサーバーによって選択されます。通常、多くのファイアウォールはFTPトラフィックを検査(インスペクション)し、解析結果に基づいて必要なポートを自動的に開放できます。しかし、FTPSのように通信が暗号化されている場合、ファイアウォールはトラフィックの中身を解析できず、どのポートを開放すべきか判断できなくなります。
FTPSサーバーに対してTCP 1024〜65535の全ポート範囲を外部に開放しないためには、FTPサーバーが使用するポート範囲を限定して指定することが有効です。この範囲は、IISサイト設定の[FTP ファイアウォール サポート]セクションで指定できます。
ポート範囲を変更した後は、サービスを再起動してください(iisresetコマンドを実行)。

Windowsファイアウォールにおいて、受信トラフィックに関係する主なルールは以下のとおりです。
- FTP サーバー (FTP Traffic-In)
- FTP サーバー パッシブ (FTP Passive Traffic-In)
- FTP サーバー セキュリティで保護 (FTP SSL Traffic-In)
したがって、境界ファイアウォール側では、21番ポート、990番ポート、および50000〜50100番ポート(自分が指定したパッシブポート範囲)を開放する必要があります。
FTP over SSL接続のテスト方法
FTPS接続の動作確認には、FileZillaを使用してみましょう。
- FileZillaを起動します(FTPSに対応した他のクライアントでも構いません)。
- [ファイル] > [サイト マネージャ]を開き、新しい接続([新しいサイト])を作成します。

- FTPSサーバーのアドレス(ホスト)、プロトコルの種類([明示的な FTP over TLS が必要])、ユーザー名(ユーザー)、および認証時にパスワードを入力するよう設定([パスワードを尋ねる])を指定します。
- [接続]をクリックし、パスワードを入力します。
- 自己署名証明書を使用している場合、「信頼されていない証明書」に関する警告が表示されます。内容を確認して接続を承認してください。

- 接続が確立されると、ログに以下のようなエントリが表示されます。
Status: Initializing TLS...
Status: Verifying certificate...
Status: TLS connection established. - これらのメッセージが表示されれば、安全な接続が正常に確立されており、FTPSプロトコルによるファイル転送が可能になったことを意味します。
以上の手順により、Windows Server 2012 R2上で暗号化された安全なファイル転送環境を構築できます。本番環境では、自己署名証明書ではなく信頼されたCAが発行する証明書を使用し、パッシブポート範囲も運用規模に合わせて適切に設計することをおすすめします。
-
Windows Server 2016/2012でバックアップを削除する方法|wbadminコマンドの使い方を徹底解説
Windows Serverバックアップユーティリティを使用して、Active DirectoryやスタンドアロンのWindows Server 2016または2012のバックアップを行っていると、バックアップコピーが複数蓄積されることで、バックアップ先ディスクの容量が不足することがあります。このような問題でお困りの方は、ぜひ本記事をご覧ください。 Windows Serverバックアップツールを使用すると、管理者はオペレーティングシステム、インストール済みアプリケーション、Active Directoryに関するすべての情報(システム状態バックアップ)を含むサーバーデータ全体のフルバックアッ
-
Windows 10でFTPサーバーを構築・管理する方法【初心者向け完全ガイド】
Windows 10にFTP(File Transfer Protocol)サーバーを構築すると、どこからでも自分のPCにファイルをアップロード・ダウンロードできるようになります。FTPサーバーは、いわば「自分が完全にコントロールできるプライベートクラウド」です。通信速度は契約しているインターネット回線に依存し、月間の転送量制限もありません。また、ファイルのサイズや種類による制限もないため、1KBの小さなバックアップファイルでも、1TBもの大容量データでも問題なく扱えます。アカウント数にも上限がないため、友人や同僚、家族と一緒にファイルを保存・共有することも可能です。 この記事では、Windo