LoginSignup
1
0

More than 1 year has passed since last update.

【AWS】VPC内のEC2インスタンスから外部FTPサーバへ通信したい時のポート設定

Posted at

はじめに

あるVPC内のPrivateサブネットにあるEC2インスタンスから同VPC内のPublicサブネットにあるNATゲートウェイを経由して外部FTPサーバへパッシブモードで通信させる際に行った、セキュリティグループやネットワークACLの設定を備忘として残しておきます。

FTPについて

FTPでは2つのTCPコネクション「コントロールコネクション(制御用)」と、「データコネクション(データ転送用)」を使ってファイル転送を行っています。
また、FTPの通信には、サーバからクライアントに対して接続要求を行う「アクティブモード」と、クライアントからサーバに対して接続要求を行う「パッシブモード」の2パターンがあります。

FTPがアクティブモードの場合、 以下のポートが使用されます。(今回の設定では対象外)

・コントロールコネクション(制御用):21番ポート
・データコネクション(データ転送用):20番ポート

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

・コントロールコネクション(制御用):21番ポート
・データコネクション(データ転送用):エフェメラルポート(ダイナミックポート)

パッシブモードでの通信の流れ

【コントロールコネクション】
EC2はFTPサーバの21番ポートに接続し、戻りの通信はEC2のエフェメラルポートに返ってきます。

【データコネクション】
EC2はFTPサーバのエフェメラルポートに接続し、戻りの通信もEC2のエフェメラルポートに返ってきます。

セキュリティグループとネットワークACLの設定

今回行う設定は以下になります。(VPC内の構成によって変わります。)

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

【アウトバウンド】

FTPサーバの21番ポートへの通信許可
FTPサーバのエフェメラルポート(1024 - 65535)への通信許可

セキュリティグループはステートフルです。インスタンスからリクエストを送信する場合、そのリクエストのレスポンストラフィックは、インバウンドセキュリティグループのルールにかかわらず、流れることができます。許可されたインバウンドトラフィックに対する応答(戻りのトラフィック)は、アウトバウンドルールにかかわらずアウト側に対し通過することができます。
https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/VPC_SecurityGroups.html

EC2(FTPクライアント)があるPrivateサブネットのネットワークACL

【インバウンド】

FTPサーバからエフェメラルポート(1024 - 65535)への通信許可

【アウトバウンド】

FTPサーバの21番ポートへの通信許可
FTPサーバのエフェメラルポート(1024 - 65535)への通信許可

NATゲートウェイがあるPublicサブネットのネットワークACL

【インバウンド】

EC2(FTPクライアント)から21番ポートへの通信許可
EC2(FTPクライアント)からエフェメラルポート(1024 - 65535)への通信許可
FTPサーバからエフェメラルポート(1024 - 65535)への通信許可

【アウトバウンド】

FTPサーバの21番ポートへの通信許可
FTPサーバのエフェメラルポート(1024 - 65535)への通信許可
EC2(FTPクライアント)のエフェメラルポート(1024 - 65535)への通信許可

さいごに

エフェメラルポートの範囲は狭めておくのがベター

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0