1.概述
FTP(File Transfer Protocol,文件传输协议)是典型的C/S架构的应用层协议,需要由服务端软件、客户端软件两个部分共同实现文件传输功能。FTP客户端和服务器之间的连接是可靠的,面向连接的,为数据的传输提供了可靠的保证。
ftp使用tcp的20、21端口,20端口是连接端口,用于传输数据。21端口是控制端口,用于和客户端建立连接。
两种模式,一种方式叫做Standard (也就是Active,主动方式),一种是Passive (也就是PASV,被动方式)。
主动方式:
客户端首先和服务端的21端口建立连接,客户端在这个端口发送请求,服务端收到请求后,从自己的20端口建立一个新连接发送数据。
被动方式:
客户端和服务端的21端口建立连接,当客户端发送请求时,服务端打开一个1024-5000之间的端口并通知客户端在这个端口上传送数据,被动方式不需要和客户端新建立一个连接。
2.搭建与配置
2.1 搭建环境
服务器:CentOS 7 系统 ip:192.168.152.130
客户端:Win10 系统(本机)
2.2 配置文件
/etc/vsftpd/vsftpd.conf ---->ftp服务器的主配置文件
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/var/ftp
/var/ftp/pub
2.3 配置文件并实验效果
首先确定虚拟机里面安装了软件,没有安装的话需要先yum 安装一下:
在window下按window + r可打开DOS命令窗口,然后就可以输入FTP命令了
真机先ping一下虚拟机地址,确定可以访问:
修改文件配置主要在以下两个文件里面:
[root@localhost ~]# vim /etc/vsftpd/ftpusers#优先级更高
[root@localhost ~]# vim /etc/vsftpd/user_list
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf#主配置文件
[root@server ~]# systemctl start vsftpd //开启服务
2.3.1 匿名用户登录
2.3.2 文件的上传和下载
在ftp站点下面新建一个文件:
可以在电脑中查看下载的位置:
将文件改名 ,改成abc
进行上传文件到服务器,发现上传失败了
进入主配置文件,找到如下内容,取消注释
改成这样子:
anon_upload_enable=YES
如果设置为YES,匿名用户将被允许在某些条件下上传文件。为此,必须激活write enable选项,
匿名ftp用户必须对所需的上传位置具有写权限。此设置也需要虚拟用户上传;默认情况下,虚拟用户使用匿名(即最大限制)特权。
anon_mkdir_write_enable=YES
如果设置为YES,匿名用户将被允许在某些条件下创建新的目录。为了这个工作,
选项write_ enable必须被激活,匿名ftp用户必须对父目录有写权限。
anon_other_write_enable=YES
如果设置为YES,匿名用户将被允许执行上传和创建目录以外的写操作,例如
删除和重命名。一般不建议这样做,但为了完整起见,我们将其包括在内。
这里来更改一下文件的权限:
这时候退出在登陆一次,发现不好在登录了,权限放到最大登录不了了,因为它自身的安全机制影响,再把权限改回去
进而修改修改ftp站点下pub目录的权限为最大即可
在使用命令 就可以完成上传了
cd pub
put abc
2.3.3 锁定用户在家目录
允许登录root:
修改/etc/vsftpd/ftpusers,将root注释掉
修改/etc/vsftpd/vsftpd.conf,添加一行userlist_deny=NO
重启服务
锁定用户家目录不可随意切换(对用户的活动范围进行限制):
修改/etc/vsftpd/vsftpd.conf
chroot local _user=YES//取消注释,锁定家目录了但是如果家目录有写权限ftp会拒绝连接allow_writeable_chroot=YES//添加这一行
重启服务
转载:https://blog.csdn.net/weixin_55299423/article/details/117306261