详解 ➾【FTP服务工作原理及连接模式】
- 🔻 前言
- 🔻 一、FTP服务简介
- 🚥 1.1 FTP工作原理
- 🚥 1.2 匿名用户访问的产生
- 🚥 1.3 FTP服务的连接模式
- 🚥 1.4 几种流行的FTP服务器软件
- 🔻 总结—温故知新
🔻 前言
随着网络技术的发展,以HTTP 协议为基础的 www 服务已不能满足文件传输的需要,因此FTP 服务(File Transfer Protocol,文件传输服务)随之产生。FTP 服务是一种专门用于文件传输的服务,该服务使用的是文件传输协议,使用该服务将极大地方便文件的传输与管理。
🔻 一、FTP服务简介
FTP 最主要的功能是在服务器端与客户端之间进行文件的传输。FTP 是以TCP 封包的模式来进行服务器与客户端之间的连接的,当连接建立后,用户便可以在客户端连接 FTP 服务器来进行文件的上传与下载,同时也可以直接管理用户在 FTP服务器上的文件。
🚥 1.1 FTP工作原理
FTP是基于客户端/服务器模式的,其工作原理(分为4部分)如下:
发出连接请求
首先,客户端向服务器发出连接请求,同时客户端系统动态打开一个大于1024 的端口(比如1031)等候服务器连接。
建立FTP会话连接
当FTP服务器在端口21侦听到该请求后,会在客户端1031端口和服务器的21端口之间建立起一个FTP会话连接。
数据传输
当需要传输数据时,FTP客户端再动态打开一个大于1024的端口(比如1032)连接到服务器的20端口,并在这两个端口之间进行数据的传输。
自动释放动态分配的端口
数据传输完毕后,FTP 客户端将断开与 FTP 服务器的连接,客户端上动态分配的端口将自动释放掉。
🚥 1.2 匿名用户访问的产生
要使用 FTP 服务来实现文件的传输,首先需要登录到服务器,然后才能实现该操作。但这对于很多公开提供软件下载的服务器来说非常不方便。
为了解决该问题,匿名用户访问随之产生。匿名用户是通过使用公用的用户名 Anonymous,密码不限的管理策略(密码一般是用户的邮箱),让任何用户都可以方便地从这些服务器上下载相关资源。
注意:
匿名文件传输使用户以匿名身份与远程主机建立起连接,并被允许从远程主机上复制文件。匿名 FTP一直是 Intermet 上信息资源获取的最主要方式,人们只要知道特定信息资源的主机地址,就可以用匿名 FTP 登录并获取所需信息资料。
🚥 1.3 FTP服务的连接模式
FTP支持主动模式(ActiveFTP)
和被动模式(PassiveFTP)
两种。
主动模式
首先,FTP客户端随机开启一个大于1024的端口N(1025),并和服务器的21号端口建立连接,然后开放N+1号端口(1026)进行监听,同时向服务器发出PORT1026命令(PORT命令包括客户端用什么端口接收数据)。
服务器端在传送数据的时候,通过自己的 TCP 20端口发送数据,因此FTP 必须和客户端建立一个新的连接用于数据传输。
被动模式
在被动模式下建立控制通道类似于在主动模式下建立通道的操作:
FTP客户端随机开启一个大于1024的端口N(1025)向服务器的21号端口发起连接,同时会开启N+1号端口(1026),然后向服务器发送 PASV 命令,通知服务器处于被动模式。
服务器收到命令后,开放一个大于1024的端口P(1521)进行监听,然后用PORTP命通知客户端,自己的数据端口是1521。客户端收到命令后,通过1026号端口连接服务器的端口1521,然后在两个端口之间进行数据传输。
主动模式&被动模式对比
1、主动模式的 FTP是
服务器主动连接客户端的数据端口
。
2、被动模式的 FTP 是服务器被动地等待客户端连接自己的数据端口
。
3、多数防火墙都不允许接受外部发起的连接,所以 FTP 的主动模式通过防火墙通常都会受到限制。
4、FTP 的被动模式通常用于防火墙后的 FTP 客户访问外界FTP 服务器。因此,如果有防火墙,最好是采用被动模式,但是如果对安全的需求很高,还是建议采用主动模式较好
。
🚥 1.4 几种流行的FTP服务器软件
常用的FTP服务器软件有 Wu-ftpd、Proftpd、VsFTPd及PureFTPd等。
1、Wu-ftpd
Wu-ftpd 曾经是 Internet 最流行的FTP守护程序,也是最早的FTP 服务器软件之一,拥有强大的功能。
Wu-ftpd的主要特点:
1、支持虚拟FTP主机(VirtualFTPServer)。
2、能够控制不同网域的用户对于FTP服务器的存取权限和访问时段。
3、能够记录文档上传和下载的全过程并且可以限制最高访问人数。
4、使用者在下载文档时,能够自动对其进行压缩和解压工作。
5、能够暂时关闭FTP服务器,以便系统维护。
6、能够支持匿名FTP服务,但需要加载anonftp软件包。
2、Proftpd
Proftpd 具有安全、容易配置、速度快的特点,并且很少出现缓冲溢出的错误现象。
Proftpd的主要特点:
1、可设定多个虚拟FTP服务器,匿名FTP服务的实现十分容易。
2、单配置文档,容易设定配置。
3、基于单个目录的.ftpaccess 配置文档,类似于Apache的htaccess 文档能够配置为从inetd 启动,或是单独FTP服务器两种运行方式。
4、匿名FTP的根目录无需任何特别的目录结构,或系统程式或其他系统文档以非root身份运行且不执行任何外部程式,从而减少了安全隐患。
5、能够根据文档属主情况或UNIX的访问控制风格来隐藏文档或目录。
6、支持Shadow密码,包括支持密码过期机制。
7、强大的Log功能,支持utmp/wtmp及Wu-ftpd 格式的记录标准,并支持扩展功能的日志记录。
3、VSFTPd
vsFTPd 即Very SecureFTPd 的缩写形式,是Red Hat Enterprise Linux 内置的FTP服务器软件,支持很多其他FTP服务器不支持的功能。
VSFTPd的特点:
1、具有非常高的安全特性;
2、同时支持带宽限制IPv6 协议、分配虚拟 IP 地址、创建虚拟用户等功能。
3、其良好的可伸缩性和中等偏上的性能获得了广大用户的广泛欢迎。
4、PureFTPd
PureFTPd是内置在SuSE、Debian 中的FTP服务器软件,但 Red Hat Enterprise Linux中没有包含它的软件包,需手动加载。
5、Serv-U
Serv-U是Windows系统下最常用的的FTP 服务器。用户可以将任何一台 PC机设置成一台FTP服务器。用户或其他使用者就能够使用FTP 协议,通过在同一网络上的任何一台PC机与 FTP 服务器连接,进行文件或目录的复制、移动、创建和删除等。
Serv-U的特点:
1、支持实时的多用户连接,支持匿名用户的访问:通过限制同一时间允许的最大的用户访问量来确保PC机的正常运转。
2、安全性能出众。在目录和文件层次都可以设置安全防范措施。为不同用户提供不同设置,支持分组管理数量众多的用户,甚至可以基于IP 对用户授予访问权限。
3、能够设置上传和下载的比率、硬盘空间配额、网络使用带宽等,从而有效分配资源还可作为系统服务在后台运行。
4、支持文件上传和下载过程中的断点续传:支持拥有多个IP地址的多宿主站点可设置在用户登录或退出时的显示信息,支持具有UNIX 风格的外部链接。
上面列出的只是 Serv-U众多功能中的一部分,Serv-U 不仅功能强大,也提供了易于使用的操作界面,是Windows下使用最方便的FTP服务器软件。
🔻 总结—温故知新
🟢 该章详细介绍了FTP服务工作原理(发出连接请求、建立FTP会话连接、数据传输、自动释放动态分配的端口)及连接模式(主动模式&被动模式)。