0
点赞
收藏
分享

微信扫一扫

LINUX网络服务——FTP

孟佳 2022-04-16 阅读 88
linux

目录

前言

一、FTP 概述

1.1 FTP

1.2 FTP 端口

1.3 数据连接模式

1.4  工作原理

1.4.1 主动模式

1.4.2 被动模式 

二、搭建和配置FTP 服务

三、总结


前言

什么是FTP?学会这章内容能够让我们更好的了解FTP 文件传输协议是怎么工作的,为什么要使用FTP协议,以及在网络上给我们带来什么样的作用。

一、FTP 概述

1.1 FTP

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

1.2 FTP 端口

TP默认使用TCP协议的20、21端口用于客户端进行通信

20端口用于建立数据连接,并传输文件数据

21端口用于建立控制连接,并传输FTP控制命令

1.3 数据连接模式

Standard (PORT方式、主动模式):服务器主动发起数据连接。
FTP 客户端首先和服务器的TCP 21端口建立连接,用来发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。FTP server必须和客户端建立一个新的连接用来传送数据。

Passive (PASV,被动方式):服务器被动等待数据连接。
建立控制通道和Standard模式类似,但建立连接后发送Pasv命令。服务器收到Pasv命令后,打开一个临时端口(端口号大于1023小于65535)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口传送数据。

1.4  工作原理

1.4.1 主动模式

服务器主动发起数据连接

首先客户端的高位端口向服务器的21端口建立FTP连接请求(连接请求包括:认证,用户,密码,连接模式,命令PORT端口); FTP服务器响应ACK确认,服务器的21号端口和客户端的高位端口建立ftp会话连接; FTP服务器从自己的20号端口连接客户端发送的连接请求是主动模式命令提供的端口; 客户端发送ACK确认,开始数据传输

弊端:客户端的防火墙未关,可被拦截

1.4.2 被动模式 

客户机主动发起数据连接

首先客户端的高位端口向服务器的21端口建立FTP连接请求(连接请求包括:认证,用户,密码,连接模式,命令PORT端口);
FTP服务器响应ACK确认,服务器的21号端口和客户端的高位端口建立ftp会话连接,并告诉客户端已开放20号端口,等你来连接;
客户端用自己的一个高位端口连接服务器响应的一个高位端口;
服务器给客户端发送ACK确认,开始数据传输

总结:

主动模式:服务器主动发起数据连接

被动模式:服务器被动等待数据连接

二、搭建和配置FTP 服务

环境:准备两台虚拟机,其中一台Linux系统做服务器,一台Windows做客户机。并且能互通

1.安装前准备工作,关闭防火墙

systemctl stop firewalld

setenforce 0

2.查看信息,安装软件包vsftpd

yum info vsftpd     查看信息

yum install -y vsftpd #yum源一键安装

 3.开启FTP服务,切换目录并做备份

cd /etc/vsftpd/ #切换到ftp配置目录下

cp vsftpd.conf vsftpd.conf.bak

或 cp vsftpd.conf{,.bak} #进行原配置文件的备份

4.修改配置文件

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

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

chmod 777 /var/ftp/pub

 6.开启服务

systemctl start vsftpd #开启服务

 7.匿名访问测试

在windows系统打开开始菜单,输入cmd 命令打开命令提示符
#建立ftp连接
ftp 192.168.111.15
#匿名访问,用户名为ftp,密码为空,直接回车即可完成登录
ftp> pwd         ###匿名访问ftp的根目录为Linux系统的/var/ftp/目录
ftp> ls          ###查看当前目录
ftp> cd pub      ###切换到pub目录
ftp> get文件名    ###下载文件到当前windows本地目录
ftp> put文件名    ###上传文件到ftp目录
ftp> quit        ###退出

 在xshell上下载文件到/var/ftp/pub/目录下,在上传到windows上面

从windows里面下在文件到xshell上面

 8.设置本地用户验证访问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 #重启服务

 验证:

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

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

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

10.使用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,为黑名单,禁用

三、总结

1.FTP的概述

2.FTP 的两种模式:standard (主动模式),passive (被动模式)

3.FTP 服务的搭建和配置

举报

相关推荐

0 条评论