最近、一部のルータでFTP通信をモニタし、PASVモードの応答メッセージ内のサーバアドレスのアドレスをプライベートからWAN側のグローバルアドレスに変換してくれるものがある。この動作は、ProFTPDでMasqueradeAddressを指定するのと等価の動作であり、対応機種としては、OPT90、DR202、SW-4P
HGなどがある。
そもそもNATルータを介した時にPASVモードで問題が起こるのは、クライアントからのPASVコマンドに対し、サーバから通知される応答メッセージ内のサーバアドレスが、家庭内で使用されているサーバ自身のプライベートアドレスあることに起因する。本件は、
FTPサーバの公開に記してあるので参考にしてください。クライアントは、自分がアクセスしているルータのWAN側アドレス以外で、且つプライベーアドレスを通知されるので、通信できなくなるのは自明の理である。ルータの変換機能とは、制御コネクションで使用されるデフォルトの21番ポートをモニタすることにより、FTP通信であることを認識し、その中でやり取りされる、PASVモード時にサーバから通知される応答メッセージ内のサーバアドレスを、プライベートからWAN側のグローバルに書き換えることにより、あたかもサーバがインターネット上に直接存在するかのごとくするものである。
従って、このような機能があるルータを使用している場合は、デーモンを含めて特に対策を施さなくてもNATルータ配下でFTPサーバをPASVモードで公開できる。(NATルータ対策が可能なデーモンであっても動作がおかしくなるので、この場合は対策しないこと。) 但し、デーモンでデフォルトの21番を使用していないとFTP通信として認識できないので、この機能は動作しない。また、FTPをSSL/TLSで使用する場合は、パケットが暗号化されるので中身が分からなくなり、変換できないため、このようなルータを使用しても駄目である。