我有一个 FTP 服务器,需要打开端口 21,如何保证它的安全?

我有一个 FTP 服务器,需要打开端口 21,如何保证它的安全?

我很疑惑,因为我需要路由器和防火墙上的 21 端口都打开才能正常工作,但这样一来,似乎很容易受到攻击。有什么方法可以保证安全吗?幸运的是,我的路由器上的 21 端口已打开仅有的拥有 ftp 服务器的计算机,因此它不会危及我的整个网络,只会危及 ftp 服务器。我使用的是 Windows XP,因此我更加担心,因为我确信针对 XP 的攻击更多。

答案1

FTP 存在安全风险,因为它以纯文本形式传输登录信息(包括密码),因此您需要对其进行加密。如果您需要专门使用 FTP,那么 OpenVPN 可以很好地将其包装在完全加密的流中:

  OpenVPN(免费且开源)
  http://www.openvpn.net/index.php/open-source.html

您的服务器和所有需要使用 FTP 服务器的客户端都必须安装 OpenVPN。

当然,您可能会发现使用更安全的 FTP 版本之一(称为 SFTP 或 FTPS)会更方便,因为许多 FTP 客户端都内置了对此的支持。一个非常好的版本是 FileZilla,它提供完整且独立的客户端和服务器应用程序,并符合相关的 RFC:

  FileZilla(免费、开源)
  http://www.filezilla-project.org/

答案2

这个问题的解决方案有很多种,复杂程度和便利程度各有不同。

  1. 为可访问的帐户设置安全密码。如果您使用好的密码,除非存在其他漏洞,否则其他人不太可能进入。
  2. 仅允许特定 IP 地址访问 FTP。如果您知道您只从特定位置访问您的计算机,则只需允许这些位置连接并阻止所有其他位置。
  3. Linux 系统有一种叫做拒绝主机这将阻止那些似乎对您的机器有恶意行为的 IP。
  4. 端口敲门仅在对一组预定的端口进行了一系列连接尝试后才允许访问端口。例如,尝试连接端口 20、35、16 和 1,然后端口 21 将被打开。不过我不确定 Windows 是否有这个实现...

祝你好运!

答案3

FTP 实际上需要两个端口,21 是主控制端口,20 用于数据。

FTP 是一种奇怪的协议,它是在互联网时代早期创建的,当时还没有防火墙和安全的概念。因此,按照设计,它不适合防火墙。

ftp 服务器在端口 21 上侦听来自客户端的连接。但数据通过另一个端口传输。在“传统”ftp 中,服务器将从端口 20 打开连接服务器到客户端上的某个临时端口。现在你无法这样做,因为从服务器到客户端的连接会被防火墙阻止,或者由于客户端 NAT 而不可用。

在被动 FTP 中,服务器在某个端口上创建一个新的监听套接字,供客户端连接。现在,您正在尝试对某个动态变化的端口进行防火墙保护。

并且正如其他人提到的那样,密码是明文的,我强烈建议使用 http/https。这样更干净,除非你真的需要 ftp。在这种情况下,我只会将我愿意使用匿名 ftp 传输的内容放在其中。

相关内容