ファイアウォールやルーターの外部から任意のTCPポートへのアクセスを通過させることはできません。セキュリティ上問題ですし、ファイアウォールの意味がなくなってしまいます。そこで、サーバー側でパッシブモード使用時のデータ転送用ポートを固定します。
ProFTPの設定ファイル(/etc/proftpd/proftpd.conf)をエディタで開いてください。「[sudo] taro のパスワード:」が表示されたら、自分のパスワードを入力します。
1 |
$ sudo nano /etc/proftpd/proftpd.conf |
46行目の先頭にある「#」を削除して、その行を有効にします。これは、パッシブモードでクライアントに通知するデータ転送用のポートの範囲です。データ転送にはこの範囲に含まれるポートが利用されます。ここでは「49152」~「65534」番のポートを指定しています。
1 |
PassivePorts 49152 65534 |
ファイアウォールは問題ありませんが、ルーターによってはアクセスを許可するポートを範囲で指定できない機種もあります。例えば、連載の第10回や第25回で利用した、バッファローのルーター「WCR-1166DS」は、範囲指定ができないとヘルプに書かれています。よって、
1 |
PassivePorts 49152 49153 |
のように範囲を絞って設定します。
設定を書き換えたら、
1 |
$ sudo systemctl restart proftpd |
を実行して反映します。