FTP 服务器设计与实现毕业论文.doc
本科生毕业论文(设计)表题目 FTP 服务器设计与实现 信息技术 系(院) 07 级 信息科学技术 专业姓 名 指导老师 2008年6月28 日FTP 服务器设计与实现 摘 要 在网络应用中,最广泛的当属WWW和FTP这两种。FTP就是File Transport Protocol文件传输协议的缩写,FTP服务器能够在网络上提供文件传输服务。FTP服务器根据服务对象的不同可分为匿名服务器(Anonymous Ftp Server)和系统FTP服务器。前者是任何人都可以使用,后者就只能是在FTP服务器上有合法账号的人才能使用。关键字 FTP、端口、服务器、IISAbstract Type in the translation as in the network application, the most extensive critical to WWW and FTP two. FTP is the File Transport Protocol, File Transfer Protocol, indicating FTP devices on the network to provide file transfer service which Under the FTP clients can be divided into different anonymous server (Anonymous Ftp Serv services er) and the system FTP server. The former is anyone can use, which will be only the FTP on account of the legitimate use. ServiceKeywords FTP, port, server, IIS第一章 FTP服务简介FTP的全称是File Transfer Protocol(文件传输协议)。顾名思义,就是专门用来传输文件的协议。是和HTTP协议一样工作在TCP/IP的应用层。HTTP协议是提供WEB访问的协议,而FTP协议是专门用于文件上传和下载的协议。而FTP服务器,则是在互联网上提供存储空间的计算机,它们依照FTP协议提供服务。当它们运行时,用户就可以连接到服务器上下载文件,也可以将自己的文件上传到FTP服务器中。因此,FTP的存在,大大方便了网友之间远程交换文件资料的需要,充分体现了互联网资源共享的精神。现在许多朋友都已经用上了宽带网,而且硬盘也有足够的空间,完全可以通过软件手段把自己的电脑变为一台FTP服务器,和网络中的朋友们一起分享大家各自收藏的好东西!1.1FTP的功能FTP包括文件的上传和文件的下载两种功能。文件的上传功能是FTP的特色,客户机可以将任意类型的文件上传到指定的FTP服务器上。文件下载就是将远程服务器上提供的文件下载到本地计算机上。HTTP的WEB访问也提供文件的下载功能,这两者有什么区别呢?使用的简便程度:HTTP比FTP简单,一般的用户都知道如何用HTTP访问WEB站点,只要点击相关的站点就可以下载,而有的用户是不知道如何用FTP的。使用的原理:采用HTTP协议下载,如果不使用专门的断点续传软件(如网络蚂蚁等),只要连接突然中断,下次下载还得重头开始。而目前的FTP客户机软件都支持断点续传功能,可以中断后,从中断处继续下载。这样能够节约用户的时间和金钱。传输的速率:由于HTTP协议不是用于专门的文件传输,因此速度较慢,而FTP协议是专门用于文件传输的协议。因此速度较快。1.2.FTP的工作原理一个完整的FTP网络由FTP服务器和FTP客户机组成。FTP协议的低层通信协议是TCP/IP,客户机和服务器必须打开一个TCP/IP端口用于进行FTP客户机发送请求和FTP服务器回应请求。FTP服务器默认的两个端口21和20。端口21用于监听FTP客户机的连接请求,在整个会话期间,该断口必须一直打开。断口20用于文件传输,只在传输过程中打开,传输完毕后关闭。FTP客户机使用102465535之间的动态的端口将由客户机的FTP软件自动分配。1.3.FTP的访问方式FTP客户机要访问服务器有两种方式。匿名方式:使用”anonymous”,作为用户名,以任意的电子邮件地址作为口令访问FTP服务器(也称为FTP站点)。目前在Internet上有大量匿名FTP站点提供免费软件下载服务。用户方式:某些FTP站点限定了使用FTP服务的用户,因此用户需要按照提供的用户名和密码登陆FTP站点,才能获得某些服务。1.4FTP的两种工作方式FTP是一种文件传输协议,它支持两种模式,一种方式叫做Standard (也就是 Active,主动方式),一种是 Passive (也就是PASV,被动方式)。 Standard模式 FTP的客户端发送 PORT 命令到FTPserver。Passive模式FTP的客户端发送 PASV命令到 FTP Server。下面介绍一个这两种方式的工作原理: Standard模式FTP 客户端首先和FTP Server的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。 Passive模式在建立控制通道的时候和Standard模式类似,当客户端通过这个通道发送PASV 命令的时候,FTP server打开一个位于1024和5000之间的随机端口并且通知客户端在这个端口上传送数据的请求,然后FTP server 将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。 现在的FTP软件里面包括在IE5以上的版本里面也已经支持这两种模式了。一般一些FTP客户端的软件就比较好设置了,一般都有一个PASV的选项,比如CuteFTP,传输的方式都有Standard和PASV的选项,可以自己进行选择;另外在IE里面如果要设置成PASV模式的话可以选中工具Internet选项高级为FTP站点启用文件夹视图,否则就采用Standard模式。 很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以FTP的Standard模式在许多时候在内部网络的机器通过防火墙出去的时候受到了限制,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。当然也可以设置成功,首先要创建一条规则就是允许内部的IP连接外部的IP的21端口;第二条就是禁止外部IP的TCP 20端口连接内部IP的<1024的端口,这条是为了防止外部连接内部的常规端口;第三条验证ACK是否等于1,这个的原理就参见TCP建立连接的三次握手吧。所以如果安全的配置的话非常困难,这个时候就想起来了PASV模式,因为不用建立新的连接,所以也就不会涉及到后面的问题了。但是管理员可能不想使用PASV模式,因为这个时候FTP Server会开放一个随机的高端口,尽管在IIS4和IIS5里面端口的范围是10245000,但是许多FTP Server的端口范围达到了102465535,这个时候在这个主动开放的随机端口上是有完全的访问权限的。 第二章 FTP服务器架设架设一台服务器其实很简单。首先,要保证你的机器能上网,而且有不低于SL 的网络速度。其次,硬件性能要能满足你的需要。最后,需要安装服务器端的软件,这类软件很多,可以使用微软的( 因特网信息服务系统),也可以使用专业软件。不同的软件提供的功能不同,适应的需求和操作系统也不同。一般来说,系统最低要求如下: : 以上 内存: 以上 带宽: 以上 至于操作系统, 均可,如果对服务器的性能和安全性要求很低,可以采用 和 。本文中,如无特殊说明,均以 专业版为操作系统,其余操作系统下服务器的架设及设置大同小异。2.1、IIS架设FTP服务器如果只是想建个小型的同时在线用户数不超过个的服务器,且不会同时进行大流量的数据传输,可以用作为服务器软件来架设(只适用于 操作系统)。安装 默认安装时不安装组件,需要手工添加安祝进入控制面板,找到“添加删除程序”,打开后选择“添加删除组件”,在弹出的“组件向导”窗口中,将“信息服务()”项选中。在该选项前的”背景色是灰色的,这是因为默认并不安装服务组件。再点击右下角的“详细信息”,在弹出的“信息服务()”窗口中,找到“文件传输协议()服务”,选中后确定即可。安装完后需要重启。 和 的安装方法相同。 设置 电脑重启后,服务器就开始运行了,但还要进行一些设置。点击“开始所有程序管理工具信息服务”,进入“信息服务”窗口后,找到“默认站点”,右击鼠标,在弹出的右键菜单中选择“属性。在“属性”中,我们可以设置服务器的名称、端口、访问账户、目录位置、用户进入时接收到的消息等。.站点基本信息 进入“站点”选项卡,其中的“描述”选项为该站点的名称,用来称呼你的服务器,可以随意填,比如“小站”;“地址”为服务器的,系统默认为“全部未分配”,一般不须改动,但如果在下拉列表框中有两个或两个以上的地址时,最好指定为公网;“端口”一般仍设为默认的端口;“连接”选项用来设置允许同时连接服务器的用户最大连接数;“连接超时用来设置一个等待时间,如果连接到服务器的用户在线的时间超过等待时间而没有任何操作,服务器就会自动断开与该用户的连接。.设置账户及其权限很多站点都要求用户输入用户名和密码才能登录,这个用户名和密码就叫账户。不同用户可使用相同的账户访问站点,同一个站点可设置多个账户,每个账户可拥有不同的权限,如有的可以上传和下载,而有的则只允许下载。.安全设定 进入“安全账户”选项卡,有“允许匿名连接”和“仅允许匿名连接”两项,默认为“允许匿名连接”,此时服务器提供匿名登录。“仅允许匿名连接”是用来防止用户使用有管理权限的账户进行访问,选中后,即使是(管理员)账号也不能登录,只能通过服务器进行“本地访问”来管理。至于“站点操作员选项,是用来添加或删除本服务器具有一定权限的账户。与其他专业的服务器软件不同,它基于用户账号进行账户管理,本身并不能随意设定服务器允许访问的账户,要添加或删除允许访问的账户,必须先在操作系统自带的“管理工具”中的“计算机管理”中去设置用户账号,然后再通过“安全账户”选项卡中的“站点操作员选项添加或删除。但对于和专业版,系统并不提供“站点操作员账户添加与删除功能,只提供一个管理账号。提示:匿名登录一般不要求用户输入用户名和密码即可登录成功,若需要,可用“”作为用户名,以任意电子邮件地址为密码来登录。.设置用户登录目录最后设置主目录(即用户登录后的初始位置),进入“主目录”选项卡,在“本地路径”中选择好站点的根目录,并设置该目录的读取、写入、目录访问权限。“目录列表样式”中“”和“”的区别在于:假设将设为站点根目录,则当用户登录后,前者会使主目录显示为“”,后者显示为“。设置完成后,服务器就算真正建成了。如果前面地址为,则用户使用客户端软件(用来登录服务器的上传下载软件,如、等,如无特别说明,本文中所称客户端软件均以 为例)时,主机处填,端口填,此服务器的地址表述为:虽然安装简单,设置较简便,但功能不强,管理也很麻烦,尤其是连新建一个基本的授权访问账户都要进行繁杂的设置,而且本身的安全性也比较差,容易受到诸如“红色代码”等专门针对漏洞进行攻击的病毒侵袭,因而很多人都喜欢使用第三方的服务器软件来架设。2.2、用等第三方服务器软件架设除外,还有很多服务器软件可以架设,如、等,但大部分只适用于、系统,如果使用系统,强烈推荐使用。是一种被广泛运用的服务器端软件,支持等全系列。它安装简单,功能强大,可以用同一个设定多个服务器、限定登录用户的权限、登录主目录及空间大小、支持远程登录管理等,适合绝大部分个人自建的需要。1.安装的安装比还简单。先执行英文原版安装文件,按提示一路“”即可。要注意的是,在选择安装目录时,最好选择安装在一个非系统盘里,以免将来系统发生异常时还要重新进行账号等的设置。然后执行汉化文件,选择原版安装目录,一路“下一步”即可完成安祝设置 与不同,在第一次运行时会以向导的方式一步一步地提示用户进行设置,整个过程不超过五分钟,非常人性化。为了方便说明,先假设我们要架设一个固定为,端口为,根目录绝对路径为,允许匿名访问和拥有一个用户名为、密码为、管理账户名叫“”的公网服务器。运行,弹出向导窗口,依次设置如下选项: )“您的地址”:这里我们填入,如果你是等方式拨号上网,拥有的是动态或者不知道本机,此处请留空。 )“域名”:就是该站点的名称,可以随意取名,这里填入“。 )“匿名账号”:决定该站点是否允许匿名用户访问。选择“是。 )“匿名主目录”:设置匿名用户登录站点后所处的目录位置。输入“。 )“锁定于主目录”:假设在“匿名主目录”中设置匿名用户登录后所处的目录位置为“”,那么,选择“是”后,当匿名用户登录后,就被锁定在目录下,只能查看目录里的内容,不能进入上级目录“”,同时该目录在客户端软件中显示为“”,如果未被锁定,则会完整显示为“。这里选择“是。 )“命名的账号”:决定是否要创建有一定管理权限的账户。这里选“是。 )“账号名称”:就是具有一定管理权限的账户登录名称。填入“。 )“账号密码”:设置账户的登录密码。输入“。 )“主目录”:与“匿名主目录”一样,用来设置管理账户登录后所处的目录位置。输入“。 )“锁定于主目录”:选择“是。 )“管理员权限”:用来设置管理账户的管理权限级别。这里选“无权限”,后面再详述。设置完成,地址为:的服务器就算架设成功了。最后可用分别以匿名和的账户登录验证。 提示:以上这些设置并非最终设定,你还可以在主界面中随时修改。用同一个架设多个服务器 如果带宽允许的话,你还可利用同一个轻松架设多个服务器。在中,将“本地服务器”下“域”中的每个服务器称为“域”,刚才创建的“”服务器就是一个名叫“”的域。要架设多个服务器,实际上就是创建多个拥有不同端口的域而已。右击“域”,选“新建域”,在弹出的向导中参照“”进行设置,只是在端口处一定不要与已经创建的“域”的端口或被其他系统服务占用的端口冲突即可。如果填入,则此服务器的地址就是:。依此而为,就可以架设多个服务器了。2.3、用动态域名解析软件架设拥有固定域名的服务器在上面的介绍中,我们假设的是该服务器拥有的固定,而事实上,大部分想架设个人的用户通常都是用等方式拨号上网。由于每次拨号上网后被分配到的地址都不相同,那这是否就意味着不能架设服务器呢?有两个解决办法:一是在刚才向导中的“您的地址”中留空,然后完成其它向导设置。进入主界面,先点击菜单栏上的“帮助本机地址”,将本机地址复制,再通过其他途径告知每个用户。每拨号上网一次就重复此操作一次;二是到网上下载安装一个动态域名解析软件,如国外的、国内的花生壳、等,此类软件不管本机的如何变化都能将一个固定域名自动解析到本机上。这样,用户只要输入这个固定域名作地址就可以访问到你的服务器。很明显,第一种方法相当麻烦,需要你有极大的耐心,第二种就相当简便,用户只要记住此域名而不用管是否变化。 第三章 客户端连接FTP的方法1.用IE浏览器连接打开IE浏览器,在地址栏输入FTP服务器的IP地址在enter回车.这样就我们客户端就可以直接的访问我们的FTP服务器了.如:FTP:/IP或主机名2.用客户端软件连接利用FTP服务器的客户端软件进行连接-flash xp、cuteftp第四章 Windows下FTP服务器安全管理架设FTP服务器,一向是把安全放在首位,特别是利用IIS之类工具建立起来的FTP服务器更是如此。如果设置不当遭受到恶意攻击,那造成整个服务器系统崩溃也绝不是危言耸听的! 因此,采取合理、周全的安全管理是很有必要的。我们就从IIS的安全说起。IIS,从NT系统内核开始成为自带的重要信息发布载体,但其不可避免的漏洞也在不少的资料里提及。IIS用作FTP服务器架设,主要是其简单易懂的设置赢得不少人青睐;因此,要用好IIS,我们得从下面这些方面来考虑其安全问题:1 安装系统补丁。微软网站经常在其官方网发布最新的系统安全补丁,大家可以用系统自带的windows update程序随时更新。2 FTP目录的设定。比较常见的就是将主目录指定到逻辑盘,再对每个细目录按不同的用户设置不同的访问权限,并关闭一些不需要的服务,这可以对不良人士利用IIS溢出漏洞访问到系统盘作个第一级防护。3 尽量不要使用21这个默认端口号,并启用日志,以便FTP服务出现异常时检查。另一款FTP架设软件Serv_U。软件界面如下图所示。感觉此款软件在安全性方面做得比较好,其设置也不易出错,笔者用过一段时间感觉其速度也比IIS要快得多。即使这样,同样也应注意其正确的配置:1) 有关域中服务器密码设定。Serv_U提供了三种安全密码类型:规则密码、OTPS/KEY MD4和OTPS/KEY MD5,不言而喻,规则密码的安全性是最低的。一般我们设置好了有管理权限的账户后,再在“常规”选项卡下打开“密码类型”下拉框,从中选择后两种类型相对要安全得多。2) 选中“拦截FTP_bounce攻击和FXP”。FXP也称跨服务器攻击,简单的说:当恶意用户通过在PORT命令中加入特定的地址信息,会使FTP服务器与其它非客户端的机器建立连接,而如果FTP服务器有权访问那些非客户端的电脑时,那就可以通过FTP服务器这个“中介机构”,实现与目标服务器的连接!3) 跟IIS一样,最好也将主目录移到其它分区,同时在为用户设置权限时最好先设低点,等需要时再设定写入、修改等权限;并将服务日志以文件形式保存,以便日后查阅。说了架设软件,再来说操作系统本身。考虑到FTP服务器的安全性,所以最好是采用Win2000服务器版、winxp或是Windows2003企业版,并注意随时下载安全补丁升级。1 可以用系统自带的“Internet连接防火墙”功能进行安全设置。打开“本地连接”属性对话框,进入“高级”选项卡,将“通过限制或阻止来自Internet的对此计算机的访问来保护我的计算机和网络”打勾;然后点右下角的“设置”按钮进入“高级设置”,选中“FTP服务器”再点编辑,如图所示,除了IP地址一栏外,其余选项都不能更改。如果你预先设置的FTP服务器端口不是其默认的21,请返回上一步在“服务”选项卡下方点“添加”,输入服务器名称和IP地址,并将外部内部端口号填入你的预设值即可。2“TCP/IP筛选”功能。依次进入“本地连接”-“常规”-“Internet协议(TCP/IP)”,然后双击打开,再点“高级”按钮,切换到“选项”即可开始设置。如下图所示,这里我们可以设置系统只允许开放的端口,这种筛选设置可以有效防止最常见的如端口的入侵,但该方法缺点同样明显:功能过于简单,只能设置允许开放的端口,不能自定义要关闭的端口,如需开放多个端口还要一一手工添加,比较麻烦。服务器安全是个永远也说不完的话题,关键还是要大家在实际管理中多多总结经验,不断累积。通过以上的基本管理设置后,你的FTP应该具备了一定的安全保障,可以放心的投入使用了! 主要参考文献:1张公忠,现代网络技术教程,电子工业出版社,2004年1月2 吴功宜等,计算机网络应用技术教程,清华大学出版社,2002年4月3吴企渊等,计算机网络,清华大学出版社,2004年1月4 张基温,信息网络技术原理,电子工业出版社,2002年8月7