Azureに構築したFTPサーバーにアクセスできない

この記事は更新から24ヶ月以上経過しているため、最新の情報を別途確認することを推奨いたします。

AzureにVMを建ててFTPサーバーを構成したが、インターネットからFTPサーバーにアクセスができない場合の確認ポイントについて記載します。

次のことを前提とします。

  • VMにIISをインストールしFTPサーバーを有効化している
  • VMががあるサブネットにはNSGが関連付けられている
  • VMの前にはパブリックロードバランサーが配置されている
  • FTPサーバーの接続にはポート21番を利用する


ポイントはずばりFTPの通信、パッシブモードです。FTPにはアクティブモードとパッシブモードがあり、通常はパッシブモードで通信を行います(本記事ではこれらの詳細は省略します)。
パッシブモードの動きを記載すると以下の通りです。

1.クライアントからFTPサーバーに対してポート21番でアクセス
2.FTPサーバーからパッシブポートが返されて、クライアントはそのパッシブポートを使ってFTPサーバーと通信する

そのためAzureのVMがこのパッシブポートでの受信を許可しているかどうかを確認していく必要があります。本記事のような構成ではNSGの受信規則と、ロードバランサーの負荷分散規則でパッシブポート宛ての通信が許可されている必要があります。

追記
ロードバランサーを経由している場合、パブリックIPにアクセスした後にプライベートIPアドレスを返す動きになり接続ができないことがあります。
FTP接続用のツールによっては自動的にパブリックIPで再接続を試してくれることもありますが、それが出来ない場合にはFTPサーバー側でFTPサイトの FTPファイアウォールのサポート>ファイアウォールの外部IPアドレス にロードバランサーのパブリックIPを設定する必要があります。



【補足】
FTPのパッシブポートですが既定では1024~65535と非常に広範囲です。NSGであれば範囲指定ができるのですが、ロードバランサーでは範囲指定ができないためパッシブポートすべてを登録することができません。
そこでIISでパッシブポートを指定する方法があります。
IISを起動しWebサーバーの FTP > FTPファイアウォールのサポート を選択し、「データチャネルのポート範囲」にパッシブポートを明示的に記載することで指定ができます。

いいね (この記事が参考になった人の数:4)
(↑参考になった場合はハートマークを押して評価お願いします)
読み込み中...

注意事項・免責事項

※技術情報につきましては投稿日時点の情報となります。投稿日以降に仕様等が変更されていることがありますのでご了承ください。

※公式な技術情報の紹介の他、当社による検証結果および経験に基づく独自の見解が含まれている場合がございます。

※これらの技術情報によって被ったいかなる損害についても、当社は一切責任を負わないものといたします。十分な確認・検証の上、ご活用お願いたします。

※当サイトはマイクロソフト社によるサポートページではございません。パーソルプロセス&テクノロジー株式会社が運営しているサイトのため、マイクロソフト社によるサポートを希望される方は適切な問い合わせ先にご確認ください。
 【重要】マイクロソフト社のサポートをお求めの方は、問い合わせ窓口をご確認ください