FTP
FTP:file transfer protocol(文件传输协议)
1、FTP用户类型:
- 匿名用户:anonymous或FTP
- 本地账户:账号名称、密码等信息保存在passwd/shadow文件中
- 虚拟用户:使用独立的账号/密码数据文件
2、FTP有两种工作模式:
FTP是仅基于TCP的服务,而且要用到两个TCP连接,一个连接控制链路,用来在客户端和服务器之间传递命令;另外一个是数据链路,用来上传或者下载数据的。
主动模式和被动模式。
主动模式:服务端从20端口主动向客户端发起连接。 控制端口:21 数据传输端口: 20
被动模式:服务器端在指定范围内的某个端口被动等待客户端连接。控制端口:21 数据传输端口:随机
主动方式连接过程:
客户端从任意一个 > 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本地用户的家目录