配色: 字号:
文件传输协议(FTP)服务器
2022-02-09 | 阅:  转:  |  分享 
  
文件传输协议(FTP)服务器

胡经国



一、FTP服务器概述

FTP服务器(FileTransferProtocolServer,文件传输协议服务器是在互联网上提供文件存储和访问服务的计算机,它们依照FTPFileTransferProtocol,文件传输协议提供服务。顾名思义,FTP就是专门用来传输文件的协议。简单地说,支持FTP协议的服务器就是FTP服务器。FTP服务器服务内容

一般来说用户联网的首要目的就是实现信息共享,文件传输是信息共享非常重要的内容之一。Internet上早期实现文件并不是一件容易的事我们知道Internet是一个非常复杂的计算机环境,有PC,有工作站,有MAC,有大型机等据统计连接在Internet上的计算机已有上千万台,而这些计算机可能运行不同的操作系统有运行Unix的服务器,也有运行Dos、Windows的PC机和运行MacOS的苹果机等等各种操作系统之间的文件交流问题,需要建立一个统一的文件传输协议,这就是所谓的FTP。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议这样用户就可以把自己的文件传送给别人,或者从其它的用户环境中获得文件。

与大多数Internet服务一样,FTP也是一个客户机服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。FTP服务器使用

1、FTP服务器

在FTP使用当中,用户经常遇到两个概念下载Download)和上传Upload)。下载文件就是从远程主机拷贝文件自己的计算机上上传文件就是将文件从自己的计算机中拷贝远程主机上。用Internet语言来说,用户可通过客户机程序向从远程主机上传下载文件。

使用FTP时必须首先登录在远程主机上获得相应的权限以后,方可上传或下载文件。也就是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当授权。换言之,除非有用户IDIdentity,身份标识号、和口令,否则便无法传送文件。匿名FTP

这种情况违背了Internet的开放性,Internet上的FTP主机何止千万,不可能要求每个用户在每一台主机上都拥有帐号。匿名FTP就是为解决这个问题而产生的。

匿名FTP是这样一种机制用户可通过它连接到远程主机上,并从其下载文件,而无需成为其注册用户。系统管理员建立了一个特殊的用户ID,名为anonymous匿名Internet上的任何人在任何地方都可使用该用户ID。

通过FTP程序连接匿名FTP主机的方式同连接普通FTP主机的方式差不多,只是在要求提供用户标识ID时必须输入anonymous该用户ID的口令可以是任意的字符串。习惯上,用自己的E-mail地址作为口令,使系统维护程序能够记录下来谁在存取这些文件。

值得注意的是,匿名FTP不适用于所有Internet主机,它只适用于那些提供了这项服务的主机。

当远程主机提供匿名FTP服务时,会指定某些目录向公众开放,允许匿名存取。系统中的其余目录则处于隐匿状态。作为一种安全措施,大多数匿名FTP主机都允许用户从其下载文件,而不允许用户向其上载文件也就是说,用户可将匿名FTP主机上的所有文件全部拷贝到自己的机器上,但不能将自己机器上的任何一个文件拷贝至匿名FTP主机上。即使有些匿名FTP主机确实允许用户上文件,用户也只能将文件上至某一指定上目录中。随后,系统管理员会去检查这些文件,他会将这些文件移至另一个公共下载目录中,供其他用户下载利用这种方式,远程主机的用户得到了保护,避免了有人上传有问题的文件,如带病毒的文件。

作为一个Internet用户,可通过FTP在任何两台Internet主机之间拷贝文件。但是,实际上大多数人只有一个Internet帐户,FTP主要用于下载公共文件,例如共享软件、各公司技术支持文件等。Internet上有成千上万台匿名FTP主机这些主机上存放着数不清的文件,供用户免费拷贝。实际上,几乎所有类型的信息,所有类型的计算机程序都可以在Internet上找到。这是Internet吸引我们的重要原因之一。

匿名FTP使用户有机会存取到世界上最大的信息库这个信息库是日积月累起来的,并且还在不断增长,永不关闭,涉及到几乎所有主题。而且,这一切是免费的。

匿名FTP是Internet网上发布软件的常用方法。Internet之所以能延续到今天,是因为人们使用通过标准协议提供标准服务的程序。像这样的程序,有许多就是通过匿名FTP发布的,任何人都可以存取它们。

Internet中的有数目巨大的匿名FTP主机以及更多的文件,那么到底怎样才能知道某一特定文件位于哪个匿名FTP主机上的那个目录中呢这正是Archie服务器所要完成的工作。Archie现代搜索引擎的祖先将自动在FTP主机中进行搜索,构造一个包含全部文件目录信息的数据库,使你可以直接找到所需文件的位置信息。FTP服务器软件Server-U

Server-U是一种被广泛运用的FTP服务器软件支持全Windows系列3x/9x/ME/NT/2K/2000/xp等。可以设定多个FTP服务器、限定登录用户的权限、登录主目录及空间大小等,功能非常完备。它具有非常完备的安全特性,支持SSFTP传输,支持在多个Serv-U和FTP客户端通过SSL加密连接保护您的数据安全等。

Serv-U是众多的FTP服务器软件之一。通过使用Serv-U,用户能够将任何一台PC设置成一个FTP服务器这样,用户或其他使用者就能够使用FTP协议,通过在同一网络上的任何一台PC与FTP服务器连接,进行文件或目录的复制移动创建和删除等。这里提到的FTP协议是专门被用来规定计算机之间进行文件传输的标准和规则正是因为有了象FTP这样的专门协议,才使得人们能够通过不同类型的计算机,使用不同类型的操作系统,对不同类型的文件进行相互传递。SSL

SSL(SecureSocketsLayer,安全套接层协议及其继任者TLS(TransportLayerSecurity传输层安全)协议,是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密,用于保障网络数据传输安全利用数据加密技术,确保数据在网络传输过程中不会被截取及窃听。SSL协议已成为全球化标准所有主要的浏览器和W服务器程序都支持SSL协议,可通过安装SSL证书激活SSL协议。

SSL?证书就是遵守?SSL协议的服务器数字证书由受信任的证书颁发机构(CA机构),验证服务器身份后颁发,部署在服务器上,具有网站身份验证和加密传输双重功能。FileZilla

FileZilla是一款经典的开源FTP解决方案,包括FileZilla客户端和FileZillaServerFileZilla服务器)。其中,FileZillaServer的功能比起商业软件FTPServ-U毫不逊色。无论是传输速度还是安全性方面,都是非常优秀的一款。VSFTP

VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件它的全称是VerySecureFTPVerySecure意思是:非常安全的)。从此名称就可以看出,编制者的初衷是代码的安全。

安全性是编写VSFTP的初衷除了这与生俱来的安全特性以外,高速与高稳定性也是VSFTP的两个重要特点。

在速度方面,使用ASCII代码模式下载数据时,VSFTP的速度是Wu-FTP的两倍如果Linux主机使用2.4.的内核,在千兆以太网上的下载速度可达86MB/S。

在稳定方面,VSFTP就更加出色VSFTP在单机非集群上支持4000个以上的并发用户同时连接根据RedHat的服务器的数据,VSFTP服务器可以支持15000个并发用户GPL

GPL(GeneralPublicLicense,通用公共许可证或通用性公开许可证在自由软件所使用的各种许可证之中,最为人们注意的通用公许可证。ASCII代码

ASCIIAmericanStandardCodeforInformationInterchange,美国标准信息交换代码是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC646。

ISO/IEC646是国际标准化组织(ISO)和国际电工委员会(IEC)制订的标准,在1972年制订。它是一个7-位元字符的字集,来自数个国家标准,最主要来自美国的ASCII(美国标准信息换代码)。RedHat

RedHat是桌面虚拟化世界领先的开源解决方案供应商,是全球最大的开源技术厂家其产品RedHatLinux也是全世界应用最广泛的Linux。使用社区驱动的方式提供可靠和高性能的云、虚拟化、存储和中间件技术。



FTP服务器

FTP是仅基于TCPTransmissionControlProtocol传输控制协议的服务器,不支持UDP。与众不同的是FTP使用2个端口一个数据端口和一个命令端口也可叫做控制端口。通常来说这两个端口是21命令端口和20数据端口。但FTP工作方式不同,数据端口并不总是20。这就是主动与被动FTP的最大不同之处。

FTP协议有两种工作:PORT和PASV,中文意思为主动和被动式。UDP

UDP(UserDatagramProtocol,用户数据报协议,是OSIOpenSystemInterconnection,开放式系统互联参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务IETFRFC768是UDP的正式规范。FTP

即Port模式客户端从一个任意的非特权端口NN>1024)连接到FTP服务器的命令端口,也就是21端口。然后客户端开始监听端口N1,并发送FTP命令portN+1”到FTP服务器。接着服务器会从它自己的数据端口20)连接到客户端指定的数据端口N+1)。

针对FTP服务器前面的防火墙来说,必须允许以下通讯才能支持主动方式FTP任何大于1024的端口到FTP服务器的21端口客户端初始化连接FTP服务器的21端口到大于1024的端口服务器响应客户端的控制端口FTP服务器的20端口到大于1024的端口服务器端初始化数据连接到客户端的数据端口大于1024端口到FTP服务器的20端口客户端发送ACK响应到服务器的数据端口FTP

为了解决服务器发起到客户的连接的问题,人们开发了一种不同的FTP连接方式。这就是所谓的被动方式PASV方式)。当客户端通知服务器它处于被动式时才启用。

在被动方式FTP中,命令连接和数据连接都由客户端发起这样就可以解决从服务器到客户端的数据端口的入方向连接被防火墙过滤掉的问题。

当开启一个FTP连接时,客户端打开两个任意的非特权本地端口N>1024和N1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交PASV命令。这样做的结果是服务器会开启一个任意的非特权端口P>1024),并发送PORTP命令给客户端。然后客户端发起从本地端口N1到服务器的端口P的连接用来传送数据。

对于服务器端的防火墙来说,必须允许下面的通讯才能支持被动方式的FTP从任何大于1024的端口到服务器的21端口客户端初始化连接服务器的21端口到任何大于1024的端口服务器响应到客户端的控制端口的连接从任何大于1024端口到服务器的大于1024端口客户端初始化数据连接到服务器指定的任意端口服务器的大于1024端口到远程的大于1024的端口服务器发送ACK响应和数据到客户端的数据端口

3、总结

在主动模式下FTP服务器的端口是21,数据端口是20所以在做静态映射的时候只需要开放21端口即可会用20端口和客户端主动发起连接。

在被动模式下FTP服务器的端口是21,数据端口是随机的,且是客户端去连接对应的数据端口所以在做静态的映射只开放21端口是不可以的。此时需要做DMZ。DMZ

DMZ(demilitarizedzone,隔离区非军事化区是为了解决安装防火墙后外部网络的访问用户不能访问内部网络服务器的问题,而设立的一个非安全系统与安全系统之间的缓冲区。该缓冲区位于企业内部网络和外部网络之间的小网络区域内。在这个小网络区域内可以放置一些必须公开的服务器设施,如企业Web服务器、FTP服务器和论坛等。另一方面,通过这样一个DMZ区域,更加有效地保护了内部网络。因为这种网络部署,比起一般的防火墙方案,对来自外网的攻击者来说又多了一道关卡。







6







献花(0)
+1
(本文系胡经国图书...原创)