无法从外部网络连接到 vsftpd

无法从外部网络连接到 vsftpd

我知道这个问题之前已经被问过很多次了,但似乎没有什么能够解决我的问题。

我在 ubuntu 10.04 上运行了 vsftpd。我可以使用机器上的 ftp localhost 进行连接。我可以从我网络中的另一台机器进行连接。我只是无法从外部连接。该机器位于 Mac 上由机场实用程序管理的机场极端后面。

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

真正回答你的问题:你的防火墙是如何配置的?听起来好像它阻止了传入连接。大多数防火墙默认拒绝端口 21。实际上,大多数防火墙默认拒绝外部接口上的所有传入连接。你的防火墙是否在进行 NAT/PAT 转换?你运行 FTP 时使用的是被动模式还是主动模式?如果你在主动模式下运行,FTP 客户端需要转发来自服务器的连接,否则连接将失败。如果你以被动模式运行,然后需要转发该被动端口范围。您的所有连接是否都在端口 21 上进行?默认情况下不会,尽管某些客户端(主要是 Web 浏览器)将使用端口 21 来传输数据。

更一般地讲:让 FTP 能够通过防火墙正常工作是一项巨大的很麻烦,因为 FTP 早于 TCP/IP 和 TCP/IP 模型。FTP 需要为来自同一 IP 的每个服务器连接使用不同的端口。控制连接使用端口 21,数据连接使用端口 20一般来说。并且,取决于您使用的是主动还是被动 FTP,这将决定您的服务器是否尝试启动这些数据连接或客户端是否必须启动这些数据连接。如果您使用的是被动 FTP,则必须转发的不仅仅是端口 21。默认情况下是端口 20,但现在大多数 FTP 守护程序请求 50,000 范围内的端口范围。您必须查看 vsftpd 配置文件以查看它要使用的端口。另外,请记住,FTP 以纯文本形式发送密码,因此它很容易受到中间人和重放攻击等攻击。

FTPd + 防火墙 = 噩梦。IMX,对于“为什么我的 FTP 服务器无法跨防火墙工作?”这个问题,必然的答案是“因为 FTP 可以追溯到 1971 年。”

总的来说,我强烈建议切换到 sftp(OpenSSH 是最常见的 Linux 守护进程),尽管这需要一段时间来了解它的来龙去脉,因为 sftp 是 ssh 命令的一个子集。您必须小心配置它,否则您将向外部用户授予对您的服务器的 shell 访问权限。这显然很糟糕,因为突然间所有那些说“恶意本地用户可能...”的安全警报都适用于您。

相关内容