我已经build立了一个需要SSL的FTP站点,但是当我尝试从外部连接到它时,我得到错误:
220 Microsoft FTP服务534策略需要SSL。
我知道 – 我确定了! 为什么不从网站获取SSL证书,并允许我login?
(顺便提一下,所有的教程, 允许但不要求 SSL – 虽然这将解决这个问题,因为SSL没有被使用!)。
我怀疑这可能是我需要一个支持FTPS(FTP over SSL)的客户端,而Windows资源pipe理器只是使用不支持的IE。 但尝试FileZilla和WinSCP我得到了一个更进一步,但它挂在TLS / SSL协议期待从服务器的响应….
更新:我已经尝试(从http://learn.iis.net/page.aspx/309/configuring-ftp-firewall-settings/ ):
我仍然得到(在FileZilla尝试主动和被动):
Status: Connecting to 203.xxx: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防火墙无用的日志无话可说
UPDATE2:closures防火墙不能解决问题。
我不能相信这么简单的工作是多么困难,甚至一旦跟随文档,它不工作。
UPDATE3:在主动模式下,在被动模式下,通过环回运行本地连接的FileZilla,我起床到:
Command: LIST Response: 150 Opening BINARY mode data connection. Error: GnuTLS error -53: Error in the push function.
closures两端的防火墙,我仍然无法连接客户端,并得到与上述相同的错误。
确认:您需要支持FTPS的客户端。 Internet Explorer中的WinInet和Windows的命令行FTP.EXE不。
你是正确的,需要FileZilla或WinSCP。 基本上这些FTP设置说,任何人试图通过端口21使用正常的方法应该被拒绝,它不会尝试重build一个不同types的连接。 因此IE和命令行选项将不起作用。
一个很好的testing就是在FTP服务器上或其他没有防火墙的服务器上本地安装FileZilla。 让它在那里工作,certificate它的工作,然后开始看你的防火墙政策,让它通过。 最有可能的是你再次运行防火墙规则,阻止FTPS所需的dynamic端口。
在FileZilla中,使用“基于TLS的显式FTP”并使用主动和被动模式进行testing。 主动和被动需要不同的防火墙端口。
我怀疑你有一个类似的问题,我曾经经历过,因为我们的边界安全设备对FTP连接有点太有帮助。 简而言之,如果你有一个现代化的企业UTM设备,尝试绑定TCP / 990到你的FTP站点,并允许它通过防火墙,如果你正在使用FTPS。 UTM上的“FTP帮助程序”服务可能会阻碍,因为它期望看到未encryption的stream量遍历TCP / 21。
我写了一篇描述这个问题和解决scheme的博客文章: http : //www.lewisroberts.com/2010/08/06/scripting-ftpes-explicit-tlsssl-with-curl/
您还应该在IIS中configuration被动FTP端口范围,并在防火墙中打开这些端口。 在IIS中,单击顶级节点(服务器名称),然后单击FTP防火墙支持。 在那里,定义一系列端口,然后您必须在防火墙中打开并转发到FTP服务器。
你可能会忽略关于curl的部分,但嘿,你可能会发现它在未来有用!
HTH
-Lewis
如何在ftps客户端连接中启用Clear Command Channel支持?
这篇文章与我以前的一个,但我想包括更多的信息。 以下是您可以进一步testing的一些步骤(更新3之后)。
对于以下所有情况,请使用本地主机FileZilla
作为一个回顾,你的设置应该是这样的: – FTPauthentication。 匿名禁用,基本启用。 – FTP授权规则。 创build一个允许所有的规则,并删除你的临时…只是为了testing。 有一个错误,在某些情况下,与授权规则的某些用户组合无效…虽然它会显示自己拒绝访问,所以可能不是你的问题。 – 确保使用Windows用户帐户(与IIS用户)进行testing,直到您缩小这一点 – 确保您的Windows用户有权访问FTP根文件夹 – FTP SSL设置应该是允许或需要testing(生活时需要)。 确保您的SSL证书有效。 你可以用另一个自签名的证书来testing,但是由于它和主动模式一起工作,这可能不是问题。 – 不要使用FTP头(在站点绑定),直到你得到了一切其他的工作 – FTP用户隔离:第三个选项在很多情况下是一个很好的select,但最好的select是一个很好的简单的testing。
我仍然相信它与被动ftp端口或防火墙的其他内容有关,所以上面的许多步骤都无济于事,但是审查它们并没有什么坏处。
你在你的客户机和ftp服务器之间使用VPN还是其他的东西? 这也可能会被动的FTP搞乱。
确保您已经在服务器级别configuration了SSL SSL设置中的SSL证书,并且在站点级别也是如此。 出于某种原因,MS站点( https://learn.iis.net/page.aspx/304/using-ftp-over-ssl-in-iis-7/ )显示您仅在站点上的FTP SSL设置中configuration证书,而不是在服务器和网站上。 这个博客帮助了我: http : //prestondev.wordpress.com/2012/02/24/iis-ftp-7-5-ftp-over-ssl-ftps-setup/
由于我使用自签名证书,因此必须在FireZilla中设置“需要TLS显式FTP”。 然后给我一个消息框,我的主机名不符合证书,我忽略了。
这不是防火墙或主动/被动问题。 您的日志显示您可以通过防火墙build立控制通道。 接下来,您将在控制通道上协商SSL和身份validation。 一旦成功,您将继续以主动或被动模式设置数据通道,具体取决于您的configuration。 以下是您的日志将如何…
Status: Connecting to xyz91: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... Status: Verifying certificate... Command: USER ftp.myserver.com|ftpuser Status: TLS/SSL connection established. Response: 331 Password required for ftp.myserver.com|ftpuser. Command: PASS ********* Response: 230 User logged in. Command: OPTS UTF8 ON Response: 200 OPTS UTF8 command successful - UTF8 encoding now ON. Command: PBSZ 0 Response: 200 PBSZ command successful. Command: PROT P Response: 200 PROT command successful. Status: Connected Status: Retrieving directory listing... Command: PWD Response: 257 "/" is current directory. Command: TYPE I Response: 200 Type set to I. Command: PASV Response: 227 Entering Passive Mode (x,y,z,91,194,245). Command: LIST Response: 150 Opening BINARY mode data connection. ...
祝你好运!