兼容性
版本 | 说明 |
---|---|
IIS 7.5 | FTP 7.5 服务作为 Windows 7 和 Windows Server 2008 R2 中 IIS 7.5 的功能提供。 |
IIS 7.0 | FTP 7.0 和 FTP 7.5 服务是 IIS 7.0 带外提供的,需要从以下 URL 下载和安装该服务:https://www.iis.net/download/FTP。 |
介绍
Microsoft 创建了一个新的 FTP 服务,该服务针对 Windows Server® 2008 完全重新编写。 此 FTP 服务包含许多新功能,使 Web 作者能够比以前更好地发布内容,并为 Web 管理员提供了更多的安全性和部署选项。
其中一个功能是通过安全套接字层 (SSL) 使用 FTP,该功能允许在 FTP 客户端和服务器之间加密会话。 本文档介绍以下内容:设置 FTP 站点;配置该站点以结合使用 SSL 与新的 FTP 用户界面,这样你可以直接编辑 IIS 7.0 配置文件。 该结构包含:
注意
本演练包含使用本地管理员帐户登录 FTP 站点的一系列步骤。 仅在使用环回地址或远程服务器中的 over SSL 应按照这些步骤进行操作。 如果你偏爱使用单独的用户帐户而非管理员帐户,则必须在必要时创建合适的文件夹并为用户帐户设置正确的权限。
先决条件
完成本文中的程序需要安装以下各项:
IIS 7.0 必须安装在 Windows 2008 服务器上,并且必须安装 Internet Information Services 管理器。
新的 FTP 服务。 可以使用以下链接之一从 https://www.iis.net/ 网站下载并安装 FTP 服务:
- 用于 IIS 7.0 的 FTP 7.5 (x64)
- 用于 IIS 7.0 的 FTP 7.5 (x86)
你需为 FTP 发布创建根目录:
在
%SystemDrive%\inetpub\ftproot
处创建文件夹设置权限以允许管理员组进行访问:
- 打开命令提示符。
- 键入下列命令:
ICACLS "%SystemDrive%\inetpub\ftproot" /Grant administrators:F /T
- 关闭命令提示符。
注意
本演练中列出的设置将 %SystemDrive%\inetpub\ftproot
指定为 FTP 站点的路径。 你无需使用此路径;但如果你更改站点的位置,则必须更改整个演练中使用的与站点相关的路径。
可选:创建自签名 SSL 证书
在此可选任务中,你将创建自签名 SSL 证书,用于测试 FTP 站点。
注意
如果要为基于 Internet 的活动设置 FTP 站点,你将从许多证书颁发机构(如 VeriSign、Thawte、DigiCert 等)中的一个获得 SSL 证书。有关详细信息,请参阅证书颁发机构。
- 打开 Internet Information Services (IIS 7.0) 管理器。
- 单击连接树的顶部节点处的计算机,然后双击服务器证书功能。
- 在“操作”窗格中,单击“创建自签名证书”。
- 输入“我的 FTP 证书”作为新证书的名称,然后单击“确定”。
使用 IIS 7.0 管理器创建启用了 SSL 的 FTP 站点
步骤 1:使用 FTP 站点向导创建基于 SSL 的 FTP 站点
在第一步中,新建使用你的管理员帐户才能打开的 FTP 站点。
转到 IIS 7.0 管理器。 在“连接”窗格中,单击树中的“站点”节点。
右键单击树中的“站点”节点,单击“添加 FTP 站点”,或者单击“操作”窗格中的“添加 FTP 站点”。
显示“添加 FTP 站点”向导时:
在“FTP 站点名称”框中输入“我的新 FTP 站点”,然后导航到在先决条件部分中创建的
%SystemDrive%\inetpub\ftproot
文件夹。注意
如果选择键入内容文件夹的路径,可以在路径中使用环境变量。
单击 “下一步” 。
在向导的下一页:
从“IP 地址”下拉菜单中选择 FTP 站点的 IP 地址,或者选择接受默认选择“所有未分配”。由于你稍后将在本演练中使用管理员帐户,因此请确保限制对服务器的访问,并通过在“IP 地址”框中键入“127.0.0.1”来输入计算机的本地环回 IP 地址。
通常你会在“端口”框中输入 FTP 站点的 TCP/IP 端口。 在此演练中,选择接受默认端口 21。
在此演练中,不使用主机名,因此请确保“虚拟主机”框为空。
确保“证书”下拉菜单设置为你的 SSL 证书。 例如,如果按可选步骤创建自签名证书,则下拉菜单应显示“我的 FTP 证书”。
确保选中“允许 SSL”选项。
单击 “下一步” 。
在向导的下一页:
对于“身份验证”设置,选择“基本”。
对于“授权”设置:
- 在“允许访问的对象”下拉菜单中,选择“指定用户”。
- 键入“administrator”作为用户名。
- 对于“权限”选项,选择“读取”和“写入”。
完成这些项,然后单击“完成”。
总结
你使用新的 FTP 服务成功新建了基于 SSL 的 FTP 站点。
回顾在此步骤中完成的项目:
- 你新建了名为“我的新 FTP 站点”的新 FTP 站点,该站点的内容根目录位于
%SystemDrive%\inetpub\ftproot
。 - 你将 FTP 站点绑定到了端口 21 上计算机的本地环回地址。
- 你选择为 FTP 站点要求了安全套接字层 (SSL),并选择了 SSL 证书。
- 你启用了基本身份验证,并为本地管理员帐户创建了读写访问授权规则。
步骤 2:配置其他 FTP SSL 设置
可以逐个站点自定义 FTP 的 SSL 策略。 可以为控制通道和数据通道指定不同的设置。 在此步骤中,你将为 FTP 站点配置额外的 SSL 设置,以确保即使所有其他 FTP 活动都未加密,所有用户凭据也已加密。
转到 IIS 7.0 管理器。 单击在步骤 1 中创建的 FTP 站点的节点。 显示所有 FTP 功能的图标。
为配置 SSL 选项,双击“FTP SSL 设置”图标以打开 SSL 设置功能页面。
显示“FTP SSL 设置”页面时,选择“自定义”选项,然后单击“高级”按钮。
显示“高级 SSL 策略”对话框时:
为控制通道选择“仅要求凭据”选项。
注意
此设置要求通过 SSL 加密所有用户名和密码,但客户端可以选择是否加密所有其他控制通道活动。
对于数据通道,选择“允许”选项。
注意
此设置允许客户端选择是否加密任何数据通道活动。
完成这些项,然后单击“确定”。
在“FTP SSL 设置”页面中,单击“操作”窗格中的“应用”以保存 SSL 设置。
总结
回顾在此步骤中完成的项目:
- 你将控制通道 SSL 策略配置为了要求对所有用户凭据进行加密,并允许 FTP 客户端决定是否对所有其他控制通道活动进行加密。
- 你配置了数据通道 SSL 策略,以允许 FTP 客户端决定是否对任何数据通道活动进行加密。
登录 FTP 站点
在步骤 1 中,你创建了可通过管理员帐号访问的 FTP 站点。 在步骤 2 中,你配置了控制通道 SSL 策略,以要求对所有用户凭据进行加密,同时允许 FTP 客户端选择是否对所有其他控制通道和数据通道活动进行加密。
使用支持 SSL 的 FTP 客户端登录 FTP 服务器时,FTP 服务器支持以下显式安全选项:
- TLS-C/TLS - 使用 TLS 与 RFC2228 默认建立连接。 这意味着没有对数据连接的隐式保护。
- TLS-P/SSL - 使用 TLS 建立连接。 这意味着数据连接受到隐式保护。
在大多数第三方 FTP 客户端中指定 SSL 连接选项时,可以配置这些设置。
通过编辑 IIS 7.0 配置文件添加基于 SSL 的 FTP 发布
你还可以通过编辑 IIS 7.0 配置文件将基于 SSL 的 FTP 发布添加到现有网站。
注意
编辑 applicationHost.config 文件需要完整的管理权限。 使用以下两种方法之一:
- 使用“本地管理员”帐户登录到计算机。
或
- 如果已使用具有管理员权限但不是本地“管理员”帐户的帐户登录,请使用“作为管理员运行”选项打开记事本。
注意
必须执行上述其中一步操作,因为 Windows Vista 和 Windows Server 2008 操作系统中的用户帐户控制 (UAC) 安全组件会阻止访问 applicationHost.config 文件。 有关 UAC 的详细信息,请参阅 用户帐户控制。
以下步骤将引导你完成添加默认网站的 FTP 发布所需的所有设置。
步骤 1:检索 SSL 证书的哈希:
- 在“服务器证书”功能中,双击你的 SSL 证书。 例如,如果按可选步骤创建自签名证书,则双击名为“我的 FTP 证书”的证书。
- 单击“详细信息”选项卡。
- 浏览字段,直到找到“指纹”值。
- 突出显示“指纹”值,数据显示如下:
"57 68 6F 61 20 44 75 64 65 2C 20 49 49 53 20 52 6F 63 6B 73" - 从文本框复制十六进制数据并将其粘贴到剪贴板中。 然后,打开 Windows 记事本并将数据粘贴到空白文档中。
注意
稍后你将使用此信息。
步骤 2:将 FTP 添加到默认网站
使用文本编辑器(例如 Windows 记事本)打开 applicationHost.config 文件,该文件默认位于
%SystemRoot%\System32\inetsrv\config
文件夹中。找到默认网站部分。 它应与下面的示例类似:
<site name="Default Web Site" id="1"> <application path="/"> <virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\wwwroot" /> </application> <bindings> <binding protocol="http" bindingInformation="*:80:" /> </bindings> </site>
在绑定集合中新建绑定元素。 将新绑定元素的 protocol 属性值设置为包含“ftp”,然后将 bindingInformation 属性的端口值更改为包含“21”。 默认网站的设置现在应类似于以下示例:
<site name="Default Web Site" id="1"> <application path="/"> <virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\wwwroot" /> </application> <bindings> <binding protocol="http" bindingInformation="*:80:" /> <binding protocol="ftp" bindingInformation="*:21:" /> </bindings> </site>
在结束“绑定”标记下添加 ftpServer 部分,该部分将包含身份验证和 SSL 设置<><>。
注意
FTP 站点的身份验证设置是在站点级别上配置的,这与网站的身份验证不同,网站的身份验证可以根据 URL 进行配置。
<ftpServer> <security> <authentication> <anonymousAuthentication enabled="false" userName="IUSR" /> <basicAuthentication enabled="true" /> </authentication> <ssl serverCertHash="" controlChannelPolicy="SslRequire" dataChannelPolicy="SslRequire" /> </security> </ftpServer>
将指纹数据从 SSL 证书复制并粘贴到 SSL 元素的 serverCertHash 属性中。 删除指纹数据中的所有空格。
注意
如果不将十六进制数据转换为大写,则该数据后续将不会在 IIS 管理器中显示。
默认网站设置现在应包含如下示例:
<site name="Default Web Site" id="1"> <application path="/"> <virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\wwwroot" /> </application> <bindings> <binding protocol="http" bindingInformation="*:80:" /> <binding protocol="ftp" bindingInformation="*:21:" /> </bindings> <ftpServer> <security> <authentication> <anonymousAuthentication enabled="false" /> <basicAuthentication enabled="true" /> </authentication> </security> <ssl serverCertHash="57686F6120447564652C2049495320526F636B73" controlChannelPolicy="SslRequire" dataChannelPolicy="SslRequire" /> </ftpServer> </site>
滚动到 applicationHost.config 文件的底部,为默认网站添加将包含授权设置的位置部分。
注意
在本例中,FTP 站点的授权设置是根据 URL 进行配置的。
<location path="Default Web Site"> <system.ftpServer> <security> <authorization> <add accessType="Allow" users="administrator" permissions="Read, Write" /> </authorization> </security> </system.ftpServer> </location>
保存 applicationHost.config 文件。
现在,你应能够使用基于 SSL 的 FTP 客户端登录默认网站。
总结
在此任务中,你已通过编辑 IIS 7.0 配置文件将基于 SSL 的 FTP 发布添加到默认网站。 回顾在此任务中完成的项目:
- 你将 FTP 绑定添加到了默认网站。
- 你为默认网站启用了 FTP 基本身份验证,禁用了 FTP 匿名身份验证。
- 你将站点配置为了对所有控制通道和数据通道活动要求 SSL。
- 你为默认网站配置了管理员帐户的读取/写入权限。