2024年1月17日水曜日

FTPで425エラー!?

こんばんは、こうちゃんです。

私は本業で多くのサイトを作成・管理しておりまして、
つい先日、いつものように大量管理しているサイトの操作中、
あるサーバーにFTPで繋ぎまして、ファイル操作をしようとしましたら・・・

ffftpにて(FTP用フリーソフトです)
425 Unable to build data connection: Operation not permitted

!?
どいうこと!?
いつも使っててこんなエラー出てなかったんですけどーーーー

仕方ない、だいたいFTPでのこんなエラーなんてのは、過去の賢人達も一度はぶつかっていて、同じように悩み、解決してきた歴史があるはず、と調べれば解決するだろうと、
早速エラーメッセージにて検索してみました。

おおう、まずは解決方法は置いておいて、このエラーメッセージが出る時の原因は判明しました。

FTPでは通信時に使うポートが、
制御用コネクション(control connection)と呼ばれる、ファイル転送に関する指示(コマンド)をやりとりするためのもの、デフォルトで21番ポートと、
データ転送用コネクション(data connection)と呼ばれる、データ転送用ポートで、デフォルトで20番ポート、
のふたつを使っているそうで、
425エラーは、まずは、
425 Unable to build data connection
という部分があり、データ転送用コネクション(data connection)を確立できなかった(接続できなかった)ことを示しています。

原因としては、セキュリティで20番ポートが閉じられている場合や、
今回のエラーメッセージのように、
Operation not permitted
と出ていれば、権限不足等でポート確立が許可されていない場合です。

これはFTPクライアントでなく、サーバーのFTPサーバー側の設定なので、
見直しで、暗号化通信を強制する「TLSRequired on」となっているときに発生するようで、対策としては、
proftp.confを開いて、

TLSOptions NoSessionReuseRequired
という行を追記、FTPサーバーを再起動することで直ります。

他、そもそも、ファイア・ウォールなどのセキュリティ設定で20番ポートを閉じている場合も接続できませんので、その場合、アプリケーション層で対処でなく、サーバー管理者に確認の上、20番ポートをふさいでいないか、解放できないか、の相談をするとよいでしょう。

こうちゃん