EC2から外部FTPサーバーへパッシブモードで通信したいときのポート設定

記事タイトルとURLをコピーする

CI部の古川(智)です。最近は赤い食べ物(トマト系か辛い系)にハマっています。

EC2からNATゲートウェイを経由してFTPサーバーへパッシブモードで通信させようとした際、セキュリティグループNACLの設定で頭がごちゃついたので「こうすればOKだよ~」というのをブログとして残しておこうと思います。

今回の構成

今回作成した構成は、こちらです。 f:id:swx-tomoe-furukawa:20210929152309p:plain AWS環境内のプライベートサブネットにあるEC2(FTPクライアント)から、パブリックサブネットにあるNATゲートウェイを経由して、外部のFTPサーバーパッシブモードで通信するという構成です。

FTPのパッシブモードで使用するポート

まずFTPの仕組みをざっくり説明します。
FTPでは2つのTCP接続「 制御用コネクション」「データ転送用コネクション」を使ってファイルの転送を行っています。
それぞれ使用するポートが異なります。

FTPのパッシブモードの場合、 以下のポートが使用されます。

  • 制御用コネクション:21番ポート
  • データ転送用コネクション:エフェメラルポート

構成図に通信の流れを記載するとこんな感じです。

制御用コネクション

EC2(FTPクライアント)はFTPサーバーの21番ポート宛てに接続し、戻りの通信はEC2(FTPクライアント)のエフェメラルポート宛てで返ってきます。 f:id:swx-tomoe-furukawa:20210929152333p:plain

データ転送用コネクション

EC2(FTPクライアント)はFTPサーバーのエフェメラルポート宛てに接続し、戻りの通信もEC2(FTPクライアント)のエフェメラルポート宛てで返ってきます。 f:id:swx-tomoe-furukawa:20210929152348p:plain

セキュリティグループとNACLの設定

今回の構成の場合、AWS環境内で確認すべき箇所は大きく分けて以下の3点です。

  1. EC2(FTPクライアント)のセキュリティグループ
  2. EC2(FTPクライアント)があるサブネットのNACL
  3. NATゲートウェイがあるサブネットのNACL
    (NATゲートウェイがない構成の場合は確認不要)

それぞれで確認すべきポイントを書いていきます!

EC2(FTPクライアント)のセキュリティグループ

アウトバウンド
  • FTPサーバーの21番ポート宛てへの通信が許可されているか?
  • FTPサーバーのエフェメラルポート(1024 - 65535)宛てへの通信が許可されているか?

セキュリティグループはステートフルなので、許可されたアウトバウンド通信に対する応答(戻りの通信)は、インバウンドルールにかかわらず通過することができます!
参照: VPC のセキュリティグループ - Amazon Virtual Private Cloud

EC2(FTPクライアント)があるサブネットのNACL

インバウンド
  • FTPサーバーからエフェメラルポート(1024 - 65535)宛ての通信が許可されているか?
アウトバウンド
  • FTPサーバーの21番ポート宛てへの通信が許可されているか?
  • FTPサーバーのエフェメラルポート(1024 - 65535)宛てへの通信が許可されているか?

NATゲートウェイがあるサブネットのNACL

インバウンド
  • EC2(FTPクライアント)から21番ポート宛ての通信が許可されているか?
  • EC2(FTPクライアント)からエフェメラルポート(1024 - 65535)宛ての通信が許可されているか?
  • FTPサーバーからエフェメラルポート(1024 - 65535)宛ての通信が許可されているか?
アウトバウンド
  • FTPサーバーの21番ポート宛てへの通信が許可されているか?
  • FTPサーバーのエフェメラルポート(1024 - 65535)宛てへの通信が許可されているか?
  • EC2(FTPクライアント)のエフェメラルポート(1024 - 65535)宛てへの通信が許可されているか?

おわりに

これでAWS環境内で確認すべきポートは以上です!
外部FTPサーバー側の設定は別途確認してくださいね◎

エフェメラルポートのポート番号に関しては以下RFC6056に基づいています。
https://www.rfc-editor.org/rfc/rfc6056.txt

古川智絵 (執筆記事の一覧)

2020年新卒入社 技術課(SRE1課)に所属 好きな食べ物はみそ汁