• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:proftpd 外部から接続失敗の原因?)

proftpd 外部から接続失敗の原因

このQ&Aのポイント
  • Centos8 準拠の Miracle Linux 8.6 を使用して、FTPサーバーに外部からアクセスできない問題が発生しています。
  • 問題の原因として、使用しているproftpdの設定が正しくない可能性があります。
  • インストール内容や失敗ログを分析した結果、MasqueradeAddressの設定が不足していることが判明しました。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

MasqueradeAddress を使う場合は、 自宅が固定IPでないなら、 立ち上げっぱなしのstandaloneだとIPが変わっても追従できないので、 リスエストごとに都度起動するinetd方式のほうがよいでしょうね。 ただ、今回の問題は動的IPアドレスの変化に追従してくれないというものでなく  「227 Entering Passive Mode (192,168,2,150,192,0).」 となって、パッシブモードのIPアドレスにプライベートアドレスを をレスポンスしてしまうということなのでそれとは別の問題ですね。 最近のルーターなら、FTPのポート転送を設定するだけで、 ルーターがパッシブモードのIPアドレスの置換までやってくれるので MasqueradeAddressの設定は不要なはずです。 ですが、ポート21ではないってことなので、 もしかして、ftp用のポート転送設定ができてなくて、 ルーターがパッシブモードのIPの置換をしてくれてない 可能性はないでしょうか?(ルーターの仕様次第ですが) この場合なら、ルーターの設定で プロトコルはFTPのままで、 ポート番号を変更できる機能があるなら、それを使ってみてはどうでしょう。 もし、ftpを選ぶとポート21でしかポート転送できないルータならば MasqueradeAddress DDNSのホスト名 を指定するしかないでしょうね。 それと 「なお、ルーター側で TCP 2121 の信号が、今回の自宅サーバーに届くように、ポート解放とポート変換の設定はできています。」 とのことですが、 PassivePorts 49152 49153 で指定しているポート番号のポート開放とポート変換も できていますか? (パッシブモードは外部→内部なので、ポート転送が必要です) 別の問題かもしれませんが、MasqueradeAddress を指定したときの FFFTPのログの 227 Entering Passive Mode(~) のIPアドレスや、そのあとどこでエラーしているのかを 丁寧にみてみるとよいかと思います。 (サーバー側のログもですが)

kmsakutomo
質問者

補足

わかりやすいご説明、ありがとうございました。 まだ standalone モードのままですが、以下のように試行錯誤して、外部からも内部からも FTP サーバーに接続できるようになりました。 (1) proftpd.conf に以下のように、直接グローバルIPを記述する。    MasqueradeAddress 27.95.9.100    → 問題無く、外部から接続できた。      従って、ルーターの設定等は問題無い事が判明。       (質問時の記載に漏れていましたが、49152 49153 のポート解放とポートマッピングは変更済みでした。)      ただし、この状態では内部からはアクセスできなくなってしまった。 (2) 質問時に、    MasqueradeAddress xxxxxx.f5.si   のように、DDNS のドメイン名を記載したが改善されなかった理由は、私の場合、内向き DNS を建てていて、ドメイン名が   インターネット名と同じ名前であったのが原因のようでした。   昔の IODATA の NAS は、製品登録すれば無料で DDNS のドメインが入手できるので、今回この NAS を引っ張り出して、FTP 専用の   ドメイン名を用意し、このドメイン名を MasqueradeAddressに 記述したところ、    - 外部からは passive モードで接続OK。    - 内部からは 非passive モードで接続OK。(passive モードでは接続NGですが)   となり、これが最適解ではないかもしれませんが、何とか最初のターゲットはクリアできました。ありがとうございました。 >MasqueradeAddress を使う場合は、自宅が固定IPでないなら、立ち上げっぱなしのstandaloneだとIPが変わっても追従できないので、 >リスエストごとに都度起動するinetd方式のほうがよいでしょうね。  確かに、standalone モードだと IP の変化が起きても DNS を牽き直さないので、やはり inetd 方式にする必要があるわけですね。  xinetd インストール とか、(proftpd ではなく) xproftpd とか、ハードルが高そうですが、チャレンジしてみます。  superside0 様は、この分野にお詳しいようですので、この質問コーナーをクローズせずに、何か困った事があったら質問しても  よろしいでしょうか?  以上、よろしくお願いいたします。

その他の回答 (3)

回答No.4

> この機能を有しているルーターの型番を教えて頂ければあ りがたいです。 私が自宅で使っているのは台湾のTP-Link製の7000円ぐらいのですが 「ヘアピンNAT NATループバック ルーター」 で検索すると色々ありますよ。 VPNサーバーも必要なら、それなりのルーターが必要になるかと思いますが、 昔のPPTPのみのVPNサーバー付きルーターだと、 今どきのMacやiOS(iPhone)から接続できないので L2TP/IPsec対応VPNサーバー付きルーターとなるでしょう。 ちなみに、私は上記のルーターにはVPNサーバー機能はないですが L2TPをLinuxサーバーにポート転送して、 LinuxでL2TP/IPsecを待ち受けさせてVPNサーバーにしています。

kmsakutomo
質問者

お礼

情報提供、ありがとうございました。

回答No.3

補足読みました。 ルーターが  パッシブモードのIPアドレス置換までやってくるタイプなら proftpd.confでMasqueradeAddress指定自体が不要になるので、 そうすれば、standaloneでも問題ないでしょうね。 もし21番ポートでないと パッシブモードのIP置換をやってくれないルーターということなら、 NASとLinuxの2つのFTPサーバーでなく Linuxからsambaクライアントを使ってNASをマウントして、 FTPはLinuxに一本化するという方法も考えられますね。 それと、 「内向き DNS を建てていて、」っていうのは、 LAN内から自宅サーバーへグローバルIPへアクセスできないので プライベートIPアドレスで記述したLAN内専用のDNSを立てているということなのでしょうけど、 「ヘアピンNAT」を搭載しているルーターなら LAN内からルーターのWAN側のIPアドレスにアクセスしても 内部サーバーにポート転送してくれます。 それならば、そもそもプライベートIPで定義する内部DNS自体も不要になりますし 内部からでもパッシブモードでの接続も可能になるはずです。 (実際に、私はそうやって解決しています) なお このコーナーのクローズ云々の件ですが、 1つのスレッドで テーマが混在するのは このOKWAVEの他の利用者にとっても望まない利用方法でしょうから 別の質問は、都度にあげられたほうがよいと思いますよ。

kmsakutomo
質問者

補足

>プライベートIPアドレスで記述したLAN内専用のDNSを立てているということなのでしょうけど、 「ヘアピンNAT」を搭載しているルーターなら LAN内からルーターのWAN側のIPアドレスにアクセスしても 内部サーバーにポート転送してくれます。 それならば、そもそもプライベートIPで定義する内部DNS自体も不要になりますし 内部からでもパッシブモードでの接続も可能になるはずです。 (実際に、私はそうやって解決しています) そうなんですか。この機能を有しているルーターの型番を教えて頂ければありがたいです。 ちなみにうちは、Buffalo の有線ルーターで「BHR-4GRV2」というもので、その後ろに無線LANのアクセスポイント(ルーター機能なし)を接続しています。この機種は VPN(PPTP)対応だったので、大昔に購入しのですが、今でも使い続けています。 >1つのスレッドで テーマが混在するのは このOKWAVEの他の利用者にとっても望まない利用方法でしょうから 別の質問は、都度にあげられたほうがよいと思いますよ。 了解しました。そうします。 ありがとうございました。

  • abiwirang
  • ベストアンサー率39% (52/133)
回答No.1

FTPサーバに接続できない問題は、いくつかの原因が考えられます。以下のような点を確認してみることをおすすめします。 ポートフォワーディングの設定 FTPサーバが正しく外部からアクセスできるようにするためには、ルーターのポートフォワーディング設定が必要です。質問文にあるように、ポート 2121 のトラフィックをFTPサーバに転送するように設定されていることを確認してください。 FTPサーバの設定 FTPサーバが正しく構成されていることを確認してください。設定ファイル(通常は /etc/proftpd.conf )を確認して、FTPサーバのポート番号、ユーザー、パッシブポートの範囲などが正しいかどうかを確認してください。また、FTPサーバが起動していることも確認してください。 ファイアウォールの設定 ファイアウォールが正しく設定されているかどうかを確認してください。例えば、SELinuxが有効になっている場合、FTPサーバのディレクトリが正しい権限を持っているかどうか、FTPサーバのプロセスがSELinuxのポリシーに遵守しているかどうかなどを確認する必要があります。 ネットワーク設定 ネットワーク設定に問題がある可能性があります。例えば、FTPサーバが正しく構成されているにもかかわらず、外部からアクセスできない場合、ISPがポート2121をブロックしている場合があります。また、NATを使用している場合、内部ネットワークのIPアドレスが正しく公開されているかどうかを確認する必要があります。 これらの点を確認して、問題を特定してください。また、FTPサーバへの接続が失敗した場合は、FTPクライアントが表示するエラーメッセージを確認して、問題の原因を特定する手がかりを探すことも重要です。

kmsakutomo
質問者

補足

早速のコメント、ありがとうございました。 SELinux は無効にしていました。(記載漏れ、すみません) 何とか、外部から接続できるようになりました。 superside0 様の回答に補足で記載しました。