中堅プログラマーの備忘録

忘れっぽくなってきたので備忘録として・・・

【windows10 Pro】IISでftpサーバーを構築する

1.概要

自分の開発用PCにFTPサーバーを構築して動作確認したい
といったようなことがあるかと思います。


選択肢はいろいろとあるかと思いますが
今回はWindowsの機能として既にインストールされている

Microsoft FTP Service
を有効化して対応してみようと思います。


2.機能の有効化

機能を有効にするには
【コントロールパネル】→【プログラム】→【Windowsの機能の有効化または無効化】
と進み、下図のとおり
f:id:tsu--kun:20201016173741p:plain

【FTP Service】
【IIS 管理コンソール】
にチェックを入れて【OK】をクリックします。


プログレスバーが表示されてしばらくすると完了します。


3.FTPへアクセスするユーザーを作成する。

FTPアクセスする専用ユーザーを作成します。
アプリケーション等ではこのユーザーを使ってFTP通信を行います。

【コントロールパネル】→【システムとセキュリティ】→【管理ツール】
→【コンピューターの管理】と進むと下図のウィンドウが表示されます。
f:id:tsu--kun:20201016173857p:plain
左側のツリーから
【システムツール】→【ローカルユーザーとグループ】→【ユーザー】を選択します。
【ユーザー】を右クリックして【新しいユーザー】をクリックします。
【新しいユーザー】ウィンドウが表示されるので
今回は下図のとおり入力しました。
f:id:tsu--kun:20201016174000p:plain


作成が完了すると下図のとおりユーザーが追加されています。
f:id:tsu--kun:20201016174010p:plain


4.IISの設定

Windowsの標準サーバーといえば【IIS】ですね。
最近は使うことが少なくなりましたが・・・


まずは、FTPユーザーを作成したのと同じように
【コントロールパネル】→【システムとセキュリティ】→【管理ツール】
→【コンピューターの管理】と進み、左側のツリーから
【サービスとアプリケーション】→【インターネットインフォメーションサービ(IIS)スマネージャー】を選択します。
f:id:tsu--kun:20201016174030p:plain
【接続】にある【サイト】をクリックすると
【操作】に【FTPサイトの追加】が表示されるのでこれをクリックします。

【FTPサイトの追加】ウィンドウが表示されます。
今回は下図のとおり設定していきました。
変更した部分だけ解説します。

【サイト情報】
f:id:tsu--kun:20201016174051p:plain

【FTPサイト名】なんでもOK
【コンテンツディレクトリ】FTPのrootパスを設定します。


【バインドとSSLの設定】
f:id:tsu--kun:20201016174106p:plain

【ポート】コントロールコネクションのポート番号です。
【SSL】暗号化の必要がないので【無し】に設定。


【認証および承認の情報】
f:id:tsu--kun:20201016174115p:plain

【認証】anonymous userでのアクセスは禁止したいので基本に設定。
【承認】ftpuserのみアクセス可能なように設定。

5.ディレクトリのアクセス権限の設定

ftpのrootパスへ【ftpuser】がアクセス可能なように設定します。

【コンピューターの管理】で先程作成したFTPサイトの【ftpTest】を選択して
【操作】にある【アクセス許可の編集】をクリックします。
f:id:tsu--kun:20201016174138p:plain


【ftpTestのプロパティ】ウィンドウが表示されるので
【セキュリティ】タブをクリックして【編集】をクリックします。
f:id:tsu--kun:20201016174147p:plain


【ftpTestのアクセス許可】ウィンドウが表示されるので
【追加】をクリックします。
f:id:tsu--kun:20201016174157p:plain


【ユーザーまたはグループの選択】ウィンドウが表示されるので
【詳細設定】→【検索】をクリックします。
【検索結果】に先程作成した【ftpuser】があるので選択し【OK】をクリックします。
f:id:tsu--kun:20201016174206p:plain


【ftpTestのアクセス許可】ウィンドウにもどると
【ftpuser】が追加されているので
【フルコントロール】にチェックを入れて【OK】をクリックします。
f:id:tsu--kun:20201016174215p:plain


6.ファイアーウォールの設定

FTP通信がファイアーウォールを通過するように設定します。


今回はポートを【21】→【60021】に変更しているので下記の手順でポートを開けてあげます。
【コントロールパネル】→【システムとセキュリティー】
→【Windows Defenderファイアーウォール】→【詳細設定】をクリックします。
【セキュリティーが強化されたWindows Defenderファイアーウォール】ウィンドウが表示されるので
【受信の規則】をクリックし【新しい規則】をクリックします。
f:id:tsu--kun:20201016174234p:plain


【新規の受信の規則ウィザード】ウィンドウが表示されるので下図のとおり設定します。
f:id:tsu--kun:20201016174247p:plain
f:id:tsu--kun:20201016174254p:plain
f:id:tsu--kun:20201016174302p:plain
f:id:tsu--kun:20201016174315p:plain
f:id:tsu--kun:20201016174326p:plain
これでポート【60021】が開放されました。


※ポートを変更していない場合
【コントロールパネル】→【システムとセキュリティー】
→【Windows Defenderファイアーウォール】
→【Windows Defenderファイアーウォールを介したアプリまたは機能を許可】をクリックします。

【設定の変更】をクリックし、一覧から【FTPサーバー】を選択しチェックを入れます。
f:id:tsu--kun:20201016174336p:plain


7.確認する

ローカルネットワーク内のPCから設定したPCに接続してみます。
PCのローカルIPは【192.168.0.120】です。

C:\Users\*****>ftp
ftp> open 192.168.0.120 60021
192.168.0.120 に接続しました。
220 Microsoft FTP Service
200 OPTS UTF8 command successful - UTF8 encoding now ON.
ユーザー (192.168.0.120:(none)): ftpuser
331 Password required
パスワード:
230 User logged in.
ftp>

上記のようログイン出来れば問題ないかと思います。


今回は試験用に自分の開発用PCにFTPサーバーを構築しました。
なので不要になったら停止する必要があります。
停止の方法は【サービス】にある【Microsoft FTP Service】を停止させて
スタートアップの種類を【手動】に設定すれば安心です。
f:id:tsu--kun:20201016174346p:plain