web-dev-qa-db-ja.com

外部ネットワークからvsftpdに接続できません

私はこれが以前に何度も尋ねられたことを知っていますが、私の問題を解決するものは何もないようです。

私はvsftpdをubuntu10.04で実行しています。マシン上のftplocalhostに接続できます。ネットワーク内の別のマシンから接続できます。外からは接続できません。マシンは、MacのAirMacユーティリティによって管理されているAirMacExtremeの背後にあります。

21はnmapに従って開いています:

macmini:~$ nmap localhost

Starting Nmap 5.21 ( http://nmap.org ) at 2011-04-10 23:49 EDT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00045s latency).
Hostname localhost resolves to 2 IPs. Only scanned 127.0.0.1
rDNS record for 127.0.0.1: localhost.localdomain
Not shown: 997 closed ports
PORT    STATE SERVICE
21/tcp  open  ftp
22/tcp  open  ssh
631/tcp open  ipp

netstatによると、21はリッスンしています。

macmini:~$ netstat -lep --tcp | grep ftp
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp        0      0 *:ftp                   *:*                     LISTEN

iptables:

macmini:~$ Sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

外部IP(またはそこで解決されるdyndns名)から接続しようとすると、タイムアウトになります。 (「制御接続がタイムアウトしました」)

私はネットワーキングについてほとんど知らないので、何かが明らかに間違っているように飛び出すかもしれないと感じますか?

1
rick

実際にあなたの質問に答えるには:ファイアウォールはどのように構成されていますか?着信接続をブロックしているようです。ほとんどの場合、ポート21にデフォルトの拒否があります。実際、ほとんどの場合、外部インターフェイスのすべての着信接続にデフォルトの拒否があります。ファイアウォールはNAT/PAT変換を行っていますか? FTPをパッシブモードで実行していますか、それともアクティブモードで実行していますか?アクティブモードで実行している場合、FTPクライアントはサーバーから接続を転送する必要があります。そうしないと、接続が失敗します。 areパッシブモードで実行している場合、yoはそのパッシブポート範囲を転送する必要があります。すべての接続はポート21で行われていますか?一部のクライアント(主にWebブラウザー)はデータにポート21を使用しますが、デフォルトでは使用しません。

より一般的に言えば、FTPがファイアウォールを介して正しく機能するようにすることは途方もない PITAです。これは、FTPがTCP/IPおよびTCP/IPモデルよりも前から存在しているためです。 FTPには、同じIPからサーバーへの接続ごとに異なるポートが必要です。ポート21を制御接続に使用し、20をデータ接続に使用します一般的に。また、アクティブFTPとパッシブFTPのどちらを使用しているかによって、サーバーがこれらのデータ接続を開始しようとするか、クライアントが開始する必要があるかが決まります。パッシブFTPを使用している場合は、ポート21だけでなく転送する必要があります。デフォルトではポート20ですが、最近のほとんどのFTPデーモンは50,000の範囲のポートの範囲を要求します。 vsftpd構成ファイルを調べて、使用するポートを確認する必要があります。また、FTPはプレーンテキストでパスワードを送信するため、man-in-the-middle攻撃やリプレイ攻撃などの影響を非常に受けやすいことを忘れないでください。

FTPd +ファイアウォール=悪夢。 IMX、「FTPサーバーがファイアウォールを越えて機能しないのはなぜですか?」という質問に対する必然的な答え。 「FTPは1971年にさかのぼるからです。」

一般に、sftp(OpenSSHは最も一般的なLinuxデーモンです)に切り替えることを強くお勧めしますが、sftpはsshコマンドのサブセットであるため、詳細を学習するのにしばらく時間がかかります。設定には注意が必要です。そうしないと、外部ユーザーにサーバーへのシェルアクセスを許可します。 「悪意のあるローカルユーザーが...可能性がある」というセキュリティアラートが突然すべて適用されるため、これは明らかに悪いことです。

3
Bacon Bits