一.FTP概述
FTP (File Transfer Protocol,文件传输协议)是典型的C/S架构的应用层协议,需要由服务端软件、客户端软件两个部分共同实现文件传输功能。FTP客户端和服务器之间的连接是可靠的,面向连接的,为数据的传输提供了可靠的保证。
二.FTP作用与工作原理
2.1FTP作用
作用:Internet.上用来传送文件的协议。
VSFTP全称(very secure FTP )
VSFTP:== C/S架构==
FTP服务器默认使用TCP协议的20、21端口与客户端进行通信
20端口用于建立数据连接,并传输文件数据,20端口只有在传输数据时才会打开
21端口用于建立控制连接,并传输FTP控制命令
2.2FTP工作原理
FTP有两种工作模式,一种方式叫做Standard (也就是Active, 主动方式),一种是Passive(也就是PASV,被动方式)。
主动模式
FTP客户端首先和FTP Server 的TCP21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口发送数据。FTP server必须和客户端建立一个新的连接用来传送数据。
被动模式
在建立控制通道的时候和Standard模式类似,当客户端通过这个通道发送PASV命令的时候,FTP server打开一个位于1024和5000之间的随机高位端口并且通知客户端在这个端口上传送数据的请求,然后FTP server将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。
三.FTP服务安装与配置
3.1FTP服务安装
1.检查软件包并安装
[root@xiayan ~]# rpm -q vsftp #查询软件是否已安装
未安装软件包 vsftp
[root@xiayan ~]# yum install -y vsftpd #安装软件
[root@xiayan ~]# systemctl start vsftpd #开启服务
[root@xiayan ~]# systemctl enable vsftpd #设置开机自启动
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
2.配置备份
[root@xiayan ~]# cd /etc/vsftpd/
[root@xiayan vsftpd]# cp vsftpd.conf vsftpd.conf.bak #备份配置文件
3.2匿名用户登录
修改配置文件
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES //开启匿名用户访问,默认开启
write_enable=YES //开放服务器的写权限,默认开启
anon_umask=022 //设置匿名用户上传数据的权限(反掩码)
anon_upload_enable=YES //允许匿名用户上传文件,默认注释
anon_mkdir_write_enable=YES //允许匿名用户创建(上传)目录,默认注释
anon_other_write_enable=YES //允许删除、重命名、覆盖等操作,需自行添加
[root@xiayan ~]# chmod 777 -R /var/ftp/pub/ //更改pub权限,否则匿名用户无法进行读写
编辑完后:systemctl restart vsftpd
进入客户端连接:ftp +IP地址
3.3用户登录
修改配置文件
vim /etc/vsftpd/vsftpd.con
local_enable=YES #启用本地用户,默认开启
write_enable=YES #开放服务器的写权限,默认开启
local_umask=077 #设置权限,仅宿主用户拥有权限(反掩码)
chroot_local_user=YES #将访问禁锢在宿主目录中,无法访问别的目录
allow_writeable_chroot=YES #允许被限制的用户主目录具有写权限
local_root=/var/ftp/xiayan #指定用户登录的默认目录
#local_root针对系统用户 anon_root 针对匿名用户
编辑完后:systemctl restart vsftpd
[root@xiayan ~]# cd /var/ftp/
[root@xiayan ftp]#mkdir xiayan #创建指定用户登录的默认目录
[root@xiayan ftp]#chown csdn.root xiayan #将目录属主更改为csdn
进入客户端连接:ftp +IP地址
3)通过windows测试ftp功能
3.4黑白名单
vim /etc/vsftpd/vsftpd.conf
userlist_enable=yes #启用user_list用户列表文件
userlist_deny=NO #设置白名单,仅允许user_list用户列表文件的用户访问