コンテンツへスキップ

WindowsServer でFTP サーバーを設置した時のメモ

WindowsServer でFTP サーバーを設置した時のメモ

WindowsServer2019 でFTP を設定する手順。

  • FTP の機能を追加
  • FTP サーバーの設置、設定
    • FTP 接続用のユーザーおよびフォルダの作成
  • ファイアウォールの設定

FTP 機能を追加

「役割と機能を追加」からWEB サーバーを追加

図1: 役割と機能の追加ウィザードでWebサーバー(IIS)を選択し、必要な機能の追加を確認するダイアログが表示されている
図1: 役割と機能の追加ウィザードでWebサーバー(IIS)を選択し、必要な機能の追加を確認するダイアログが表示されている

機能はそのまま次へで進む。この画面で次へ。

図2: Webサーバーの役割(IIS)の説明画面。そのまま「次へ」をクリックする
図2: Webサーバーの役割(IIS)の説明画面。そのまま「次へ」をクリックする

こんな感じで。FTP に関連してそうなものだけをインストール。
80 番ポートにはApache が居るから開けておきたい。

図3: 役割サービスの選択画面。FTPサーバー(FTPサービス、FTP拡張)と管理ツールのみを選択している
図3: 役割サービスの選択画面。FTPサーバー(FTPサービス、FTP拡張)と管理ツールのみを選択している

追加される機能を確認して、インストール。

図4: インストールオプションの確認画面。Webサーバー(IIS)配下にFTPサーバーと管理ツールが表示されている
図4: インストールオプションの確認画面。Webサーバー(IIS)配下にFTPサーバーと管理ツールが表示されている

図5: 機能のインストールが正常に完了したことを示すインストールの進行状況画面
図5: 機能のインストールが正常に完了したことを示すインストールの進行状況画面

FTP サーバーの追加

設定前の準備

先に、FTP のルートになるフォルダと、接続用のユーザーを用意する。

図6: コンピューターの管理のローカルユーザーとグループに、FTP接続用に作成した「ftpuser」が表示されている
図6: コンピューターの管理のローカルユーザーとグループに、FTP接続用に作成した「ftpuser」が表示されている

FTP のルートフォルダには、FTPユーザー向けのアクセス件を付与しておく。

図7: FTP_ROOTフォルダのプロパティのセキュリティタブ。ftpuserに読み取り・書き込みなどのアクセス許可を付与している
図7: FTP_ROOTフォルダのプロパティのセキュリティタブ。ftpuserに読み取り・書き込みなどのアクセス許可を付与している

FTP サーバーの設定

サーバーマネージャーから、
ツール >「インターネットインフォメーションサービス(IIS)マネージャー」を開く。
または、IIS の項目で、サーバー名を右クリック >「IIS マネージャー」をクリックする。

図8: サーバーマネージャーのIIS画面で対象サーバーを右クリックし、「インターネットインフォメーションサービス(IIS)マネージャー」を選択している
図8: サーバーマネージャーのIIS画面で対象サーバーを右クリックし、「インターネットインフォメーションサービス(IIS)マネージャー」を選択している

サイトを右クリックして、FTP サイト追加

図9: IISマネージャーのサイト一覧を右クリックし、「FTPサイトの追加」を選択している
図9: IISマネージャーのサイト一覧を右クリックし、「FTPサイトの追加」を選択している

サーバー名と、先に用意したフォルダを指定する。
(後から詳細設定で変更できます。)

図10: FTPサイトの追加ウィザードのサイト情報画面。FTPサイト名とFTP_ROOTフォルダの物理パスを指定している
図10: FTPサイトの追加ウィザードのサイト情報画面。FTPサイト名とFTP_ROOTフォルダの物理パスを指定している

IP はサーバーのIPを指定。
SSL はとりあえず「無し」で。

図11: バインドとSSLの設定画面。IPアドレスとポート21を指定し、SSLは「無し」を選択している
図11: バインドとSSLの設定画面。IPアドレスとポート21を指定し、SSLは「無し」を選択している

基本認証で、ユーザーも限定する。

図12: 認証および承認の情報画面。基本認証を有効にし、アクセス許可を「ftpuser」に限定して読み取り・書き込みを許可している
図12: 認証および承認の情報画面。基本認証を有効にし、アクセス許可を「ftpuser」に限定して読み取り・書き込みを許可している

追加されたことを確認する。

図13: IISマネージャーのサイト一覧。ftpserver1が追加され、開始済みの状態でIPアドレスとポート21(ftp)がバインドされている
図13: IISマネージャーのサイト一覧。ftpserver1が追加され、開始済みの状態でIPアドレスとポート21(ftp)がバインドされている
図14: IISマネージャーのftpserver1ホーム画面。FTP IPアドレスとドメインの制限やFTPログなど各種FTP設定アイコンが並んでいる
図14: IISマネージャーのftpserver1ホーム画面。FTP IPアドレスとドメインの制限やFTPログなど各種FTP設定アイコンが並んでいる

ログファイルの保存場所の設定

FTPサーバーのメニューから「FTPログ」を選択し ログファイルの場所を指定しておいた。

図15: FTPログの設定画面。ログファイルの保存先ディレクトリを指定している
図15: FTPログの設定画面。ログファイルの保存先ディレクトリを指定している

W3C フィールドで、ログに残す内容を設定。

図16: ログに記録する情報を選択する画面。W3C形式の各フィールドにチェックが入っている
図16: ログに記録する情報を選択する画面。W3C形式の各フィールドにチェックが入っている

最後に右側の操作パネル内にある「適用」をクリックします。

パッシブモードの設定

パッシブ接続への設定。右のパネルで「適用」をクリック。

図17: FTPファイアウォールのサポート画面。データチャネルのポート範囲を50000-50100に設定している
図17: FTPファイアウォールのサポート画面。データチャネルのポート範囲を50000-50100に設定している

ファイアウォールの設定

既存でFTP の21番ポートを許可する設定があるんだけど、機能していない?
別途ディフェンダーファイアウォールの受信規則を作成したところ、接続できるようになった。

図19: セキュリティが強化されたWindows Defenderファイアウォールの受信の規則一覧。ftpserver1のルールでポート21が許可されている
図19: セキュリティが強化されたWindows Defenderファイアウォールの受信の規則一覧。ftpserver1のルールでポート21が許可されている

パッシブモードの設定で指定したポートの許可も設定しておく。

図20: 受信の規則の一覧を拡大表示。パッシブモード用に追加した「ftpserver1-passive」のルール(ポート50000-50100)が枠で強調されている
図20: 受信の規則の一覧を拡大表示。パッシブモード用に追加した「ftpserver1-passive」のルール(ポート50000-50100)が枠で強調されている

接続テスト

エクスプローラーで接続

エクスプローラーで「ftp://【ユーザー名:パスワード@】192.168.1.10/」で接続できる。
ポートをデフォルト以外に変更していると、毎回パスでポート指定が必要になる。

図21: エクスプローラーでFTPサーバーに接続し、フォルダ一覧(001〜006)が表示されている
図21: エクスプローラーでFTPサーバーに接続し、フォルダ一覧(001〜006)が表示されている
FTP クライアントを使用
図22: FileZillaのサイトマネージャー。ftpserver1への接続設定でホスト、ユーザー名、パスワードを入力している
図22: FileZillaのサイトマネージャー。ftpserver1への接続設定でホスト、ユーザー名、パスワードを入力している

図23: FileZillaのサイトマネージャーの転送設定タブ。転送モードで「パッシブ」を選択している
図23: FileZillaのサイトマネージャーの転送設定タブ。転送モードで「パッシブ」を選択している

接続できました。

図24: FileZillaでFTPサーバーへの接続に成功し、リモートサイトのファイル一覧が表示されている
図24: FileZillaでFTPサーバーへの接続に成功し、リモートサイトのファイル一覧が表示されている

今回のはまったこと

外部ファイアウォールの設定をしていたんですが、ユーザーログオンまでできても、ファイル一覧の取得で止まってしまうという現象が発生。

図25: FTPファイアウォールのサポート画面で外部ファイアウォールのIPアドレスとポート範囲を設定した状態。サイト一覧に「test」フォルダも見える
図25: FTPファイアウォールのサポート画面で外部ファイアウォールのIPアドレスとポート範囲を設定した状態。サイト一覧に「test」フォルダも見える

接続できない。。。
レスポンスで「227 Entering Passive Mode (10,0,0,1,195,81)」が見えるので、195*256+81 で50001 番が指定されているので設定はうまくいっていると思うんだけど。

図26: FileZillaの接続ログ。PASVコマンドの応答は返るが、LISTコマンドがタイムアウトしディレクトリ一覧の取得に失敗している
図26: FileZillaの接続ログ。PASVコマンドの応答は返るが、LISTコマンドがタイムアウトしディレクトリ一覧の取得に失敗している
図27: FileZillaの接続ログ。パッシブモードでの接続後、ディレクトリ一覧の取得がタイムアウトで失敗している
図27: FileZillaの接続ログ。パッシブモードでの接続後、ディレクトリ一覧の取得がタイムアウトで失敗している

ワイヤーシャークでパケットを見ても、ログインはできていて、LIST のリクエストも送信している。

ファイアウォールを無効にして、powershell から接続したところ、一覧の取得ができた。
おそらく、パッシブモードの設定に問題があると思われ。

図28: Windows PowerShellでftpコマンドを実行し、ログイン後にlsでディレクトリ一覧(xml)の取得に成功している
図28: Windows PowerShellでftpコマンドを実行し、ログイン後にlsでディレクトリ一覧(xml)の取得に成功している

結局、外部ファイアウォールの設定がいりませんでした。
この設定で接続できるようになりました。

図29: FTPファイアウォールのサポート画面。外部IPアドレスの設定を空にした状態で、FTP over SSL利用時の注意を促す警告が表示されている
図29: FTPファイアウォールのサポート画面。外部IPアドレスの設定を空にした状態で、FTP over SSL利用時の注意を促す警告が表示されている

参考サイト

器用な二刀流、FTPでファイル転送!

[Windows] FTPで「150 Opening ASCII mode data connecton.」以降の結果が返ってこない場合の対処法

FTPサーバー : パッシブモードの設定

(Visited 368 times, 1 visits today)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です