文章目录
1.VSFTP概述
FTP是文件传输协议的英文简述,用于将网络服务器上的文件下载到本地,也可以将本地文件上传到网络服务器上。
FTP具有一定的危险性,他是数据再因特网上是没有收到保护的明文传输方式。
vsftp是常用的使用FTP协议的服务器软件,VerySecure FTP,他是解决了ftp传输的安全性问题(但依旧是明文传输)。
1.1 安全特性
- vsftp程序的运行者是一个普通用户,降低了进程本身的权限,提高了安全性。
- 任何需要执行更高权限的指令,都需要上层程序许可。
- ftp使用的据大多数的命令都被整合再了vsftp中,不使用系统额外提供的命令。
- 拥有chroot功能,可以改变用户的根目录(ftp的默认登录目录),例如限制用户只能在自己的家目录。
2.VSFTP连接方式
控制连接方式(持续端口)----->TCP21(命令信道)----->用户收发FTP命令
- 客户端login登录请求,服务端允许
- 上传put,下载get
- 频繁的端开连接,一直处于LISTEN
数据连接方式(按需连接)----->TCP20(数据信道)----->用于上传下载数据
- 当客户端向服务器端发送文件时,数据传输时,就使用20端口。
- 可以变有多个
3.工作方式
两种工作模式:
1)主动模式(Port):如下图
-
首先客户端登录服务器端,当客户端向服务器的21端口发送登录请求时,会把自己的账户名和密码发送到服务器,服务器会再数据库查看客户端发送的用户名和密码是否符合规则,对应内容没有问题,服务器端通过21端口告诉客户端可以登录。
-
客户端会随机开放一个端口,会被PORT命令记录下来,并且把客户端开放的端口号发送给服务器端一个,而且要把客户端要索取的文件告诉服务器端。
-
服务器端已经含有客户端的IP地址,现在还有了连接端口,就可以主动开启20端口与客户端PORT发送的随机端口,进行连接传输数据。
2)被动模式(Passive模式):如下图 -
首先客户端登录服务器端,当客户端向服务器的21端口发送登录请求时,会把自己的账户名和密码发送到服务器,服务器会再数据库查看客户端发送的用户名和密码是否符合规则,对应内容没有问题,服务器端通过21端口告诉客户端可以登录。
-
客户端项服务器21端口发送一个PASV命令,服务器端就会开放随机端口,将自己开放了的随机端口告诉客户端。这个随机端口与主动模式的20端口是一样的,用来传输数据。(随机端口的范围需要我们来指定,最好是高位端口)。
-
客户端拿到服务器的端口,客户端也开放一个随机端口,使用自己的随机端口连接服务器端的随机端口,这样建立了数据连接信道。
注意:由于被动模式是随机端口进行数据传输,所以在设置防火墙时需要可以放行。
默认使用主动模式。如果有需求,更加安全的话,可以人为修改为被动模式。
4.VSFTP 传输模式
数据传输的一个状态:不同操作系统中的文本格式不太相同,所以设置了数据传输模式。
- Binary模式:不对数据进行任何处理,比较适合可执行文件(脚本,要求格式非常严格,否则无法执行)、压缩文件(算法进行压缩,如果缩进或者换行,就恢复不出来了)、图片。
- ASCII模式:进行文本传输时,自动适应目标操作系统的结束符,如回车符等。
linux的红帽发行版中(centos、redhat等)VSFTP默认使用Binary模式,这样保证绝大多数文件在传输之后可以正常使用。
- 切换方式:在ftp>提示符下输入ascii即转换为ASCII模式,输入bin,转换到Binary模式。
5.VSFTP软件信息
1)服务器端软件包:
- vsftpd(yum源中)
2)客户端软件名:
- ftp
3)服务名:
- vsftpd <