使用 FTPS 时需要打开哪些防火墙端口?

使用 FTPS 时需要打开哪些防火墙端口?

我需要访问供应商站点上的 FTPS 服务器 (vsftpd)。供应商在 ftps 服务器前面有防火墙。我的 FTPS 客户端前面也有防火墙。

我知道需要开放端口 990、991 甚至 989 来控制流量。

我有一些疑问:

  1. 从供应商的防火墙角度来看,这些端口是否应该对入站和出站流量开放?
  2. 数据通道的端口怎么样?
  3. 我是否必须打开所有 1000 以上端口?
  4. 我应该对入站和出站流量都这样做吗?

答案1

我对 FTP over SSL (ftps) 的理解是,它不能很好地与防火墙和 NAT 配合使用。在普通的 FTP 会话中,防火墙会读取有关数据连接的信息,并在 NAT 中对其进行修改,以便防火墙动态打开所需的端口。如果该信息受 SSL 保护,则防火墙无法读取或更改它。

使用 SFTP 或 scp 使网络管理员的工作变得容易得多——一切都发生在服务器的端口 22 上,并且事务遵循正常的客户端/服务器模型。

有一件事没有提到,那就是您的防火墙是否正在执行 NAT,以及它是静态 NAT 还是动态 NAT。如果您的客户端计算机具有静态地址或正在进行静态 NAT,则可能不需要对防火墙进行任何更改,前提是您允许所有出站流量并且服务器仅在被动模式 (PASV) 下运行。

要确切了解需要打开哪些端口,您需要执行以下任一操作:

a) 与供应商联系,了解他们的系统配置细节。

b) 使用协议分析器(如 tcpdump 或 wireshark)查看防火墙内外的流量

您需要找出哪个端口是控制连接。您列出了 3 个,这对我来说似乎很奇怪。假设服务器仅在 PASV(被动)模式下工作,您需要弄清楚服务器如何配置以分配数据端口。他们是否将数据通道锁定到单个入站端口?他们是否将数据通道锁定到小范围或端口?

有了这些答案,您就可以开始配置防火墙。

答案2

我认为 990 左右的端口用于隐式 SSL,这是执行 FTP/SSL 的一种旧式非标准方式。如今的“正确”方式是显式 SSL,这意味着您仍然连接到端口 21,然后在发送您的内容之前协商 SSL。要支持通过防火墙的连接,您需要使用 PASV 模式并硬设置要使用的数据端口。

我认为您需要为要支持的每个数据连接至少提供一个端口。如果只有您一个人,那么可能只需打开几个额外的端口就足够了。具体来说,我使用 21000-21010。

在 vsftpd.conf 中,我有这两行(以及所有其他支持 SSL 的内容):

pasv_min_port=21000

pasv_max_port=21010

在我的防火墙上,我有一个公共静态 IP,它与内部 IP 进行一对一/静态 NAT,并且只打开 tcp 端口 21、21000-21010。

答案3

我知道这是一个非常古老的话题,但是......

请注意,SFTP 与 FTPS 完全不同。(SSH 与 SSL)

FTPS 以两种方式工作。显式和隐式。显式不太安全,因为在初始握手之后,数据传输期间会跳过加密 [是否维持数据加密可在服务器端使用 PROT P 配置],而隐式在握手后也会保持数据加密。默认的显式 FTPS 端口为 21。默认的隐式端口为 990(握手后,如果没有不同配置,它将自动切换到 989 进行数据传输)。虽然端口 21 通常被接受为 EXPLICIT FTPS,而 990 被接受为 IMPLICIT FTPS,但实际上,无论您配置哪个端口(990/989 除外),都将导致 EXPLICIT FTPS,而只有 990/989 会被接受为 IMPLICIT FTPS。

因此,回答您的问题:- 根据 FTPS 服务器配置,您需要打开端口 21 或 990/989。但是,为了确保万无一失,您应该联系 FTPS 服务器管理员并询问指示。此外,请记住,对于被动模式,与所有其他 FTP 软件一样,您必须打开其他端口(TCP/UDP),通常范围在 64000-65000 之间。

答案4

如果供应商尚未配置,他们可能能够为 DATA 连接端口配置一个较窄的端口范围。然后,您可以在您的终端为需要此类访问的主机打开相同的范围。应使用 PASV 模式。

相关内容