サーバーポートを変更した後、アクティブモードFTPの動作を停止します

サーバーポートを変更した後、アクティブモードFTPの動作を停止します

私は自分のサーバー(ubuntu 16.04 x86_64)で proftpd を使用しています。

デフォルトの proftpd は標準の 21 ポートを使用します。自宅のノートパソコンからアクティブ モードで問題なく FTP に接続できます。

ここで、proftpd を停止し、ポートを 21 から 10021 に変更し、サービスを再度開始します。すると、アクティブ モードで接続できなくなり、パッシブ モードでのみ接続できるようになります。

  1. 何が変わったのですか?

  2. また、なぜアクティブ モードが機能するのか理解できません。インターネットにはルーター経由でアクセスしています。ルーターでノート PC にポートを転送していません。接続時に、ノート PC (FTP クライアント) が 1023 を超えるポートからサーバー ポート 21 への接続を作成します。ノート PC はサーバーに 2 番目の (データ) ポートも送信し、サーバーはこのデータ ポートを使用して独自のポート 20 から接続します。しかし、WAN からポートが閉じられている場合、2 番目の接続をどのように確立できるのでしょうか。

答え1

ファイアウォール (ルーター) には、FTP 用の接続追跡ヘルパーがあります。FTP 制御接続 (TCP 宛先ポート == 21 で認識) を検出すると、コマンドを監視します。クライアントがコマンドを送信したのを検出するとPORT、それを書き換え (外部 IP アドレス、場合によっては別のポートに)、FTP サーバーからの予想される接続を追跡します。その接続が到着すると、通過が許可されます。

ポートを変更しても、10021 は FTP 制御接続として認識されないため、そのようなことは何も起こりません。

少なくとも Linux では、その機能はnf_conntrack_ftpモジュールであり、ports必要に応じて 10021 を含めるようにオプションを設定できます。

PS: 同様のことは、サーバーの前のファイアウォールでも実行できますが、逆の方法で、アクティブ モードではなくパッシブ モードの転送で実行されます。

関連情報