web-dev-qa-db-ja.com

投稿の件名:Filezilla-ディレクトリリストの取得に失敗しました

FileZillaサーバーで自己署名証明書を設定し、TLS経由のFTPを有効にしました。クライアントのFileZillaから接続すると、認証が可能になります。1日に1〜2回、ディレクトリリストが表示されます...

Status: Connection established, waiting for welcome message...
Status: Initializing TLS...
Status: Verifying certificate...
Status: TLS connection established.
Status: Logged in
Status: Retrieving directory listing...
Status: Directory listing of "/" successful

しかし、残り時間はディレクトリリストを取得できません

Status: Connection established, waiting for welcome message...
Status: Initializing TLS...
Status: Verifying certificate...
Status: TLS connection established.
Status: Logged in
Status: Retrieving directory listing...
Command: PWD
Response: 257 "/" is current directory.
Command: TYPE I
Response: 200 Type set to I
Command: PORT 192,168,1,119,88,109
Response: 200 Port command successful
Command: MLSD
Response: 150 Opening data channel for directory listing of "/"
Response: 425 Can't open data connection for transfer of "/"
Error: Failed to retrieve directory listing
3

[〜#〜] ftp [〜#〜] プロトコルは少し奇妙なカモのようです。ほとんどのプロトコルが使用する1つだけではなく、2 TCP接続を使用します。ポート21にコマンドとログイン接続、2番目の接続(データ接続)があります。

パッシブFTPの2番目の接続は、ランダムに割り当てられた利用可能なTCP 1024を超えるポートです。

問題は、ファイアウォールで2番目のポートが開いていないことを示しているようです。

通常、合理的にインテリジェントなファイアウォールでは、2番目のポートが自動的に開かれます。 FTPはクリアテキストプロトコルであるため、ファイアウォールはポート21のコマンド接続でトラフィックをスキャンできます。割り当てられるPASVポートを認識し、ファイアウォールを動的に開き、その特定のクライアントとその中で使用されるPASVポート間のトラフィックを許可します。セッション。

正しく機能しないTLS暗号化を使用しているため。 [〜#〜] ftps [〜#〜] を使用すると、ファイアウォールはCOMMANDチャネルをスヌープできなくなります。

解決策:PASVポートを修正する(-range):

1つの解決策は、狭い範囲のポートまたは単一のポートのみを使用するようにFTPサーバーを構成し、それらのポートを開くためのファイアウォールルールを作成することです。それは FileZillaドキュメント で説明されています:

一般設定==>パッシブモード設定==>カスタムポート範囲

https://wiki.filezilla-project.org/File:Settings_passivemode_FZServer.png

そして、ファイアウォールでそのポート範囲を開きます。

さらに、NATルーターの背後にいる場合は、PASV応答にポート番号だけでなく、FTPサーバーのIPアドレスも含まれるという2番目の問題があります。

クリアテキストでFTPを引き続き使用する場合、NATルーターは通常、その内部IPアドレス応答を正しい外部IPアドレスで書き換えることができます。

繰り返しになりますが、FTP overTLSを使用しているためです。

幸い、FileZillaにもその解決策があり、それを修正して、実際の(内部)IPアドレスではなく外部/パブリックIPアドレスをアドバタイズすることができます。

3
HBruijn