FTP文本传输协议

一、存储类型

存储类型分为三种:

  • 直连式存储:Direct-Attached Storage,简称DAS
  • 网络附加存储:Network-Attached Storage,简称NAS(存储和管理空间都在远程)
  • 存储区域网络:Storage Area Network,简称SAN(可以使用空间管理,也是你来管理)

三种存储架构的应用场景

  • DAS虽然比较古老了,但是还是很适用于那些数据量不大,对磁盘访问速度要求较高的中小企业
  • NAS多适用于文件服务器,用来存储非结构化数据,虽然受限于以太网的速度,但是部署灵活,成本低
  • SAN则适用于大型应用或数据库系统,缺点是成本高、较为复杂

二、FTP文件传输协议

2.1FTP工作原理

(1)文件传输协议:File Transfer Protocol 早期的三个应用级协议之一,基于C/S结构

  • 数据传输格式:二进制和文本
  • 双通道协议:命令和数据连接

(2)两种模式:从服务器角度出发

  • 主动(PORT style):服务器主动连接客户端

命令(控制):客户端:随机端口 —> 服务器:21/tcp
数据:客户端:随机端口 <—服务器:20/tcp

  • 被动(PASV style):服务器被动等待客户端连接

命令(控制):客户端:随机端口 —> 服务器:21/tcp
数据:客户端:随机端口 <— 服务器:随机端口 /tcp

(3)FTP状态服务码

1XX:信息         125:数据连接打开
2XX:成功类状态 200:命令OK              230:登录成功
3XX:补充类       331:用户名OK
4XX:客户端错误 425:不能打开数据连接
5XX:服务器错误 530:不能登录

(4)用户认证:
匿名用户:ftp,anonymous,对应Linux用户ftp
系统用户:Linux用户,用户/etc/passwd,密码/etc/shadow
虚拟用户:特定服务的专用用户,独立的用户/密码文件

(5)总结:

  • yum info vsftpd 查看信息
  • FTP(File Transfer Protocol: 文件传输协议)作用:Internet 上用来传送文件的协议。
  • VSFTP全称 (very secure FTP)
  • VSFTP模式: C/S模式
  • FTP服务器默认使用TCP协议的20、21端口与客户端进行通信
  • 20端口用于建立数据连接,并传输文件数据
  • 21端口用于建立控制连接,并传输FTP控制命令
  • FTP数据连接分为主动模式和被动模式
  • 主动模式:服务器主动发起数据连接
  • 被动模式:服务器被动等待数据连接

2.2常见FTP相关软件

FTP服务器端软件:
Wu-ftpd,Proftpd,Pureftpd,Filezilla Server,Serv-U,Wing FTP Server,IIS
vsftpd:Very Secure FTP Daemon,CentOS 默认FTP服务器,高速,稳定,下载速度是WU-FTP的两倍
ftp.redhat.com数据:单机最多可支持15000个并发(vsftpd官网: //security.appspot.com/vsftpd.html)

2.3vsftpd软件介绍

(1)配置文件位置

  • 用户认证配置文件:/etc/pam.d/vsftpd
  • 主配置文件:/etc/vsftpd/vsftpd.conf

(2)用户和其共享目录

  • 匿名用户(映射为系统用户ftp )共享文件位置:/var/ftp
  • 系统用户共享文件位置:用户家目录
  • 虚拟用户共享文件位置:为其映射的系统用户的家目录

2.4vsftpd服务常见配置

(1)匿名用户登录

vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES        #支持匿名用户,CentOS8 默认不允许匿名
no_anon_password=YES        #匿名用户略过口令检查 , 默认NO

(2)匿名用户上传

vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES        #匿名上传,注意:文件系统权限
anon_mkdir_write_enable=YES    #匿名建目录
chmod   777   /var/ftp/pub

注意:还需要开启文件系统访问的权限,不能给FTP根目录写权限,只能级子目录写权限,否则报”500 OOPS: vsftpd: refusing to run with writable root inside chroot()”,登录失败错误。

(3)Linux系统用户

local_enable=YES    #是否允许linux用户登录
write_enable=YES    #允许linux用户上传文件
local_umask=022     #指定系统用户上传文件的默认权限对应umask 

(4)传输速率(单位:字节/秒)

anon_max_rate=0    #匿名用户的最大传输速率,以字节为单位,比如:1024000表示1MB/s
local_max_rate=0    #本地用户的最大传输速率

Tags: