【初心者必見】Windows Server 2022でFTPサーバーを立てる方法を解説

Layer7
この記事は約14分で読めます。

はじめに

こんにちは!
この記事では、FTP(File Transfer Protocol)について、初心者の方にもわかりやすく解説します。

具体的には、本記事では以下の3つをわかりやすく解説していきます。

本記事で分かること
  1. FTPの基本的な概念
  2. WindowsサーバーでのFTP設定方法
  3. WinScp、コマンドプロンプトを使ったFTP接続の方法

FTPとは?

FTPは「File Transfer Protocol(ファイル転送プロトコル)」の略で、ネットワーク上でファイルを送受信するための仕組みです

  • パソコンからサーバーにファイルをアップロードしたり、
  • サーバーから必要なファイルをダウンロードしたり

といったことが、FTPを使うことで簡単にできるようになります。

今回のゴールは、下記の通りです。

  • Windows Server 2022でFTPサーバーを構築
  • Windows 11 Enterpriseから接続して動作確認を行う

初心者の方にも可能な限りわかりやすく解説していきますので、一緒にやっていきましょう!

なお、今回はVirtual box上に上記windows検証環境を用意して、設定を行っていきます。もし、virtual boxを構築したことがない方は下記記事を参考にしてみてください。

Windows ServerでのFTPサーバー設定手順

IISとFTPサーバー機能のインストール

  1. IISとFTPサーバー機能のインストール

まずはサーバーマネージャーから、「役割と機能の追加」をクリック

そのまま「次へ」をクリック

「役割ベースまたは機能ベースのインストール」を選択し、「次へ」をクリック

対象のサーバーを選択します。選択したら「次へ」をクリック

※本ブログの場合は下記ホスト名のサーバーを選択しています。環境によって異なりますので

ご自身のサーバー名を確認した上で進めてください

サーバーの役割で「Webサーバー(IIS)」を選択。

「Webサーバー(IIS)に必要な機能を追加しますか?」と出たら「機能の追加」を選択。

「機能の追加」をクリックすると、IISにチェックが入りますので、「次へ」をクリック。

機能の選択では、特に追加の必要がなければそのまま「次へ」。

「Webサーバーの役割(IIS)」画面ではそのまま「次へ」。

「役割サービスの選択」で下記のチェックを入れます:

  • FTP サーバー
    • FTP サービス

※FTPサーバーにチェックを入れると、FTPサービスも自動でチェックが入ります。

内容を確認して「インストール」で完了です。

インストールの進行状況が表示されます。

「インストールが正常に完了しました」と表示されればOKです!

インストールが完了したら、IISが正しく動作しているか確認しましょう。

ブラウザを開いて、アドレスバーに「http://localhost」と入力します。

下記のようなIISのスタート画面が表示されれば、Webサーバー機能が正常に動いています。

FTPユーザーの作成

Point

FTP接続には、Windows Server側で認証されるローカルユーザーが必要です。

「ファイル名を指定して実行」(Win+R)で compmgmt.msc と入力し、Enter。

ファイル名を指定して実行について、よく知らない方は下記記事をご確認ください。

[ローカルユーザーとグループ] → [ユーザー] をクリック。

右側の空白部分を右クリック → [新しいユーザー] を選択。

任意のユーザー名・パスワードを入力(例:FTP_User)。

「パスワードを無期限にする」にチェックを入れてもOKです。

作成後、一覧にユーザーが追加されていることを確認します。

FTP用のディレクトリ作成

FTPでファイルをやりとりするための専用フォルダを作成し、先ほど作成したユーザーにアクセス権を付与します。

C:\ 配下に FTP フォルダを作成します。

フォルダを右クリック → [プロパティ] を開きます。

[セキュリティ] タブを開き、[編集] をクリック。

[追加] をクリックして、ユーザーを指定します。

オブジェクト名に FTP_User を入力し、「名前の確認」で正しく認識されることを確認して「OK」。

※名前の確認で正しく認識された場合、下記画像の通り

「PC名 ¥ ユーザー名」にて表示されます。

FTP_User に「読み取り」「書き込み」などのアクセス権を付与して「OK」。

FTPサイトの作成

これからFTPサイトの設定をしていきますが、そもそもFTPサイトがわからない方向けに補足説明をしたいと思います。

FTPサイト

FTPサイトは「ファイルを置いたり、持って帰ったりできる特別なフォルダ」のことを指します。

今回の例では、IISのサーバー内の「FTP」というフォルダーが該当します。同ネットワークを通じて、ほかのユーザーせもアクセス可能です。

「FTPサイト」は、例えるなら「学校の荷物置き場」のようなものです。

たとえば学校の中にこんな部屋があると想像してみてください。

生徒たちが自由にプリントを置いたり、取りに来たりできる部屋でも、ちゃんと「カギ(パスワード)」がないと入れないし、先生が「この子は見るだけOK」「この子は置いてもOK」ってルールを決めてる部屋をイメージしてください。

誰がなにをする?たとえで言うと
クライアント(使う人)ファイルをアップロードプリントを置く
クライアント(使う人)ファイルをダウンロードプリントを取りに行く

でも、「だれでも勝手に入れる」わけじゃなくて、

  • ユーザー名とパスワード(鍵)
  • 先生(管理者)が決めたルール(アクセス権)

この2つがあって、決められた人だけが正しく使える仕組みになっています。

これをPCの世界に当てはめるとFTPサイトが該当します。

話は脱線しましたが、設定手順に戻りましょう。

[IISマネージャー] を開きます。

左ペインから [サイト] を右クリック → [FTP サイトの追加] を選択。

以下の情報を入力:

サイト名:FTP_SITE

物理パス:C:\FTP(※任意の共有フォルダー)

バインドとSSL設定:

IPアドレス:すべて未割り当て(または特定アドレス)

SSL:今回は「SSLなし」を選択(※本番環境では要設定)

認証と承認情報:

認証:基本

アクセス許可:指定ユーザー(例:Administrator)

権限:読み取り / 書き込み を付与

下記画像の通り、IISマネージャー上に先ほど作成した「FTP」サイト名が表示されていれば、設定は完了です。

Windowsファイアウォールの設定

早速、windowsファイアーウォールの設定を行っていきますが、FTPの通信について少し補足説明を行っていきたいと思います。


不要な方はここは読み飛ばしてください。

FTPの補足説明

FTPは「2つの通信」を使います

  1. 制御用の通信(コマンドのやり取り)
    • 常に ポート21 を使います(サーバー側)
  2. データ転送用の通信(ファイルのやり取り)
    • → このとき ポート20を使うかどうかは“モード”次第”

FTPではデータ用の通信を行う際に2つのモードをどちらかを選ぶ必要があります。

モードデータポート使い方
アクティブモードサーバーの ポート20 を使用サーバーがクライアントに接続しにいく
パッシブモードサーバーが指定するランダムな高ポートを使用クライアントがサーバーに接続しにいく

アクティブモード

  • クライアント → サーバーに ポート21 で接続(制御)
  • サーバー → クライアントの任意ポートポート20から接続(データ)

このときだけポート20が使われます!


パッシブモード

  • クライアント → サーバーの ポート21 に接続(制御)
  • クライアント → サーバーの 指定されたポート(例:50000番台) に接続(データ)

ポート20は使われません。

今回は、パッシブモードにてwindowsファイアーウォールの設定を行っていきます。

FTPサーバー(IIS)でパッシブポート範囲を設定

まず、Windows Server上のIIS FTPサーバーでパッシブモードに使用するポート範囲を指定します。

既定ではFTPサーバーは1024~65535の空きポートをデータ通信に使用できますが、任意の範囲に制限することが可能です。

「インターネット インフォメーション サービス (IIS)マネージャーの左ペインでサーバー名を選択し、中央ペインの 「FTP ファイアウォールのサポート」アイコンをダブルクリックします。

パッシブポート範囲を入力 – 「FTPファイアウォールのサポート」画面で、「データ チャネルのポート範囲」にパッシブモードで使用するポート範囲を指定します

今回は、FTPのデータ通信用に下記ポートを指定しています。

ポート番号範囲:2000-2010

数値を入力し終わったら、下記画像の通り、右ペインの適用をクリックします。

クリックすると、下記画面が表示されますが、そのままOK選択してください。

FTPサービスの再起動

パッシブポート範囲の設定を反映させるため、FTPサービスを再起動します。

サーバーマネージャーの「ツール」から「サービス」を開ます。

一覧から 「Microsoft FTP Service」を選択して再起動してください​。これでFTPサーバー側のパッシブポート範囲の指定が完了です。

WindowsファイアウォールでFTP用の受信規則を有効化

IIS側でFTPサービスの設定ができたら、Windows Defender ファイアウォール(高度なセキュリティ)でFTP通信に必要な受信ポートを解放します。

Windows Server 2022 にはFTP用の受信規則があらかじめ定義されているため、新規に作成することなくFTPの通信は行えてしまいますが、今回は検証用なのでWindowsファイアーウォールの設定も行っていきましょう。


[サーバーマネージャー] から Windows Defender Firewall を起動

「ツール(T)」 > 「セキュリティが強化された Windows Defender ファイアウォール」を選択

現在アクティブになっているプロファイルを確認します。

本ブログでは、「プライベート」を有効にしています。

ちなみにWindowsのファイアウォールについて詳しく知りたい方は下記記事でもWindowsファイアーウォールについて解説しています。

既存で許可されているFPTサーバパッシブの規則をダブルクリックします。

下記画像の通り、有効のチェックを外し、OKをクリックします。

[受信の規則] の「新しい規則」を選択

3. 規則の種類: 「ポート」を選択

TCP/UDP ポートの接続を制限する規則を作成


4. プロトコルとポート:

  • TCP
  • 特定のローカルポート: 2000-2010

5. 操作: 「接続を許可する」を選択


6. プロファイル: すべてにチェック

(ドメイン / プライベート / パブリック)


7. 名前: ルール名を入力

例: FTPデータ通信用ポート

そして「完了」をクリック


8. 規則が設定されたことを確認

FTPのパッシブ通信が指定したポート範囲にのみ制限されることを確認

Windows 11からFTP接続

では早速動作確認をしていきましょう。

Windows 標準の FTP クライアント(コマンドプロンプトで使う ftp コマンド)は、パッシブモードに対応していません。

その為、今回はWinSCPを用いて、動作確認を行っていきます。

もし、Win SCPを使ったことがない方はダウンロードリンクを下記に載せておきますので、よろしければご利用ください。

※インストールは自己責任でお願いします。

WinSCP :: Official Site :: Download
WinSCP is a free file manager for Windows supporting FTP, SFTP, S3 and WebDAV.

アクセスすると、下の方にdownloadボタンをクリックするとインストーラーをダウンロードできます。

あとはインストーラーを実行して、ウィザードに従ってインストールしてください。

WinSCPで接続

WinSCPを立ち上げてください。

そうするとログイン画面にて新しいサイトが表示されます。

  1. 転送プロトコルの選択
    • 転送プロトコル:FTP を選択
  2. 暗号化:暗号化なし を選択
    • 通常のFTP(暗号化されていない)接続を行います。
  3. ホスト情報の入力
    • ホスト名 (H):10.0.2.10
      → 接続先のFTPサーバーのIPアドレスまたはドメイン名を入力します。
  4. ポート番号:21
    • FTPの標準ポート番号(21)を使用。
  5. ユーザ情報の入力
    • ユーザ名 (U):FTP_User
      FTP用のユーザーで作成したユーザー名を入力
    • パスワード (P):●●●●●●●(伏せ字)
      FTP用のユーザー用で設定したパスワードを入力
  6. 接続の保存(任意)
    「保存」をクリックすると、この接続設定を保存でき、次回から簡単に接続できます。
  7. ログインボタンをクリック
    画面下部の「ログイン」ボタン(緑色アイコン)をクリックして、接続を開始します。

FTP接続が完了しますので、windowsクライアント側でテスト用のファイルを作成してください。

本ブログの場合は、デスクトップに「test.txt」を作成しました。

任意のファイルをWinSCPの画面にドラッグ&ドロップしてください。

下記画像が表示されますので、OKを選択します。

FTPでのデータ転送が問題なく完了すると、WinSCP上にアップロードしたファイルが確認できます。

サーバー側のFTPフォルダー内にも確認すると、先ほどアップロードしたtest.txtが確認できます。

FTP接続後のポート確認手順と解説

ここからは、さらに細かく確認したい方向けの解説です。

サーバー側でコマンドプロンプトを立ち上げて、下記コマンドを入力してください。

netstat

このコマンドは、現在のPCで確立されているすべてのTCP/UDP接続の状態を一覧表示するものです。

入力すると、下記画像の通り、接続状況が一覧表示されます。

ローカルアドレスがサーバー側になります。下記を確認してみるとポートがそれぞれ下記のように割当たっていることを確認できます。

  • FTPコントロール:21
  • データ転送用:2000,2009

以上で動作確認は完了になります。

おまけ:コマンドプロンプトで接続(CLI)

ここからはおまけのセクションになります。コマンドプロンプトでもFTPはアグレッシブモードであれば利用できます。

Windowsのコマンドプロンプトを開き、以下のコマンドを入力します:

ftp

これでFTPクライアントが起動します。

② サーバーに接続する

FTPクライアントが起動したら、以下のコマンドでサーバーに接続します:

open サーバーのホスト名またはIPアドレス

本ブログの例で言えば:

open ftp 10.0.2.10

③ ログインする

接続後、ユーザー名とパスワードの入力を求められます。それぞれ入力してEnterを押します。

接続が完了すると、230 User logged in。と表示されます。

あとはお好きにファイルのアップロードやダウンロードなどお好きなことを試していただければ問題ないかと思います!

下記画像は、dirコマンドを用いて、FTPフォルダー内のファイルを一覧表示しています。

基本的なFTPコマンド

基本的なコマンドを表にしてまとめました。もし余力のある方は一覧を参考にFTPの操作に慣れてみてください!!

コマンド操作内容
dirファイル一覧の表示
cdディレクトリの移動
get ファイルのダウンロード
putファイルのアップロード
quitFTPセッションの終了

注意点

基本的な注意事項になりますが、FTPを利用するときは下記点に注意してください。
本ブログでは検証用にローカル環境にサーバーを構築して記事を作成しております。

  • パスワードは平文で送信されるため、重要なデータの転送には推奨されません
  • 可能な限り、セキュアなSFTPやFTPS接続を使用しましょう
  • 公共のWi-Fiでの使用は避けてください

まとめ

以上が、WindowsでFTP接続を行う基本的な手順です。

コマンドプロンプトを使用したFTP接続は、シンプルで覚えやすい方法です。ただし、セキュリティ面での制限があることを忘れずに、用途に応じて適切なプロトコルを選択するようにしましょう。

コメント

タイトルとURLをコピーしました