proftpd 外部から接続失敗の原因?
現在、Centos8 準拠の国産の Miracle Linux 8.6 を使って、自宅サーバーを立ち上げていますが、FTP サーバーのところで、外部から(LAN外から)のアクセスに失敗します。
<インストール内容>
・proftpd のバージョンは、Proftpd 1.3.7f で、主な設定内容は、
- サーバーモードは standalone
- ポート番号は 2121
- User ftp Group ftp
- PassivePorts 49152 49153
となっています。IODATA 社の NAS が FTP 機能を有しており標準のポート番号 21 が使われているので、今回 2121 に変更しています。
なお、ルーター側で TCP 2121 の信号が、今回の自宅サーバーに届くように、ポート解放とポート変換の設定はできています。
<不具合現象>
Windows PC 側で FFFTP というクライアントソフトで確認すると、
LAN 内部からは passive モード 非passive モード のとちらでも接続OK。
LAN 外部からは passive モード 非passive モード のとちらでも接続失敗。
という結果となっています。
<私が考察した内容>
FFFTP での失敗ログを見ると
----- ここからです。
FTP over Explicit SSL/TLS (FTPES)を使用します.
ホスト xxxxxx.f5.si を探しています. (TCP/IPv4)
ホスト xxxxxx.f5.si を探しています. (TCP/IPv6)
ホスト xxxxxx.f5.si (27.95.9.100 (2121)) に接続しています. (TCP/IPv4)
ホスト xxxxxx.f5.si が見つかりません. (TCP/IPv6)
接続しました. (TCP/IPv4)
220 192.168.2.150 FTP server ready
>AUTH TLS
234 AUTH TLS successful
>PBSZ 0
200 PBSZ 0 successful
>PROT P
200 Protection set to Private
>USER root
331 Password required for root
>PASS [xxxxxx]
230 User root logged in
>FEAT
211-Features:
AUTH TLS
CCC
CLNT
EPRT
EPSV
HOST
MDTM
MFF modify;UNIX.group;UNIX.mode;
MFMT
MLST modify*;perm*;size*;type*;unique*;UNIX.group*;UNIX.groupname*;UNIX.mode*;UNIX.owner*;UNIX.ownername*;
PBSZ
PROT
RANG STREAM
REST STREAM
SIZE
SSCN
TVFS
211 End
>TYPE A
200 Type set to A
>PASV
227 Entering Passive Mode (192,168,2,150,192,0).
ダウンロードのためにホスト 192.168.2.150 (49152) に接続しています. (TCP/IPv4)
接続できません. (TCP/IPv4)
ファイル一覧の取得を中止しました.
>CWD
-------- ここまでです。
となります。 上記で、xxxxxx.f5.si は、DDNS now 社の DDNS のドメインですが、ここではサブドメインを xxxxx としています。
また、グローバル IP 27.95.9.100 も今回の報告の際に架空のもので記載しています。
おかしいのは、下記の部分で、
ダウンロードのためにホスト 192.168.2.150 (49152) に接続しています. (TCP/IPv4)
ここは当然、以下のようにグローバルIPである必要があるので、これが接続失敗の原因のようです。
ダウンロードのためにホスト 27.95.9.100 (49152) に接続しています. (TCP/IPv4)
<その他情報>
知人で、Centos6 で、ポート 2121 で外部接続が成功している人がいたので、その人の proftpd.conf (ただし、proftpd のバージョンは相当古いが不明との事でした)を見せてもらったところ、
ServerType inetd
port 2121
PassivePorts 49152 49153
MasqueradeAddress xxxxxx.f5.si
のようになっていました。
今回、私がインストールした Proftpd 1.3.7f の .conf ファイルには、MasqueradeAddress の記載が全くなかったので最後の行を追加しましたが、不具合は改善されませんでした。
知人曰く、「サーバータイプが standalone ではダメなのでは?」との話でしたが、これが本当かどうか、私にはわかりません。
<アドバイス頂きたい事>
最終的には、外部から proftpd に接続できる事ですが、まずは以下の私の疑問に関しご教示頂きたくよろしくお願いいたします。
(1) proftpd を外部接続する際に、standalone では原理的に無理なのか? (知人の言う事は本当か?)
(2) もし、standalone でも正しく設定すれば外部からの接続が可能ならば、どのように設定するのか?
前述のように Proftpd 1.3.7f の .conf ファイルには、MasqueradeAddress の記載が無いが、どこか別のところで設定するのか?
(3) もし、standalone では原理的に無理ならば、inetd での設定方法についてわかりやすく記載されたネット情報(URL等)をご教示下さい。
私なりにネット情報を見たのですが、
xinetd インストール とか、(proftpd ではなく) xproftpd という語句が出てきて、とても複雑そうです。
以上、よろしくお願いいたします。