IIS 7上用于FTP的端口号

按照这些说明,我设法在Windows Server 2008(IIS 7)上configuration我的FTP服务器以启用Require SSL connections同时启用Require SSL connections 。 但是,我无法通过SSL连接到FTP服务器。

排除故障
在服务器上禁用防火墙
– 将nmap添加到报告了以下端口的服务器:

 PORT STATE SERVICE 21/tcp open ftp 53/tcp open domain 88/tcp open kerberos-sec 135/tcp open msrpc 139/tcp open netbios-ssn 389/tcp open ldap 443/tcp open https 445/tcp open microsoft-ds 464/tcp open kpasswd5 593/tcp open http-rpc-epmap 636/tcp open ldapssl 1433/tcp open ms-sql-s 1723/tcp open pptp 3268/tcp open globalcatLDAP 3269/tcp open globalcatLDAPssl 3389/tcp open ms-term-serv 49152/tcp open unknown 49153/tcp open unknown 49154/tcp open unknown 49155/tcp open unknown 49157/tcp open unknown 49158/tcp open unknown 49159/tcp open unknown 

– 基于这个TCP端口列表,我期待看到FTPS (990)SFTP (22)打开。 如果我去FTP Bindings...设置,唯一的一个列表是fto (21) ,并没有任何其他FTP相关的select,我可以添加。 如果我尝试添加HTTPS

作为一个客户端来testingfilezilla ,并通过端口21进行了以下testing:
FTP模式 – >失败, Response: 534 Policy requires SSL.
SFTP模式 – >客户端收到Response: 220 Microsoft FTP service后快乐Response: 220 Microsoft FTP service
FTPS模式 – >客户端发送类似客户端hello的消息,失败Response: 451 The parameter is incorrect.

问:我怎样才能进一步解决这个问题(最终目标是能够强制安全FTP的客户端)?

其他故障排除

我真的被困在这一点上。 我已经尝试了Filezilla提供给我的所有协议( FTPSSFTPFilezilla ): Filezilla开始使用Filezilla文本FTP和IIS返回Response: 534 Policy requires SSL ,或者它尝试启动安全连接, Response: 451 The parameter is incorrectResponse: 431 Failed to setup secure session

我用wireshark嗅探stream量,我可以看到filezilla正在使用我设置的端口。 我已经添加了几个端口到IIS上的FTP绑定(例如, 990 …,TCP握手在每种情况下都正确build立),无论我尝试什么,我都会得到相同的行为。

我还看了c:\inetpub\logs\LogFiles中的FTP日志,我得到的都是无用的消息,如ControlChannelOpenedControlChannelClosedAUTH TLSAUTH SSL ,这些无助于理解事实上为什么实际上失败。

问:如何进一步排除故障(ISS FTP是否有debugging模式)?

你的testing工作。 你设置的实际上是FTPS或者FTP-Secure,Filezilla在你的testing中成功地得到了220的回应。 尽pipe名称相似,SFTP是一个完全不同的动物,它通过SSH(Linux标准)连接传输文件。

端口是不可知的,也就是说,他们并不特别在意你发送的stream量是否被encryption,并且只要求发送者(服务器)和接收者(客户端)都使用相同的端口,的交通。 因此,如果您知道只能通过端口21发送stream量,请记住服务器需要SSL连接。

如果您不控制客户端以及允许连接哪些端口,则应将IIS FTP端口从默认值21更改为行业标准990.在IIS中更改端口非常简单,在步骤4中您使用的教程,只需将默认端口21(如下图所示)更改为990的FTPS端口。IIS控制面板的屏幕快照http://learn.iis.net/file.axd?i=1612

请记住将防火墙重置为端口990,并重新启动IIS服务器以使更改生效。

更新(现在用Filezilla客户端说明)

我认为我们可能会弄清楚问题,而不是改变更多的设置和可能产生更多的问题,所以我在Windows 7笔记本电脑上使用localhost创build了一个testing服务器,并使用Filezilla连接到它。 因为您向我展示了关于创buildFTP站点的教程,并且您可以创build一个没有任何问题的非安全连接,所以我将着重介绍一下Filezilla会话,其中问题发生的可能性更大。

首先,我build立了我的默认FTP站点,称为“testing”。 请记住,我正在运行Windows 7,所以即使这些步骤是相同的​​,它们可能看起来不同于您的服务器。 IISpipe理屏幕http://i43.tinypic.com/apk1g8.jpg正如我之前所说的,端口并不重要,唯一的要求是服务器和客户端使用相同的。 但是,为了保持惯例,我将继续使用990端口。

我告诉IIS需要一个SSL连接(默认允许是好的,但是我们希望强制客户端使用SSL,所以我们明确表示这是我们想要的)。 而且,由于我们正在testing,我们将使用默认的IIS Express开发证书,如下面的截图所示。 在现实生活中,你应该从一个有信誉的来源获得SSL证书,但如果你不这样做,你可能会连接,但客户端会发出警告。 (披露:我不太熟悉使用SSL保护网站,所以我将在向公众发布您的网站之前确认您的设置) SSL设置屏幕http://i42.tinypic.com/mha49.jpg

一旦网站启动,请确认您使用前缀ftps://连接到您的服务器。 这就是FTP客户端知道您需要创build安全连接的原因,以及为什么我一再重复说明端口号是不相关的。 继续使用您的用户名和密码,因为您已经设置了它(我使用匿名和无密码),并在最后插入您的端口号,但如果您使用FTPS默认值990,Filezilla往往会消除你连接。 我的日志显示在下面的截图中。 Filezilla日志屏幕http://i39.tinypic.com/2evw0ba.jpg

想到的最后一个问题是:确保服务器和客户端之间的时钟设置正确。 这可能需要几个小时,但SSL使用时间戳来validation安全性,并且计算机通常设置为默认的加利福尼亚州时区,用户会在不更正时区的情况下将本地时间重新设置为当地时间。 这会造成时代的巨大变化,并可能造成奇怪的SSL错误。

让我知道你的日志看起来如何,我会看看,如果我能从那里帮助你!