FTP服务
一、FTP服务
1.1FTP服务概述
-
文件传送协议(File Transfer Protocol)是互联网上使用的最广泛的文件传输协议,用于Internet上的控制文件的双向传输。
-
FTP提供交互式的访问,允许客户指明文件类型与格式,并允许文件具有存取权限。
-
FTP屏蔽了各计算机系统的细节,因而适合于在异构网络中计算机之间传送文件。
1.2FTP服务的特点
-
文件传送协议FTP只提供文件传送的一些基本的服务,它使用TCP可靠的运输方式。
-
FTP的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。
-
FTP使用客户服务器方式。一个FTP服务器进程可同时为多个客户进程提提供服务,FTP的服务器进程由二大部分组成:一个是主进程,负责接受新的请求;另外有诺干个从属进程,负责处理单个请求。
1.3FTP服务工作过程
- FTP有两种工作模式,一种方式叫做Standard (也就是Active, 主动方式),一种是Passive(也就是PASV,被动方式)
主动模式 - FTP客户端首先和FTP Server 的TCP21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口发送数据。FTP server必须和客户端建立一个新的连接用来传送数据。
被动模式 - 在建立控制通道的时候和Standard模式类似,当客户端通过这个通道发送PASV命令的时候,FTP server打开一个位于1024和5000之间的随机高位端口并且通知客户端在这个端口上传送数据的请求,然后FTP server将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。
- 20端口用于建立数据连接,并传输文件数据
21端口用于建立控制连接,并传输FTP控制命令
1.客户端向服务器发出连接请求,同时客户端会打开一个大于1024的端口等候服务器连接(例如:1030端口)。
2.当FTP服务器在端口21侦听到该请求,则会在客户端1030端口和服务器的21端口之间建立起一个FTP会话连接。
3.当客户端有数据传输请求时,FTP客户端在动态打开一个大于1024的端口(例如:1031),与FTP服务器的20端口连接,建立数据传输通道
4.当数据传输完成后,数据传输通道自动断开,两个端口自动关闭。
(5)FTP客户端断开与FTP服务器的连接时,客户端上动态分配的端口自动释放。
注意:FTP的会话通道的建立,以及传输通道的建立,都是建立在tcp三次握手的应答基础上的。
二、设置FTP服务
2.1实验一:设置匿名用户访问FTP服务(最大权限)
(1)下载FTP服务,关闭防火墙
ystemctl stop firewalld
setenforce 0
yum -y install vsftpd
(2)备份FTP配置文件
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
(2) 修改配置文件vim /etc/vsftpd/vsftpd.conf.bak
(3)设置上传数据目录的最大权限
匿名用户默认在/var/ftp/pub/上传数据,这里给他切换到ddd目录,给他所有权限
(4)开启ftp服务
(5)匿名访问测试一
在服务端写入数据,客户端查看下载数据(也许要关闭防火墙)
2.2实验二:设置本地用户验证访问ftp,并禁止切换到ftp以外的目录(默认登录的根目录为本地用户的家目录)
(1)修改配置文件vim /etc/vsftpd/vsftpd.conf
(2)重启服务
systemctl restart vsftpd
(3)切换成本地用户,上传数据下载数据
2.3实验三: 启用用户列表文件,设置白名单或者黑名单
(1)修改配置用户列表文件vim /etc/vsftpd/user_list
(2)修改ftp配置文件vim /etc/vsftpd/vsftpd.conf
黑名单反过来,用户列表里面的无法登录,不在里面的可以登录
2.4实验四:修改匿名用户、本地用户登录的默认根目录
修改ftp配置文件vim /etc/vsftpd/vsftpd.conf