详解FTP服务完成Linux和WIN10之间的信息传输(实验详解)

详解FTP服务完成Linux和WIN10之间的信息传输(实验详解)

一、FTP简介

1、 FTP服务——用来传输文件的协议

FTP 是File Transfer Protocol(文件传输协议)的英文简称,是 TCP/IP 协议组中的协议之一。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。
FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。

2、端口

  • FTP默认使用TCP协议的20、21端口用于客户端进行通信
  • 20端口用于建立数据连接,并传输文件数据
  • 21端口用于建立控制连接,并传输FTP控制命令

3、数据连接模式

  • Standard (PORT方式、主动模式):服务器主动发起数据连接
    • FTP 客户端首先和服务器的TCP 21端口建立连接,用来发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。FTP server必须和客户端建立一个新的连接用来传送数据。
  • Passive (PASV,被动方式):服务器被动等待数据连接
    • 建立控制通道和Standard模式类似,但建立连接后发送Pasv命令。服务器收到Pasv命令后,打开一个临时端口(端口号大于1023小于65535)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口传送数据。

二、相关配置

1、安装FTP服务

yum install -y vsftpd            #yum一键安装
cd /etc/vsftpd/                  #切换到ftp配置目录下
cp vsftpd.conf  vsftpd.conf.bak
或  cp vsftpd.conf{
    
    ,.bak}        #进行原配置文件的备份

2、设置匿名用户访问的FTP服务(最大权限)

①、修改配置文件

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    #允许删除、重命名、覆盖等操作,需添加

②、为匿名访问FTP的根目录下的pub子目录设置最大权限,以便匿名用户上传数据

chmod 777 /var/ftp/pub

③、开启服务,关闭防火墙和增强型安全功能

systemctl start vsftpd          #开启服务
systemctl stop firewalld        #关闭防火墙
setenforce 0                    #关闭系统安全机制

④、匿名访问测试

win10中打开cmd命令提示符

ftp 192.168.184.50     #建立ftp连接
ftp> pwd			   #匿名访问ftp的根目录为Linux系统的/var/ftp/目录
ftp> ls				   #查看当前目录
ftp> cd pub		       #切换到pub 目录
ftp> get 文件名		   #下载文件到当前Windows本地目录
ftp> put 文件名		   #上传文件到ftp目录
ftp> quit			   #退出

⑤、设置本地用户验证访问ftp,并禁止切换到ftp以外的目录(默认登录的根目录为本地用户的家目录)

vim /etc/vsftpd/vsftpd.conf     
local_enable=Yes        		#启用本地用户
anonymous_enable=NO    	    	#关闭匿名用户访问
write_enable=YES        	    #开放服务器的写权限(若要上传,必须开启)
anon_umask=077          		#可设置仅宿主用户拥有被上传的文件的权限(反掩码)
chroot_local_user=YES   	    #将访问禁锢在用户的宿主目录中
allow_writeable_chroot=YES		#允许被限制的用户主目录具有写权限

systemctl restart vsftpd        #重启服务

⑥、修改匿名用户、本地用户登录的默认根目录

anon_root=/var/www/html			#anon_root 针对匿名用户
local_root=/var/www/html		#local_root 针对系统用户

⑦、使用user_list用户列表文件和设置白名单和黑名单

vim /etc/vsftp/user_list
//末尾加上zhansgan用户
zhansgan

vim /etc/vsftpd/vsftpd.conf
userlist_enable=YES       #启用user_list用户列表文件
userlist_deny=NO          #设置白名单,仅允许user_list用户列表文件的用户访问。默认为YES,为黑名单,禁用

三、模拟实验一(FTP服务的上传和下载)

1、安装FTP并进行配置文件的备份

在这里插入图片描述

2、修改配置文件

在这里插入图片描述

3、开启服务,并关闭防火墙和增强型安全功能

在这里插入图片描述
在这里插入图片描述

4、win10上进行FTP连通测试

在这里插入图片描述

5、给予最大权限

在这里插入图片描述

6、WIN10上进行文件的上传

在这里插入图片描述
在这里插入图片描述

7、查看上传是否成功

在这里插入图片描述

8、pub目录下创建包含内容的新文件

在这里插入图片描述

9、WIN10里进行FTP服务下载,并查看文件是否下载成功

在这里插入图片描述

四、模拟实验二(本地用户登录FTP,限制切换到宿主目录以外目录,并赋予写的权限)

1、进入配置文件进行修改成本地用户登录

在这里插入图片描述

2、创建本地用户

在这里插入图片描述

3、测试本地用户FTP登录情况

在这里插入图片描述

4、更改配置文件

在这里插入图片描述

5、重启服务

在这里插入图片描述

6、连接FTP,并进行切换目录测试

在这里插入图片描述

7、进行可写权限的测试

在这里插入图片描述
在这里插入图片描述

8、网络地址登录查看

在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Lucien010230/article/details/113880755