ftp服务器搭建和基本知识总结
FTP文件传输协议
采用C/S架构
两个端口号:
21 传输命令
20 传输数据
两种模式:
主动模式:
过程剖析:
客户端先发送请求连接和想要获取的数据打包给21号命令端口,然后服务端通过21号端口响应客户端的请求!然后服务端主动通过固定的20号数据端口发送客户端请求需要的数据给客户端的一个随机高端口,客户端再向服务端发送ACK确认收到!
被动模式:
过程剖析:
客户端先通过一个随机高端口发送请求连接给服务端的21号命令端口,然后服务端通过21号端口响应客户端的请求,建立好FTP连接以后,客户端就要开启第二个随机高端口了,服务端这边也会再开启一个随机高端口,并向客户端发送port p命令,然后客户端用第二个随机高端口接受服务器的高端口发来的port p命令,在这两个高端口之间建立数据连接!!
两个模式的优缺点:
主动模式是对ftp对服务器的管理有利,但是由于是服务器主动给客户端发送数据时,客户端的防火墙有可能拒绝该陌生端口,造成传输数据失败,所以这样就会给客户端带来麻烦!
被动模式是对ftp对客户端管理有利,因为传输数据时,是客户端高端口主动向服务器高端口先发送请求数据,此时客户端已经不会阻塞服务器该随机高端口了!但是服务器的防火墙需要应许客户端的随机高端口,也是要做防火墙策略的!!
对于被动模式,由于随机高端口开放的越来越多,这样服务器也就不安全了;对于主动模式,客户端不可能去做防火墙策略,所以这个协议就慢慢的在被淘汰!!!
ftp的三类用户:
匿名用户
虚拟用户
本地用户(系统用户)
ftp的主配置文件:
/etc/vsftpd/vsftpd.conf 存储着各种ftp配置参数
从配置文件 /var/ftp/pub 匿名用户访问ftp服务器时看到的共享文件目录
本地用户访问ftp服务器,如果没实现宿主目录禁锢,则可以访问ftp服务器上的所有文件,
实现了宿主目录禁锢则访问的是访问ftp服务器的本地用户的家目录!!
主配置中与匿名用户有关的配置参数:
主配置中本地用户有关的配置参数
上传,下载,本地用户启用有关参数:
宿主目录禁锢有关参数
编辑宿主禁锢的文件,想要禁锢那个用户,就在下面的这个文件中编辑写入用户名即可,多个用户换行写即可!!
vim /etc/vsftpd/chroot_list
Chroot_local_user和Chroot_list_enable之间的关系
虚拟用户(guest user)
思想:通过一个本地用户,映射成多个虚拟的用户,这些虚拟的用户访问ftp服务器都是通过这个本地用户的身份去访问的,这个本地用户具有什么权限这些虚拟用户都具有,所以这个本地用户应该实现宿主目录禁锢!!
如果你不想虚拟用户登录ftp服务器,直接就将该本地用户创建成nologin的一个本地用户:
最后重启服务:systemctl restart vsftpd
不要忘记对这个作为映射源的本地用户作宿主目录禁锢!!