FTP服务是Internet上常见的传输文件的服务。它是用于文件传输的Internet标准。由FTP提供的文件传送是将一个系统复制到另外一个系统。本节介绍了FTP服务,以及在IIS中设置FTP服务的方法。
FTP与通常的TCP/IP协议不同,它采用两个TCP连接来传输一个文件。这两个连接分别为控制连接和数据连接。
控制连接以通常的客户端/服务器方式建立。服务器以被动方式打开用于FTP的端口(默认FTP协议的服务器端口为21),等待客户的连接;客户端则以主动方式打开TCP端口21,来建立连接。控制连接始终等待客户端与服务器之间的通信。该连接将命令从客户端传给服务器,并传回服务器的应答。
每当一个文件在客户端与服务器之间传输时,就会创建一个数据连接。数据连接的模式有两种,分别是主动模式和被动模式。
主动模式有时指的是客户端管理,这是因为客户端在控制连接上给服务器发送Port命令。该命令要求服务器使用Port命令指定的TCP端口,建立从服务器上TCP端口20到客户端的数据连接。
被动模式有时称为服务器管理,这是因为客户端发出Pasv命令后,服务器通过一个数据连接的服务器端的临时端口进行响应,并将这个端口通知客户端,然后客户端一连接到这个端口,数据传输就会开始。
Windows Server 2003中的服务同时支持这两种模式的FTP数据传输,不支持禁用其中的一种模式。
FTP通常被误解为数据传输的一种安全方法,因为FTP服务器可以配置成在授权访问前要求有效的用户名和密码。但是需要注意的是,无论是在登录时指定的凭据还是数据本身都是以某种方式加密或编码的。所有凭据都以明文的形式通过网络进行发送。换句话说,所有的FTP数据都可以很容易地被FTP客户端和FTP服务器之间的任何工作站截取和分析。明文凭据的隐患是某些不期望的用户可以登录到FTP并且下载放置在其中的文件。如果管理员试图在FTP站点上放置敏感数据或者客户端和FTP服务器之间的安全通信很重要,可以考虑在加密通道(例如,由PPTP协议或IPSec保护的虚拟专用网络)中使用FTP。
Windows Server 2003除了提供的IIS可以作为FTP服务器外,还提供了两种客户端:一种是FTP命令行工具,另一种是IE。FTP命令行工具只支持主动传输模式,而IE则支持主动传输模式和被动传输模式。
如果用户在安装IIS的时候选择了FTP服务,那么Windows组件向导会为用户自动创建一个默认FTP站点。如果这台安装了IIS的计算机中只需建立一个FTP站点,那么用户就不必再创建FTP站点,而只需设置默认FTP站点符合用户的需求即可。如果需要创建多个FTP站点,可以按照以下步骤创建。
(1)在“开始”菜单中选择“管理工具”命令,打开“管理工具”窗口,然后双击“Internet信息服务(IIS)管理器”。
(2)在“Internet信息服务(IIS)管理器”中选中“FTP容器”,在“操作”菜单中选择“新建”→“FTP站点”命令。用户也可以选择“FTP站点(来自文件)”通过XML配置文件创建和设置FTP站点。
(3)在“FTP站点创建向导”的欢迎界面中单击“下一步”按钮。
(4)输入FTP站点的描述名称,这个描述可以帮助管理员在“Internet信息服务(IIS)管理器”中识别该站点。输入了FTP站点的的描述后,单击”下一步”按钮。
(5)设置FTP服务器使用的IP地址和端口,然后单击”下一步”按钮。
(6)在“FTP用户隔离”界面(如图8-15所示)中设置FTP用户隔离,然后单击“下一步”按钮。
图8-15 “FTP用户隔离”界面
FTP用户隔离支持3种隔离模式,每一种模式都会启动不同的隔离和验证等级。
“不隔离用户”模式不启用FTP用户隔离。该模式的工作方式与以前版本的IIS类似。由于在登录到FTP站点的不同用户间的隔离尚未实施,该模式最适合于只提供共享内容下载功能的站点或不需要在用户间进行数据访问保护的站点。
“隔离用户”模式在用户访问与其用户名匹配的主目录前,根据本机或域账户验证用户。所有用户的主目录都在单一FTP主目录下,每个用户均被安放和限制在自己的主目录中,不允许用户浏览自己主目录外的内容。如果用户需要访问特定的共享文件夹,管理员可以再建立一个虚拟根目录。该模式不使用Active Directory目录服务进行验证。当使用该模式创建了上百个主目录时,服务器性能会下降。
“用Active Directory隔离用户”模式根据相应的Active Directory容器验证用户凭据,而不是搜索整个Active Directory,那样做需要大量的处理时间。为每个客户指定特定的FTP服务器实例,以确保数据完整性及隔离性。当用户对象在Active Directory容器内时,可以将FTPRoot和FTPDir属性提取出来,为用户主目录提供完整路径。如果FTP服务能成功地访问该路径,则用户被放在代表FTP根位置的该主目录中。用户只能看见自己的FTP根位置,却因受限制而无法向上浏览目录树。如果FTPRoot或FTPDir属性不存在,或它们无法共同构成有效、可访问的路径,用户将无法访问。
(7)输入FTP根目录的路径,然后单击“下一步”按钮。
(9)设置FTP的权限,是否允许读写,然后单击“下一步”按钮。
(10)单击“完成”按钮完成向导。
如果选择了“不隔离用户”模式,还需要为允许用户访问FTP做一些额外的工作。
如果选择了“隔离用户”模式,那么管理员需要在FTP站点的主目录下建立LocalUser子目录并且在LocalUser子目录下面按照使用FTP的用户名建立用户的主目录。如果使用域用户登录,那么还需要在FTP站点的主目录下建立以域的NETBIOS为目录名的子目录,然后在这个目录下为各个用户建立与用户登录名同名的主目录。如果允许匿名访问,可以在FTP站点下建立LocalUser和LocalUser\Public两个目录。后者就是匿名用户的主目录。
如果选择了“用Active Directory隔离用户”模式,那么设置比较复杂,需要使用脚本等支持ADSI对象的程序修改用户的FTPRoot或FTPDir属性,这里就不再介绍了。有关“用Active Directory隔离用户”的详细信息,可以参照Windows的帮助。
在完成了以上设置之后,用户就可以使用FTP客户端登录到FTP服务器上,然后进行文件传送。
用户可以使用Internet信息管理器设置FTP站点,也可以使用文本编辑器编辑服务器配置文件,设置FTP服务。
设置FTP服务的步骤如下:
(1)在“开始”菜单中选择“管理工具”命令,打开“管理工具”窗口,然后双击“Internet信息服务(IIS)管理器”。
(2)在“Internet信息服务(IIS)管理器”中展开FTP容器。
(3)选中要设置的FTP站点,然后在“操作”菜单中选择“属性”命令。
在FTP站点属性对话框的“FTP站点”选项卡中设置FTP站点标识、FTP站点的IP地址、FTP站点的TCP端口、FTP站点的连接限制(可以选择不受限制,或者设置限制FTP站点的最大连接数)、连接超时(单位为秒,默认值为120)、是否启用日志记录、日志记录的格式(FTP站点支持Microsoft IIS日志文件格式、ODBC日志记录、W3C扩展日志文件格式)。
单击“当前会话”按钮,查看当前连接FTP的用户,在“FTP用户会话”对话框中管理员可以断开选定的用户,如图8-16所示。
在“安全账户”选项卡中设置是否允许匿名连接,以及匿名用户使用哪个Windows用户账户的用户名和密码访问FTP站点。此外,还可以设置FTP站点只接受匿名连接。
在“消息”选项卡中设置FTP消息,如图8-17所示。
其中,“标题”文本框内的消息会在客户端试图连接FTP站点时,传送给客户端,“欢迎”文本框内的消息会在客户端成功登录后传送给客户端,“退出”文本框内的消息会在客户端向FTP服务器发出QUIT指令后传送给客户端。当FTP站点的客户端总数达到最大数量后,用户尝试登录FTP服务器时,会收到最大连接数的文本信息。
在“主目录”选项卡中,设置FTP站点的主目录路径,这个路径可以是本地计算机的目录,也可以是网络上其他计算机中共享目录的UNC路径。此外,还可以设置FTP目录的输出格式(MS-DOS格式或UNIX格式),如图8-18所示。
图8-16 管理FTP用户会话
图8-17 “消息”选项卡 图8-18 “主目录”选项卡
在“目录安全性”选项卡中设置允许访问FTP站点的计算机的IP地址范围。
(4)最后在FTP站点属性对话框中单击“确定”按钮完成设置。
对于使用Active Directory用户隔离的FTP站点,“主目录”选项卡不可用。