实现FTP服务

FTP站点基础
  正如WWW服务的实现依赖于TCP/IP协议组中的HTTP应用层协议一样,FTP服务同样依赖于TCP/IP协议组应用层中的FTP协议来实现。 FTP的默认TCP端口号是21,由于FTP可以同时使用两个TCP端口进行传送(一个用于数据传送,一个用于指令信息传送),所以FTP可以实现更快的 文件传输速度。
    使用FTP需要专门的客户端软件,例如著名的BulletFTP、LeapFTP等等,一般的浏览器(如IE)也可以实现有限的FTP客户端功能,如下载文件等。
    如右图,就是在IE浏览器中打开的一个FTP站点。FTP 服务器的Internet地址(URL)与通常在Web网站中使用的URL略有不同,其协议部分需要写成"ftp://"而不是"http://",例 如,由Microsoft创建并提供大量技术支持文件的匿名FTP服务器地址为ftp://ftp.microsoft.com。

在IE中打开FTP站点,将自动以匿名用户身份登录,这时在窗口中列出的内容就是FTP站点根目录下的文件和文件夹。如在Windows资源管理器中一样双击打开文件夹(目录)则进入其下一级目录。
如果我们需要在IE中下载一个文件,应遵循如下步骤:
  1.则在IE窗口中右击该文件图标,选择【另存为】,或者双击该文件。
  2.如右上图所示,在【文件下载】对话框中选择【将该文件保存到磁盘】。
  3.确保【在打开这种类型的文件前始终询问】复选框已经被选中。
  4.单击【确定】。
  5.如右下图,在【另存为】对话框中选择文件保存路径,完成后单击【确定】。

6.如下图,在下载对话框中显示进度,如果文件较大或者网络较慢,可能耗时较长,完成后单击【关闭】。

创建FTP站点
  现在我们已经对FTP站点有了一个感性认识,接下来的任务是学习如何在IIS中创建FTP站点,实际上,这项工作是与创建Web站点的过程及其相似的。
规划FTP站点
  与Web站点相同,FTP站点同样需要自己的IP地址和TCP端口号。由于FTP服务的默认端口号是21,而WWW服务是80,所以一个FTP站点可 以和一个Web站点共享同一个IP地址。事实上,安装IIS时自动生成的默认Web站点和默认FTP站点就是使用同一IP地址的。当我们不使用默认的21 作为FTP站点的TCP端口号时,客户机请求FTP站点时就需要在FTP服务器域名地址后面添加":"和实际端口号。
IIS的FTP服务也有虚拟服务器的实现方式,通过虚拟FTP服务器,可以在一台实际计算机上维持多个FTP站点。虚拟服务器的优点是节省硬件成本,缺点 是多个站点共用一台主机的资源会造成性能上的问题。实际的规划中并没有一种严格的定量规则,要根据站点的访问量和可能的数据流量以及服务器的硬件条件、带 宽资源等规划一台计算机所最多承载的站点数。
在IIS中,可以为FTP站点设置虚拟目录,虚拟目录的引入,极大的扩展了FTP服务器的存储能力。我们知道单一主目录的存储能力受到磁盘分区(包括物理 磁盘)的大小限制,而FTP服务的目的恰恰是提供大量文件以供下载,或提供大量的空间用于用户存储文件。这样的矛盾只有通过虚拟目录的方法才能得到解决, 尤其时远程虚拟目录,可以将FTP站点的存储空间分布在网络中的多台计算机中。但是,虚拟目录(尤其是远程虚拟目录)也带来一些性能上的问题,分布在局域 网中多台计算机上的存储环境可能会造成较多的网络流量。对于访问量大的FTP站点而言,分布的存储可能会影响到局域网中的其他用户。对此,唯一的弥补方法 是尽量将访问量大的文件保存在服务器的本地磁盘上,而将不太常用的文件保存在远程虚拟目录中。

使用FTP站点创建向导
  创建FTP站点的工作要在IIS的MMC窗口中进行,这里我们使用FTP服务器创建向导新建一个示例FTP服务器,方法如下。
  1.在IIS左侧的管理控制树中右击计算机图标,在弹出菜单中指向【新建】,单击【FTP站点】。
  2.在FTP站点创建向导中单击【下一步】。
  3.如下左图,在【站点说明】对话框中输入用于在IIS内部识别站点的说明,该名称并非真正的FTP站点域名。
  4.如下右图,在【IP地址和端口设置】对话框中指定该站点使用的IP地址和TCP端口号,注意默认的端口号为21。完成后单击【下一步】。

  5.如上图,在【FTP站点】主目录对话框中指定站点主目录,主目录是由于存储站点文件的主要位置。虚拟目录以在主目录中映射文件夹的形式存储数据。完成后单击【下一步】。
  6.如上右图,在【FTP站点访问权限】对话框中指定站点权限,FTP站点只有两种访问权限:读取和写入,前者对应下载权限;后者对应上传权限。单击【下一步】继续。
  7.如右图,单击【完成】结束FTP站点创建。
  8.回到IIS窗口中,在管理控制树中选择我们刚刚创建的FTP站点,单击工具条上的【启动项目】图标使之生效。

创建虚拟目录
  虚拟目录能够极大的拓展FTP服务器的存储能力。FTP虚拟目录分为本地和远程两种,本地虚拟目录即可以位于与FTP站点主目录相同的磁盘分区上,也 可以位于本地的其他磁盘上;远程虚拟目录则位于网络中的其他计算机上(必须与FTP站点所在的IIS计算机处于同一域中)。出于向下兼容性的考虑,FTP 站点的虚拟目录相当于在站点主目录下的映射文件夹。虽然对于FTP用户而言这些内容是在后台执行的不可见过程;但对于FTP站点管理员,就需要考虑这一特 性在站点和虚拟目录创建过程中造成的影响,稍后我们就将看到这一影响。
创建FTP虚拟目录的工作也是在IIS管理工具中完成的,具体如下:

  1.在IIS管理控制树中右击需要重建虚拟目录的FTP站点,在弹出菜单中指向【新建】,单击【虚拟目录】。
  2.打开虚拟目录创建向导,如右上图,在向导欢迎对话框中单击【下一步】。

  3.如左上图,在【虚 拟目录别名】对话框中的【别名】栏中指定虚拟目录别名。这里所谓的别名,是指虚拟目录在IIS管理器中的有效名称,亦即虚拟目录在站点主目录下映射的名 称。用户在下载FTP文件时指定的URL路径中包含的目录名称就是虚拟目录别名(对于非虚拟目录,指定其实际名称即可)。别名与目录真实名称没有联系,但 也可以相同。单击【下一步】继续。
  4.如右上图,在【FTP站点内容目录】对话框中单击浏览指定或在【路径】栏中直接指定虚拟目录所对应的实际路径。前面已经提到,对于远程虚拟目录, 其实际路径是以UNC路径的形式指定的,如需要以Server服务器上的Share共享文件夹作为虚拟目录的实际路径,则应指定路径栏中指定UNC名 为://Server/Share。单击【下一步】继续。
 5.如右图,在【访问权限】对话框中,指定该虚拟目录所允许的用户访问权限。选择相应的【读取】或【写入】复选框即可(对应下载和上传权限)。注意,这里的权限(虚拟目录权限)相当于WWW服务中的Web权限,是对所有站点访问用户都有效的。单击【下一步】继续。
  6.单击【完成】结束创建。
  为了检验我们的创建结果,回到IIS管理界面,在管理控制树中展开我们刚刚创建虚拟目录的网站,可见下新建的虚拟目录节点,右击虚拟目录节点,在弹出 菜单上选择【浏览】,打开一个IE窗口。此时窗口中列出的内容正是新建虚拟目录所对应的实际目录中包含的文件和文件夹,说明虚拟目录创建成功。

  但是,当我们在IE中 打开站点时(比如右击管理控制树中的站点节点,选择【浏览】),在IE窗口中却并未看见新建的虚拟目录。不过,如果在IE的地址栏中的站点地址后面加上虚 拟目录的路径,形如"/<虚拟目录名>",仍然可以进入虚拟目录并查看或下载其中的文件。这是为什么呢?
 其实上述问题的出现并非系统错误,其解决方法也并不复 杂。前面我们曾经提到,FTP站点的虚拟目录相当于站点主目录下的映射文件夹,实际对应的文件夹并不在主目录下,而在IE浏览器中打开的站点主页却只能显 示站点主目录下的内容。于是,就造成了虚拟目录不能在用户浏览器(包括其他FTP客户端工具)中显示的现象。虽然采用直接输入虚拟目录路径(完整URL) 的方式也可以对虚拟目录进行访问,但是这显然极大的影响了站点系统的应用。以下我们解决这个问题。
    解决问题的思路是这样的:既然虚拟目录相当于站点主目录下的映射文件夹,而主目录下实际上又没有这个实际文件夹,那么我们可以在主目录下创建一个与虚拟目 录同名的假文件夹。这个假文件夹使浏览器中可以显示一个与虚拟目录同名的项目。用户在打开这个假文件夹时,将直接被引导到虚拟目录。
    首先,我们需要查看FTP站点的主目录位置,如右图,在FTP站点

属性表单中的【主目录】选项卡中的【本地路径】栏中查看FTP站点主目录位置。
随后,打开Windows资源管理器,找到站点主目录文件夹,在主目录文件夹下新建一个与虚拟目录同名的假文件夹,如右图。
    最后,刷新IE浏览器窗口,这时可见FTP站点主目录下出现虚拟目录图标,双击打开,即可进入虚拟目录。
    现在,让我们讨论一个问题:一旦主目录下的假文件夹也包含有文件,那么在请求虚拟目录时,用户得到的是虚拟目录中的内容呢,还是假文件夹中实际存在的文件呢?这个问题留待读者自己思考,实在不得要领的话建议做一个实验验证之。

管理FTP站点
  在前一节,我们已经能够创建FTP站点和虚拟目录了,为了使FTP站点能够正常工作,还依赖于对站点的合理配置。本节将介绍有关FTP站点的管理内容。对于安全相关的管理问题,由于其具有特殊的重要性,我们将在下一节同一讨论之。
配置FTP站点属性
  FTP站点的的属性配置是在FTP站点属性表单中进行的。FTP站点属性表单与WWW属性表单非常相似,如右图,FTP站点属性表单有五个选项卡。
  对FTP站点属性的配置方法如下:
  1.打开IIS管理界面,右击管理控制树中的FTP站点图标,从弹出菜单中选择【属性】。

  2.FTP站点属性表单如左图所示,默认打开【FTP站点】选项卡。
  3.在【FTP站点】选项卡中配置FTP站点属性(包括标识、链接、日志等,下面将详细讨论它们的值),完成后单击【应用】,再单击【确定】关闭对话框。
  在FTP站点属性表单的【FTP站点】选项卡中可以对站点的下述参数进行配置:
  标识: 这部分包括站点说明、IP地址和TCP端口号三项。其中站点说明是在创建站点是指定的,用于在IIS内部识别站点,并无其他用途,与站点的DNS域名也无如何关系。FTP服务的默认TCP端口号为21。由于FTP服务不支持主机标头(Host Header),所以不能以主机头方式配置虚拟服务器。也就是说,在网络中区分FTP站点的唯一性标识只有IP地址和端口号。
连接: FTP站 点的连接限制与Web站点的连接限制几乎完全相同。连接限制用于维护站点的可用性并改善站点的连接性能。这一点对FTP站点来说尤为重要,因为几乎每个连 到站点的用户都会进行或多或少的文件下载,下载对带宽的占用是非常巨大的。在【连接】栏中单击【限制为】并制定同时连接到该站点的最大并发连接数,缺省限 制为同时100,000个连接。
  在【连接超时】栏中,可以指定站点将在多长时间后断开无响应用户的连接。缺省值设为900秒,即一个用户在发呆15分钟后将被IIS断开连接。
  日志: 对于FTP站点而言,也可以配置其启用日志功能,使用户对站点的全部访问都记录在日志文件中。在【FTP站点】选项卡中选择【启用日志纪录】复选框,对于FTP站点,只有三种可用的日志文件格式可用:Microsoft IIS文件格式、ODBC格式和W3C扩展文件格式,在【活动日志格式】下拉列表框中指定之。

  单击日志格式栏中的 【属性】打开如右图所示的扩充日志属性对话框。指定新日志文件的生成时间间隔或文件大小,根据用户访问量的大小和现有的分析能力决定采用何种方式进行文件 更新。在【日志文件目录】栏中指定日志文件存储的路径和文件名。详细的日志文件命名规则参见前面对Web日志文件的介绍。
  在扩充日志属性对话框中单击【扩充的属性】选项卡,从中可以对日志文件中记录的事件类型进行详细设定。
当前用户: FTP站点属性对话框中有一个独特的选项,单击【当前用户】,打开【FTP用户会话】对话框,如右图所示。该对话框中列出当前连接到FTP站点的用户列表。从列表中选择用户,单击【断开】可以断开当前用户的连接,单击【全部断开】可以使全部的当前用户从系统断开。
  【FTP用户会话】对话框为站点管理员提供了更灵活的管理方式和控制方式,使管理员能够实时控制当前用户的连接状态。

分配FTP站点操作员
  FTP站点操作员是指具有对站点进行全方位操作、维护能力的站点管理员。默认的站点管理员是Windows 2000系统管理员组的全体成员。在实际工作中,出于安全性、内容维护和其他考虑通常需要重新指定站点管理员,具体方法如下:
  1.打开IIS管理界面,右击管理控制树中的FTP站点图标,从弹出菜单中选择【属性】。
  2.在FTP站点属性表单中单击【安全用户】选项卡,如右图所示。
  3.在【操作员】列表中选择当前操作员账号,单击【删除】,去掉缺省的站点操作员账号。
  4.单击【添加】,打开【选择用户和组】对话框。
  5.指定站点操作员的账号或组账号,单击【确定】返回。
  6.单击【应用】使配置生效,单击【确定】关闭站点属性表单。

FTP站点信息
  用户在连入FTP站点时,应该得到对站点的相关介绍,对于不能像WWW服务一样提供丰富信息的FTP站点来说,这样的介绍尤为重要。此外,在用户离开 站点时,以及因站点达到最大连接数而不能接受用户的访问请求时,都应该得到相应的提示信息。这些提示性、解说性的简要信息就是FTP服务的站点消息。
    站点消息的指定要在FTP站点属性表单中的【消息】选项卡中进行指定,如右图。FTP站点消息分为三种:欢迎、退出、最大连接数,分别在【消息】选项卡中的【欢迎】、【退出】和【最大连接数】栏中进行指定。这三种消息类型的具体说明如下:
  欢迎消息: 用于向每一个连接到当前站点的访问者介绍本站点提供的服务、文件内容、访问方式等有关信息。它们有助于访问者更好地了解站点提供的内容,弥补FTP服务的信息断层。

如右图就是一个站点欢迎消息的示例,以在IE浏览器中打开的Web站点为例,左侧窗格中列出当前打开的FTP站点的欢迎消息内容(黄色背景部分)。
  退出消息: 用于在客户断开连接时(退出系统),发送给站点访问者的信息,一般为"再见,欢迎再来"之类的话。由于旧式的FTP工具大多是在命令行方式下工作的(Windows 2000命令提示行下页可以访问FTP站点),所以在退出站点时可见该消息(在IE浏览器中不存在退出的问题,只需要关闭窗口即断开与站点的连接,故该信息不可见)。

 最大连接数消息: 该消息用于在系统同时连接数已经达到上限(最大并发连接限制)时,向请求连接站点的新访问者发出的提示消息,如"由于当前用户太多,不能响应你的请求,请稍候再试"等。
    右图为命令提示行下,FTP这点的欢迎和退出消息。如果某些采用不同操作系统或客户端FTP软件的用户抱怨欢迎消息不能完全显示,则说明存在消息格式冲突,解决的方法是将站点的欢迎消息限制在一行之内。

配置FTP站点主目录
  FTP站点主目录是供站点存储主要文件的目录。主目录下的文件夹将作为FTP站点根目录的下一级目录出现,虚拟目录相当于主目录下的对应文件夹,也是站点根目录的下一级目录。
  FTP站点主目录的指定方式有本地主目录和远程主目录两种。前者是指站点主目录位于本地计算机的磁盘上;后者是将主目录设置为网络中(必须与IIS计 算机同在一域之内)的另一台计算机的共享文件夹上。主目录是在FTP站点属性表单的【主目录】选项卡中指定的。
  如右上图,本地主目录的指定方法为:在【主目录】选项卡中选择主目录位置为【此计算机上的目录】。单击【浏览】指定主目录位置或者直接在【本地路径】栏中输入主目录路径。单击【应用】、【确定】完成。
    远程主目录的指定方法为:在【主目录】选项卡中选择主目录位置为【另一计算机上的共享位置】,然后从【网络共享】栏中指定共享主目录的UNC路径。如果当 前站点管理员没有访问所指定共享文件夹的权限,则单击【连接为】,打开如右下图所示的身份验证对话框,输入具有对该共享文件夹合适权限的账号和口令,单击 【确定】返回。单击【应用】、【确定】完成。

配置站点目录列表方式
  【主目录】选项卡中还可以指定目录列表风格。可选的站点目录列表风格有MS-DOS和UNIX两种,在【主目录】选项卡中的【目录列表风格】栏中选择【MS-DOS】或【UNIX】分别之。
  按照字面理解,这两种风格分别适用于DOS/Windows 用户和UNIX用户,但这也不是绝对的。只能说某种风格可能会另相应操作系统的用户看起来更舒服一些,其中对UNIX/LINUX用户的影响更大一点。所 以,在主要针对UNIX/LINUX用户群的站点应设置为UNIX列表方式。下面两个窗口是不同目录列表方式在Windows 2000目录提示行下的显示示例,左图为MS-DOS方式,右图为UNIX方式。

实现FTP服务

FTP站点安全性设置
  FTP站点的安全性设置相对单纯,这是因为FTP站点并不涉及复杂的安全性应用程序和服务器/浏览器交互过程。限制FTP站点安全性的手段无非是:用 户账号认证、匿名访问控制以及IP地址限制,本节将给出这些限制方法及其综合运用方式。
目录安全性设置
  FTP用户仅有两种目录权限:读取和写入,读取权限对应于下载能力;写入权限对应上传能力。
  FTP站点的目录权限是对全体访问该目录的用户都生效的权限,即一旦某个目录设置为仅有读取权限,则任何FTP用户,包括授权用户都不能进行上传操作(需要写入权限)。
  目录权限可以在FTP站点和虚拟目录两个层次进行设置。在IIS管理MMC界面的管理控制树中右击FTP站点或虚拟目录图标,选择【属性】,

打开站点属性表单或虚拟目录属性表单,选择【主目录】或【虚拟目录】选项卡。只需选择【读取】、【写入】复选框即可指定站点或虚拟目录的目录访问权限。如右图,就是在虚拟目录属性表单中配置目录权限的情况。
目录权限与NTFS权限并无关 系,但二者共同作用于FTP站点访问者。一般的,在NTFS分区上的站点目录被设置的NTFS权限如果与我们这里设置的目录权限发生冲突,二者中限制较大 (权限较小)的权限将实际发生作用。这种配置有利于站点的安全性,两重的权限保护在某种程度上避免了管理员的疏忽。所以,应当尽量的将站点目录(包括虚拟 目录)存储在NTFS分区中。
  完成目录权限指定后,单击【应用】使之生效,如果此时系统提示修改过的权限设置与当前对象的子站点(子目录或虚拟目录)存在权限冲突,如右图,则说明 子站点权限与当前权限有不一致的情况。这时,应在图中的【子站点】列表栏中指定继承当前许可设置的子站点/子目录对象。或者单击【全选】使当前权限能够覆 盖全部子对象当权限。单

击【确定】返回。如果不选择站点或单击【取消】,都会导致只有当前对象直接包含的文件才被修改了权限。最后单击【确定】结束目录权限的设置。
匿名访问控制
  匿名访问是FTP服务的一大特点,虽然在WWW服务中也有匿名访问的限制,但是匿名访问对于一个FTP站点来说在安全性和内容方面具有特殊的用途。
  由于FTP是一个简单的,在Internet产生初期就存在的服务,一个FTP站点除了用户账号之外没有其他的用户安全验证服务(ISAPI过滤器、数字证书等方法对于FTP是无效的)。所以有必要合理的设置FTP安全账号。
  在IIS管理器的MMC界面中,右击管理控制树中的FTP站点节点,从弹出菜单中选择【属性】,打开站点属性表单,选择【安全账号】选项卡,如右图所示,这里是配置匿名访问的主要界面。
  在【安全账号】选项卡中选中【允许匿名访问】复选框,使当前站点同时允许匿名和授权用户连接。

IIS默认的匿名访问用户账号是IUSR_computername,其中computername是 IIS所在服务器的计算机名。我们也可以更改这一账号,在【安全账号】选项卡中单击【用户名】栏右侧的【浏览】。在如右上图所示的【选择用户对话框】中指定匿名用户账号,单击【确定】即可。
  通常情况下,虽然匿名访问用户账号由Windows 2000进行验证和安全性维护,但是账号的密码是由IIS进行控制的,取消选择【允许IIS控制密码】复选框可以自行指定用户密码。
    FTP站点的用户访问控制可以分为三种情况:仅有授权访问、仅有匿名访问、匿名访问与授权访问混合使用。仅使用匿名访问方式的好处是强化系统的安全性。这 种方式拒绝任何非匿名的登录请求,也就不可能允许具有管理员权限的用户(可能是黑客)通过Internet登录站点,从而保证服务器不被入侵。在FTP站 点属性表单的【主目录】选项卡中选择【只允许匿名连接】复选框进行此设置。如果清除此复选框,IIS会给出如右下图所示的警告对话框。

对于授权用户,可以在图形界面 或基于目录提示行的FTP客户端软件中直接指定登录账号和密码(匿名账号为anonymous,密码为空),以做登录验证之用。左图是在IE浏览器中登录 FTP站点的对话框。缺省时,在IE中打开FTP站点都是以匿名身份进入的,需要改变用户身份时,单击IE浏览器的【文件】菜单,选择【登录】,如右图所 示,输入账号和密码,单击【登录】以授权用户身份进入站点。通常只有授权用户才有上传权限。

IP地址访问控制
  IP地址限制是FTP站点通常使用的安全限制方式之一,由于对于FTP这种较老的服务并无过多的安全技术可供选择,所以用好现有的安全限制(如IP地址限制)是非常必要的。
  FTP站点的目录安全性可以以两种方式限制特殊IP地址的访问:授权访问和拒绝访问,两种方式不能同时使用。授权访问方式允许缺省用户访问站点,但可 以指定不能访问站点的例外地址;拒绝访问方式缺省限制所有地址对站点的访问,但可以指定不受限制的例外地址。两种方式中后者的安全性要高些,但限制也较 大,通常用于内部FTP站点(不对组织外的用户提供服务);前者则广泛用于公共的下载站点,根据经验或者日志文件的攻击纪录将曾经尝试攻击的用户IP地址 加入例外地址列表即可加强站点的安全性。
    指定IP地址限制的方法如下:
  1.在FTP站点属性表单中单击【安全目录】选项卡。
  2.如右上图,选择限制方式为【授权访问】或【拒绝访问】。
  3.单击【例外】列表右侧的【添加】,打开例外地址对话框。
  4.如右下图所示,选择限制类型为【单

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蜡台

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值