FTP

FTP:file transfer protocol(文件传输协议)
1、FTP用户类型:
  • 匿名用户:anonymous或FTP
  • 本地账户:账号名称、密码等信息保存在passwd/shadow文件中
  • 虚拟用户:使用独立的账号/密码数据文件
2、FTP有两种工作模式:

FTP是仅基于TCP的服务,而且要用到两个TCP连接,一个连接控制链路,用来在客户端和服务器之间传递命令;另外一个是数据链路,用来上传或者下载数据的。

主动模式和被动模式。

主动模式:服务端从20端口主动向客户端发起连接。 控制端口:21 数据传输端口: 20

被动模式:服务器端在指定范围内的某个端口被动等待客户端连接。控制端口:21 数据传输端口:随机

FTP

主动方式连接过程:

客户端从任意一个 > 1024(N)的端口向FTP服务器的(21)端口发送请求,服务器接受连接,建立一条命令链路。

当需要传输数据时,客户端开始监听N+1端口,并在命令链路上用port命令发送N+1的端口到FTP服务器,于是服务器会从自己的数据端口(20)向客户端的N+1端口发送连接请求,建立一条数据链路来传送数据。

被动方式连接过程:

客户端从任意一个 > 1024(N)的端口向FTP服务器的(21)端口发送请求,服务器接受连接,建立一条命令链路。

当需要传输数据时,客户端在命令链路上使用PASV命令发送,于是服务器会开启一个非特权端口 > 1024(P),并在命令链路上把端口发送给客户端,然后客户端从自己的数据端口(N+1)向服务器的数据端口 P> 1024发送连接请求,建立一条数据链路来传送数据。

主动和被动FTP优缺点:

主动FTP对FTP服务器的管理有关,但对客户端的管理不利。因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙阻塞掉。被动FTP对FTP客户端的管理有利,但对服务器端的管理不利,因为客户端要与服务器端建立两个连接,其中一个连到FTP服务器一个高位随机端口,而这个端口很可能被服务器端的防火墙阻塞掉

3、FTP的传输模式:

FTP有两种传输方式:基于文本的传输方式和基于二进制的传输方式。

文本模式:ASCⅡ模式,以文本序列传输数据

二进制模式:以二进制序列传输数据

4、常见的FTP服务器程序

IIS、Serv-U

wu-ftpd,Proftpd

vsftpd(very Secure FTP Daemon)

5、Vsftpd的基本介绍

由于FTP的文件传输是明文传输,具有一定的危险性,所以就诞生了一种更加安全的传输方式vsftpd

vsftpd是一个基于GPL发布的FTP服务器软件,安全性高,是RedHat Linux默认的FTP服务终端软件,也是Linux服务器首选产品。

1、vsftpd的特点
  • 一般以普通用户运行,降低进程权限,提高安全性
  • 高权限指令需要上层程序许可
  • 整合了所有FTP命令
  • 用户chroot功能,限制用户只能访问自己的家目录
  • 是RHEL默认的FTP服务器软件
  • 不再依赖xinetd服务
  • 可同时容许匿名与本地用户访问,还支持虚拟用户
2、vsftpd配置文件介绍
  • vsftpd的可执行文件(主程序):/usr/sbin/vsftpd
  • vsftpd启动脚本:/etc/rc.d/init.d/vsftpd
  • vsftpd主配置文件:/etc/vsftpd/vsftpd.conf
  • vsftpd的PAM认证文件:/etc/pam.d/vsftpd
  • 禁止使用vsftpd的用户列表文件:/etc/vsftpd/ftpusers
  • 禁止或允许使用vsftpd的用户列表文件:/etc/vsftpd/user_list
  • 匿名用户主目录:/vat/ftp

开启匿名模式时匿名用户访问FTP服务时访问的目录是/var/ftp/pub

开始本地用户时,访问ftp服务时访问的目录是在文件管理器中登陆的ftp本地用户的家目录