Windows Server で FTP サイトを構築する

ページ作成日 :

はじめに

Windows Server で FTP サーバーを運用したい場合のセットアップ手順について説明します。

注意点

FTP サーバーをただ建てただけでは通信内容が暗号化されていないため、インターネット上で FTP サーバーをそのまま公開するのはなるべく避けてください。 利用する場合はイントラネットなどできる限り閉じた空間で利用することをお勧めします。 インターネット上などで FTP サーバーを公開する場合は SFTP や FTPS などを利用することをお勧めします。

環境

Windows Server
  • Windows Server 2019

現時点で Windows Server 2008 以降であれば他のバージョンの Windows Server でもセットアップはほぼ同じです。

前提条件

ここで紹介している内容は以下の条件を前提としています。

  • 基本認証のみ (暗号化は行っていません)
  • SFTP ではないので秘密鍵などは使用しません
  • FTPS ではないので SSL 等は使用しません。

FTP 接続のアカウントを作成

FTP のアカウントは Windows のユーザーアカウントとして扱うことになります。 そのため、Windows 上でユーザーを作る必要があります。 FTP でアクセスするパスワードも Windows のユーザーアカウントで登録したものを使用します。

「スタートメニュー」を右クリックして「コンピューターの管理」を選択します。

「ユーザー」を右クリックし「新しいユーザー」を選択します。

FTP で接続する際に使用するユーザー名とパスワードを指定します。 ユーザー名を「FtpUser」にしていますが Tips 用に作成しているので、実運用で作成する場合は運用に合わせたユーザー名、パスワードを入力して下さい。 Windows Server の設定によっては簡易なパスワードは登録できないようになっています。

FTP 利用者に Windows にログインさせることはないので「ユーザーはパスワードを変更できない」「パスワードを無期限にする」 にチェックを入れています。

作成したユーザーは FTP による接続のみで使用するので Windows にログオンされないようにします。作成したユーザーをダブルクリックしてください。

「所属するグループ」タブを選択し、「Users」を削除します。

仮に複数のアカウントを作る場合は複数の Windows ユーザーアカウントを作成する必要があります。

FTP 接続先に使用するフォルダ作成

FTP で接続したときにアップロードまたはダウンロードで使用するフォルダを作成します。作成するのは Windows の物理フォルダになります。

作成する場所は任意の場所で構いません。複数の FTP アカウントを作る場合でもルートフォルダを一つ作成し、内部にユーザーごとのフォルダを作成して権限を割り当てますことになります。(他にもやり方はありますが長くなるので割愛)

ここでは「C:\FtpFolder\」を作成しています。

FTP アカウントでフォルダ内のファイルにアクセスできるように権限を設定します。FTP に使用するフォルダのプロパティを開き、「セキュリティ」タブから「編集」ボタンをクリックします。

「追加」ボタンをクリックします。

アカウント名「FtpUser」と入力し 名前の確認 ボタンをクリックします。エラーがなければ OK ボタンをクリックします。

登録したアカウントを選択し「変更」の権限を許可します。

念のため、FTP で接続したときにきちんと接続できているか確認するため、確認用のファイルを配置しておきます。

FTP サーバーの構築

Windows Server に FTP サーバーの役割をインストールします。

「サーバー マネージャー」を実行します。

「役割と機能の追加」をクリックします。

「次へ」をクリックします。

「役割ベースまたは機能ベースのインストール」にチェックがついていることを確認し「次へ」をクリックします。

FTP サーバーの役割をインストールするサーバーが選択されていることを確認し「次へ」をクリックします。

「Web サーバー (IIS)」にチェックを入れます。

確認ダイアログが表示されるので「機能の追加」ボタンをクリックします。IIS を追加したら次へをクリックします。

「機能の選択」画面では何もせずに「次へ」をクリックします。

「次へ」をクリックします。

「FTP サーバー」にチェックを入れます。また、初期状態では Web サーバー にチェックがついているため、Web サイトの公開が不要であればチェックを外してください。

確認が終わったら「インストール」ボタンをクリックします。

インストールが完了するまで待ちます。インストールが完了したら画面を閉じてください。

FTP サイトの構築

FTP の機能をインストールしただけなのでまだ FTP サイトにはアクセスできません。ここでは FTP サイトを構築します。

「サーバー マネージャー」から「ツール」メニューを選択して「インターネット インフォメーション サービス (IIS) マネージャー」を選択します。ちなみに IIS はスタートメニューなど他の場所からでも開くことができます。

「サイト」を右クリックし「FTP サイトの追加」を選択します。

FTP サイト名を任意に設定します。ここでは FtpTest としています。「物理パス」には前に作成した FTP 用のフォルダパス (C:\FtpFolder) を指定します。

バインドについてはとりあえずそのままにします。今回は SSL を使用しないので SSL は「無し」にチェックしておきます。

認証はアカウント必須にするので「基本」のみにチェックします。

承認については今回 FtpUser アカウントのみアクセスさせるので、指定されたユーザー を選択してアクセスさせる FtpUser を入力します。複数のアカウントを許可する場合はカンマ区切りで入力します。この設定は後で FTP の承認規則 から変更可能です。

アクセス許可の 読み取り, 書き込み にチェックを入れます。

ファイアウォールの確認

これまでの設定を正しく行えばファイアウォールの設定は特に必要ないですが念のため確認しておきます。

「サーバー マネージャー」から「ツール」メニューを選択し「セキュリティが強化された Windows ファイアウォール」を選択します。(スタートメニューなどからも開けます)

「受信の規則」を選択し、

  • FTP サーバー (FTP トラフィック受信)
  • FTP サーバー セキュリティ (FTP SSL トラフィック受信)
  • FTP サーバー パッシブ (FTP パッシブ トラフィック受信)」

があることを確認します。

FTP サービスの再起動

セットアップ直後は FTP の設定が反映されていないのでサービスを再起動します。(Windows の再起動も可)

サービスから Microsoft FTP Service を再起動します。

FTP による接続確認 (アクティブモード)

ほかの PC から FTP でアクセスできるか確認してみます。FTP で接続できるものであればツールなどを使用してもかまいません。図では FTP コマンドを使用してアクセスしています。詳しい使い方は「FTP コマンド」で調べてみてください。以下は簡単な手順になります。

また、アップロード、ダウンロードのテストとして「C:\Temp\a.txt」ファイルをアップロードして「C:\Temp\a2.txt」にダウンロードしています。

  1. コマンドプロンプト (または PowerShell) を起動
  2. 「ftp」と入力して FTP コマンドを使用開始
  3. 「open <サーバー名>」でサーバーに接続
  4. ユーザー名を入力
  5. パスワードを入力
  6. 「ls」コマンドでルートフォルダにあるファイル、フォルダの一覧を表示
  7. 「pwd」コマンドで現在のカレントディレクトリを確認
  8. 「put」コマンドでファイルをアップロード
  9. 「get」コマンドでファイルをダウンロード
  10. 「quit」で FTP の接続を切る

クライアントフォルダの結果

サーバーフォルダの結果

ls, put, get などの取得情報が含まれるコマンドを使用するとファイアウォールの許可を求められたり、ファイアウォールによってタイムアウトすることがあります。 これは FTP をアクティブモードで接続していることによってサーバーからクライアントへアクセスが行われるためです。 このままアクティブモードでアクセスする場合はクライアント側のファイアウォールで ftp.exe (32bit or 64bit) を許可するか、パッシブモード で接続する必要があります。

FTP による接続確認 (パッシブモード)

Windows の場合 FTP コマンドでパッシブモードで接続できないため、WinSCP というツールで確認します。(パッシブモードが使えるツールならなんでもいいです)

まず、FTP サーバーへのアクセス情報を入力します。

設定を開いて パッシブモード が有効になっていることを確認します。

接続できることを確認します。

アクティブモードとパッシブモードについて

アクティブモードとパッシブモードの違いについてはネットなどで調べてもらった方が分かりやすいと思いますが、 簡単に違いを語るとすれば、アクティブモードはサーバーからクライアントに対して任意に決定されたポートに対してアクセスするのに対し、 パッシブモードはクライアントからサーバーに対し任意に決定されたポートに対してアクセスします。 そのため、モードによってどちらかがファイアウォールでアクセスを解放する必要があります。

まとめ

これで Windows Server に FTP サーバーを立てることができました。 現時点では FTP の通信は暗号化されていないため、 暗号化通信が可能な FTPS についても別記事で紹介したいと思います。

秘密鍵を利用した暗号化通信である SFTP についてはこちらのページで紹介しています。