it-swarm.cn

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

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

我了解需要打开端口990、991和989,以控制流量。

我有一些疑问:

  1. 从供应商的防火墙角度来看,是否应该为入站和出站流量打开这些端口?
  2. DATA通道的端口呢?
  3. 我必须打开所有大于1000的端口吗?
  4. 我应该同时对入站和出站流量执行此操作吗?
33
user3293

我对基于SSL的FTP(ftps)的理解是,它不适用于防火墙和NAT。在普通的FTP会话中,防火墙会读取有关数据连接的信息,并为NAT=)修改,以便防火墙动态打开所需的端口。如果该信息由SSL保护, ,防火墙无法读取或更改它。

使用SFTP或scp,使网络管理员的工作更加轻松-一切都在服务器的端口22上进行,并且事务遵循正常的客户端/服务器模型。

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

要确切知道您需要打开哪些端口,您将需要:

a)与供应商联系以获取有关其系统配置方式的详细信息。

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

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

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

19
pcapademic

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

我相信您要支持的每个数据连接至少需要一个端口。如果只有您,则可能只打开几个额外的端口就可以了。我专门使用21000-21010。

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

pasv_min_port=21000

pasv_max_port=21010

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

29
David

我知道这是一个非常古老的线程。

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

FTPS有两种工作方式。显式和隐式。显式安全性较差,因为在初始握手后数据传输过程中会跳过加密(如果可以在服务器端使用PROT P配置可维护数据加密),而隐式也将在握手后保留数据的加密。默认的Explicit FTPS端口为21。默认的Implicit端口为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之内。

11
Marin

基本上ftps几乎没有用,因为您必须向防火墙管理员提出令人尴尬的请求。建议将端口限制为10个。更重要的是,它变得可悲。

sftp在理论上要好得多。但是您需要一个可行的sftp服务器,例如一种将客户端限制到其自己的主目录的目录。

根据应用程序,考虑使用HTTPS。文件上传非常简单,显然下载也是如此。如果您仍在编写FTP脚本,则编写HTTPS文件上载脚本可能会更加容易。

自动化的FTP是设计问题的标志。当我与大约十二家供应商打交道时,我注意到了这一点,他们“需要”我工作过的地方来进行自动FTP(对于非常重要的事情),并且当数十名客户在同一家商店这样做时(针对我目睹了20种不同的用法)。说服大多数应用程序人员使用HTTPS很容易(通常在提要时,他们说:“等等,我们没有理由不只是让他们从已经向其提供数据的Web服务器上通过HTTPS获得它吗?” ),但有些人给出的回应是:“好吧,我们已经有了这些脚本,这些脚本似乎可以正常工作,而且我们团队中没有人真正擅长脚本编写,因此我们无法真正进行任何更改”(一个由5至10名程序员组成的团队,假装不明白他们可以用自己选择的语言编写它,因为他们不知道如何从头开始编写简单的程序。).

2
carlito

如果尚未安装,则供应商可以为DATA连接端口配置狭窄的端口范围。然后,您可以为需要这种访问权限的主机在端部打开相同的范围。应该使用PASV模式。

1
Chris W. Rea

端口22是标准端口,因为UNIX上的SSH守护程序具有一个SFTP模块,您可以启用该模块来基本上制作一个显式SFTP服务器。如果要使用Filezilla运行隐式FTP服务器,则可以在所需的任何端口上运行它,但是有一个问题:如果使用FileZilla客户端,则需要将ftp站点URL指定为ftps://mysite.com:8086。而不是将端口放在FileZilla客户端提供的单独的端口字段中。

对于显式选项,您只需要一个端口:22.对于隐式选项,您只需要为控制端口:8086(内部转发到filezilla服务器上的端口21)打开防火墙。

0
djangofan