IIS 7.5 FTPS 外部访问 - 534 策略需要 SSL

IIS 7.5 FTPS 外部访问 - 534 策略需要 SSL

我已经设置了一个需要 SSL 的 FTP 站点,但是当我尝试从外部连接它时出现错误:

220 Microsoft FTP 服务 534 策略需要 SSL。

我知道 - 我是这样设置的!为什么它不从网站获取 SSL 证书并允许我登录?!

(顺便提一下,所有教程允许但不要要求SSL——虽然这可以解决问题,但这是因为没有使用 SSL!)。

我怀疑可能是我需要一个支持 FTPS(基于 SSL 的 FTP)的客户端,而 Windows 资源管理器只使用不支持 FTPS 的 IE。但是尝试使用 FileZilla 和 WinSCP 后,我取得了一些进展,但它在 TLS/SSL 协商时挂起,等待服务器的响应……

更新:我已尝试过(来自:http://learn.iis.net/page.aspx/309/configuring-ftp-firewall-settings/):

  1. 为 FTP 服务配置被动端口范围。
  2. 为特定 FTP 站点配置外部 IPv4 地址。
  3. 配置防火墙以允许 FTP 服务侦听其打开的所有端口。
  4. 禁用状态 FTP 过滤,以便 Windows 防火墙不会阻止 FTP 流量。

但我仍然得到(在 FileZilla 中尝试主动和被动):

Status: Connecting to 203.x.x.x:21...
Status: Connection established, waiting for welcome message...
Response:   220 Microsoft FTP Service
Command:    AUTH TLS
Response:   234 AUTH command ok. Expecting TLS Negotiation.
Status: Initializing TLS...
Error:  Connection timed out
Error:  Could not connect to server

Windows 防火墙日志毫无帮助,没有任何内容可说。

更新2:关闭防火墙并不能解决问题。

我简直不敢相信让如此简单的东西工作如此困难,而且即使按照文档操作它也无法工作。

更新3:在主动模式下,通过环回连接在本地运行 FileZilla,在被动模式下,我可以:

Command:    LIST
Response:   150 Opening BINARY mode data connection.
Error:  GnuTLS error -53: Error in the push function.

关闭两端的防火墙后,我仍然无法连接客户端,并出现与上述相同的错误。

答案1

您说得对,需要 FileZilla 或 WinSCP。基本上,这些 FTP 设置表示,任何试图通过端口 21 使用正常方法的人都应被拒绝,并且它不会尝试重新建立不同类型的连接。因此 IE 和命令行选项将不起作用。

一个好的测试是在 FTP 服务器上本地安装 FileZilla,或者在中间没有防火墙的另一台服务器上安装。让它在那里运行以证明它有效,然后开始查看防火墙策略以允许它通过。最有可能的是,您再次运行了防火墙规则,该规则阻止了 FTPS 所需的动态端口。

在 FileZilla 中,使用“显式 FTP over TLS”并使用主动和被动模式进行测试。主动和被动需要不同的防火墙端口。

答案2

确认:您需要一个支持 FTPS 的客户端。Internet Explorer 中的 WinInet 和 Windows 的命令行 FTP.EXE 不支持。

答案3

我怀疑您遇到了我过去遇到的类似问题,即我们的边境安全设备对 FTP 连接有点太有帮助了。简而言之,如果您拥有现代企业 UTM 设备,请尝试将 TCP/990 绑定到您的 FTP 站点,并允许它通过防火墙(如果您使用 FTPS)。UTM 上的“FTP 助手”服务可能会妨碍您,因为它希望看到未加密的流量穿越 TCP/21。

我写了一篇博客文章来描述该问题及其解决方案:http://www.lewisroberts.com/2010/08/06/scripting-ftpes-explicit-tlsssl-with-curl/

您还应该在 IIS 中配置被动 FTP 端口范围,并在防火墙中打开这些端口。在 IIS 中,单击顶级节点(服务器名称),然后单击 FTP 防火墙支持。在其中,定义您必须在防火墙中打开并转发到 FTP 服务器的端口范围。

您可能会忽略有关 cURL 的部分,但是,嘿,您将来可能会发现它很有用!

高血压

-刘易斯

答案4

这篇文章与我之前的文章一致,但我想包含更多信息。以下是您可以进一步测试的一些步骤(在更新 3 之后)。

对于以下所有内容,请使用 localhost FileZilla

  • 尝试重新恢复被动端口设置,然后在本地机器上进行测试。本地机器应该能够以主动和被动模式进行连接。
  • 尝试将 SSL 设置设为允许而不是要求,只是为了解决你的困惑。
  • 尝试再次设置一个新的 FTP 帐户并查看其如何工作。
  • 只是为了确定,您使用的是 FTPES 对吗?

总结一下,您的设置应如下所示: - FTP 身份验证。匿名已禁用,基本已启用。 - FTP 授权规则。创建一个允许所有规则并删除您的临时规则...仅用于测试。曾经有一个错误,它不适用于授权规则的某些用户组合...尽管它会显示为拒绝访问,所以可能不是您的问题。 - 确保使用 Windows 用户帐户(而不是 IIS 用户)进行测试,直到缩小范围 - 确保您的 Windows 用户可以访问 FTP 根文件夹 - FTP SSL 设置应为允许或要求进行测试(实时时需要)。确保您的 SSL 证书有效。您可以使用另一个自签名证书进行测试以排除该问题...尽管由于它适用于主动模式,所以这可能不是问题所在。 - 在其他所有东西都正常工作之前,请勿使用 FTP 标头(在站点绑定中) - FTP 用户隔离:在许多情况下,第三个选项都很好,但最上面的选项是一个很好的简单测试选项。

我仍然相信它与被动 ftp 端口或防火墙的其他东西有关,因此上述许多步骤都无济于事,但检查一下它们也没有什么坏处。

您在客户端计算机和 FTP 服务器之间使用 VPN 还是其他什么?这也会影响被动 FTP。

相关内容