FFFTPでファイル一覧の取得に失敗する「425エラー」を対策

FFFTPでファイル一覧の取得に失敗する「425エラー」を対策 PC

FFFTPを利用して、とあるレンタルサーバにアクセスしたら、「425 Unable to build data connection: Operation not permitted ファイル一覧の取得を中止しました. ファイル一覧の取得に失敗しました.」と表示されてファイル一覧が表示されない。

早速調査して対策します。

ログの調査と原因特定

FFFTPのログ調査

FFFTPではFTP接続の際の通信ログが最下部のウィンドウに表示されるので、それを見てみます。※ちなみにFFFTPのバージョンは最新バージョンの「FFFTP Ver 4.9」です。

FFFTPでファイル一覧の取得

■ログ(※一部伏字にしてあります。)

ログを見た限りでは、正常に明示的なFTPSでログインしているし、パッシブモードも問題無い。
しかし、ログの「>MLSD」の部分でサーバーにMLSDコマンドを送信し、アスキーモードでコネクションが開かれた直後に425エラーが発生している。

■MLSDコマンドの解説
「引数に指定したディレクトリのファイル一覧を、詳細なファイルの最終更新時間を付けて返す」というコマンドです。
※参考URL
【FTPコマンドの一覧】
URL: https://ja.wikipedia.org/wiki/FTPコマンドの一覧
流れとしては、MLSDコマンドでファイル一覧を要求しているが、425エラーの最後に「Operation not permitted」と書かれている通り、何かしらの権限の問題で失敗している模様です。

原因特定

更にいろいろと調べてみると、FFFTPを利用時は、FTPサーバー(ProFTPD)の設定ファイル「proftpd.conf」において、FTPSモジュール(mod_tls)の「TLSOptions」の設定値に、「NoSessionReuseRequired」が無い場合にこのエラーが起きるという事がわかった。
■NoSessionReuseRequiredの解説
FTPは、「制御」と「データ転送」で別々のポートを利用します。その際に「制御接続時に利用したSSLセッションを再利用したデータ転送接続以外は拒否する」というセキュリティ設定を無効にするオプションです。利用するFTPクライアントソフトによってはこのオプションを追加しないとデータ転送時にエラーが出ることがあります。
※参考URL
【ProFTPD公式サイト(TLSOptions)】
URL: http://www.proftpd.org/docs/contrib/mod_tls.html#TLSOptions

対策

対策としては3つの方法があります。

  1. FFFTP以外のFTPクライアントソフトを利用する。※FileZilla(Ver 3.52.2)であれば何の問題もなく明示的なFTPS接続によるファイル一覧の取得が可能でした。
  2. FTPサーバー(ProFTPD)の設定ファイルを変更する。※「proftpd.conf」にて<IfModule mod_tls.c></IfModule> の間に TLSOptions NoSessionReuseRequired を追加する。
  3. FFTPのホストの設定を変更する。[非推奨] ※ホストの設定の「暗号化」タブにて、「暗号化なしで接続を許可(A)」のみにチェックを入れる。

上記[1]がおススメですが、FileZillaを利用するだけなので特に記載することはありません。

上記[2]は、今回はFTPでの接続先が共有レンタルサーバのため、自分でFTPサーバー(ProFTPD)の設定ファイルは弄れないという理由で除外します。

というわけで、通信が暗号化されないという根本的な大問題があり非推奨ですが、上記[3]のFFFTPの対策方法だけ解説します。

FFFTPの「接続(F)」⇒「ホストの設定(H)」をクリックします。

「接続(F)」⇒「ホストの設定(H)」をクリック

ホスト一覧からホストを選択し「設定変更(M)」をクリック

ホストを選択し「設定変更(M)」をクリック

ホストの設定から「暗号化」タブを開いて「暗号化なしで接続を許可(A)」のみにチェックを入れて「OK」をクリック

ホスト設定の「暗号化」タブをの「暗号化なしで接続を許可(A)」のみにチェック

暗号化の設定を変更したのでもう一度接続してみましょう。

暗号化設定の変更後にもう一度接続

ファイル一覧が正常に取得できました。

FFFTPでファイル一覧の取得に成功

■ログ(※一部伏字にしてあります。)

まとめ

FFFTPを利用中に、425エラーが出てファイル一覧の取得に失敗した場合は、以下の3つ対策方法がある。

  1. FFFTP以外のFTPクライアントソフトを利用する。※FileZilla等
  2. FTPサーバー(ProFTPD)の設定ファイルを変更する。
  3. FFFTPのホストの設定を変更し、「暗号化なし」で接続する。※非推奨

セキュリティの視点から言えば、どう見ても[1]が一番手軽&安心で、次点は[2]ですが、「どうしてもFFFTPを使わなければならない」というやむを得ない事情がある場合には[3]のFFFTPのホストの設定を変更して接続しましょう。

 

以上で解決です。