设为首页 加入收藏

TOP

Linux FTP传输协议(一)
2023-07-23 13:38:04 】 浏览:57
Tags:Linux FTP

FTP:File Transfer Protocol ,文件传输协议

FTP:属于NAS存储的一种协议,基于CS结构。

FTP的工作原理:

ftp采用的是双端口模式,分为命令端口和数据端口

  • 命令端口:固定,tcp/21,命令端口对应的就是命令通道

  • 数据端口:不固定,数据端口对应的就是数据通道

说明:
??ftp不同的工作模式使用不同类型的端口。

ftp的工作模式:(从服务器角度)
  • 主动模式:服务器主动向客户端发起连接

  • 被动模式:服务器被动接受客户端的连接请求

说明:

??主动模式和被动模式是数据通道的概念。

ftp的通信流程:
  • 1.服务端开启对21端口的监听。

  • 2.客户端发起对服务端的连接请求,通过服务器的21端口连接到服务器。此时建立起了命令通道,命令通道用于传输和通信相关的一些指令。

  • 3.建立数据通道
    如果是主动模式:服务端会使用20端口主动连客户端的一个随机端口。
    如果是被动模式:客户端使用一个随机端口连接服务端的一个随机端口

  • 4.使用数据通道进行数据的传输。

说明:
??不管是主动模式还是被动模式,服务端都会打开两个端口,一个固定的21端口用于和客户端建立命令通道。一个20或其他端口用于和客户端建立数据通道。

??使用防火墙的连接跟踪功能可以解决防火墙对随机端口的拦截。

防火墙连接跟踪功能:

??监控命令通道中传输的指令,自动分析随机端口,在客户端发起连接的时候就自动打开了这个随机端口。
iptables启动连接跟踪功能的方法:

探测端口是否打开的方法:

telnet工具
??格式:telnet host port #如果能响应则端口就是打开的

例如:查看22端口是否开启

#如果telnet能响应则端口就是打开的'
[root@CentOS8 ~]# telnet 10.0.0.12 22
Trying 10.0.0.12...
Connected to 10.0.0.12.
Escape character is '^]'.
SSH-2.0-OpenSSH_8.0

常见 FTP 相关软件

服务端软件:centos默认的FTP服务端软件是FTP

客户端软件:FTP、wget、curl等等

vsftpd 软件

Very Secure FTP Daemon,CentOS 默认FTP服务器

特点:
速度快、稳定性好

官网:
https://security.appspot.com/vsftpd.html

vsftpd的相关配置:

配置文件格式:option=value

注意:= 前后不要有空格

使用:man vsftpd.conf 可以查看csftpd的相关配置说明

  1. 配置命令通道的命令端口

默认为21端口

listen_port=2121 默认值为21
  1. 数据通道主动模式的端口
connect_from_port_20=YES  #设置主动模式端口为20

ftp_data_port=20 (默认)  #指定主动模式的端口
  1. 被动模式端口范围
linux ftp 客户端默认使用被动模式
windows ftp 客户端默认使用主动模式

pasv_min_port=6000   0为随机分配,端口范围会影响客户端的并发数
pasv_max_port=6010   #表示被动模式端口范围是6000---6010
  1. ftp服务器的时间
use_localtime=YES 使用当地时间(默认为NO,使用GMT)

#默认使用的是格林尼治时间,北京时间为:GMT+8
  1. 匿名用户登录
#开启后可以使用匿名用户ftp或anonymous登录  
anonymous_enable=YES    #支持匿名用户,CentOS8 默认不允许匿名

no_anon_password=YES    #匿名用户略过口令检查 , 默认NO,表示不输入匿名用户的密码进行登录
  1. 匿名用户上传文件
anon_upload_enable=YES   #表示允许匿名上传,注意:文件系统权限
#FTP服务端允许了匿名用户上传,但是指定文件的权限不允许上传也是没法上传成功 所以需要在服务器的指定目录下给ftp用户添加权限

anon_mkdir_write_enable=YES 匿名建目录

范例:实现匿名用户上传

服务端:
[root@CentOS8 ~]# vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES  #允许匿名用户上传

#如果没有开启权限,虽然打开了匿名上传功能,但是跨网络传输数据,ftp对远程目录的文件夹没有写权限,所以不能上传。
#给ftp用户根目录下的pub目录添加ftp用户的权限
[root@CentOS8 ~]# setfacl -m u:ftp:rwx /var/ftp/pub/ #给ftp用户权限


客户端:
[root@CentOS8 ~]# ftp 10.0.0.11
Connected to 10.0.0.11 (10.0.0.11).
220 (vsFTPd 3.0.3)
Name (10.0.0.11:root): ftp
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> !ls
anaconda-ks.cfg  test.1
ftp> cd pub
250 Directory successfully changed.
ftp> put test.1
local: test.1 remote: test.1
227 Entering Passive Mode (10,0,0,11,51,195).
150 Ok to send data.
226 Transfer complete.
10485760 bytes sent in 0.057 secs (184086.66 Kbytes/sec)
ftp>

说明:

??不能给FTP根目录写权限,只能给子目录写权限,否则报如下错误

#服务端
[root@CentOS8 ~]# setfacl -m  u:ftp:rwx /var/ftp/

#客户端访问
[root@CentOS8 ~]# ftp 10.0.0.11
Connected to 10.0.0.11 (10.0.0.11).
220 (vsFTPd 3.0.3)
Name (10.0.0.11:root): ftp
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
Login failed.
421 Service not available, remote server has closed connection
ftp>
方法一:
anon_world_readable_only=NO    默认YES 所有人都具有读权限的文件才能下载

方法二:
anon_umask=0333 指定匿名上传文件的umask,默认077,注意:0333中的0不能省略 0333是八进制形式

实现上传文件的删除和修改
anon_other_write_enable=YES 可删除和修改上传的文件,默认NO
  1. 指定匿名用户的上传文件的默认的所有者和权限
#默认上传文件的所有者就是客户端当前的账号
chown_uploads=YES        
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇为什么文件删除了但磁盘空间没有.. 下一篇CentOS 7内核升级

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目