【Linux网络服务】FTP服务

news2025/3/1 11:49:26

FTP服务

  • 一、FTP服务
    • 1.1FTP服务概述
    • 1.2FTP服务的特点
    • 1.3FTP服务工作过程
  • 二、设置FTP服务
    • 2.1实验一:设置匿名用户访问FTP服务(最大权限)
    • 2.2实验二:设置本地用户验证访问ftp,并禁止切换到ftp以外的目录(默认登录的根目录为本地用户的家目录)
    • 2.3实验三: 启用用户列表文件,设置白名单或者黑名单
    • 2.4实验四:修改匿名用户、本地用户登录的默认根目录

一、FTP服务

1.1FTP服务概述

  • 文件传送协议(File Transfer Protocol)是互联网上使用的最广泛的文件传输协议,用于Internet上的控制文件的双向传输。

  • FTP提供交互式的访问,允许客户指明文件类型与格式,并允许文件具有存取权限。

  • FTP屏蔽了各计算机系统的细节,因而适合于在异构网络中计算机之间传送文件。

1.2FTP服务的特点

  • 文件传送协议FTP只提供文件传送的一些基本的服务,它使用TCP可靠的运输方式。

  • FTP的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。

  • FTP使用客户服务器方式。一个FTP服务器进程可同时为多个客户进程提提供服务,FTP的服务器进程由二大部分组成:一个是主进程,负责接受新的请求;另外有诺干个从属进程,负责处理单个请求。

1.3FTP服务工作过程

  • 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不再需要建立一个新的和客户端之间的连接。
  • 20端口用于建立数据连接,并传输文件数据
    21端口用于建立控制连接,并传输FTP控制命令
    1.客户端向服务器发出连接请求,同时客户端会打开一个大于1024的端口等候服务器连接(例如:1030端口)。

在这里插入图片描述
2.当FTP服务器在端口21侦听到该请求,则会在客户端1030端口和服务器的21端口之间建立起一个FTP会话连接。
在这里插入图片描述
3.当客户端有数据传输请求时,FTP客户端在动态打开一个大于1024的端口(例如:1031),与FTP服务器的20端口连接,建立数据传输通道
在这里插入图片描述4.当数据传输完成后,数据传输通道自动断开,两个端口自动关闭
在这里插入图片描述
(5)FTP客户端断开与FTP服务器的连接时,客户端上动态分配的端口自动释放。

在这里插入图片描述
注意:FTP的会话通道的建立,以及传输通道的建立,都是建立在tcp三次握手的应答基础上的。

二、设置FTP服务

2.1实验一:设置匿名用户访问FTP服务(最大权限)

(1)下载FTP服务,关闭防火墙

ystemctl stop firewalld
setenforce 0

yum -y install vsftpd

(2)备份FTP配置文件

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

(2) 修改配置文件vim /etc/vsftpd/vsftpd.conf.bak

在这里插入图片描述

(3)设置上传数据目录的最大权限
匿名用户默认在/var/ftp/pub/上传数据,这里给他切换到ddd目录,给他所有权限

在这里插入图片描述

(4)开启ftp服务

在这里插入图片描述

(5)匿名访问测试一
在服务端写入数据,客户端查看下载数据(也许要关闭防火墙)

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

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

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

(1)修改配置文件vim /etc/vsftpd/vsftpd.conf

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

(2)重启服务

systemctl restart vsftpd

(3)切换成本地用户,上传数据下载数据

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

2.3实验三: 启用用户列表文件,设置白名单或者黑名单

(1)修改配置用户列表文件vim /etc/vsftpd/user_list

在这里插入图片描述

(2)修改ftp配置文件vim /etc/vsftpd/vsftpd.conf

在这里插入图片描述
在这里插入图片描述
黑名单反过来,用户列表里面的无法登录,不在里面的可以登录

2.4实验四:修改匿名用户、本地用户登录的默认根目录

修改ftp配置文件vim /etc/vsftpd/vsftpd.conf
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/434589.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux- 进程的切换和系统的一般执行过程

我想在介绍进程切换之前,先引入中断的相关知识,它是我们理解进程切换的重要前提,也是Linux操作系统的核心机制。 中断的类型 • 硬件中断(Interrupt),也称为外部中断,就是CPU的两根引脚&…

微服务学习-SpringCloud -Nacos (集群及CP架构相关学习)

文章目录 Nacos集群下心跳机制相对于单机会有怎样的改变?CAP原则和BASE原则常见的注册中心实现对比Nacos集群实现协议Nacos CP架构实现源码Nacos CP架构leader是如何选举的呢? Nacos集群下心跳机制相对于单机会有怎样的改变? 在上一遍单机模…

百万赞同:网络安全为什么缺人? 缺什么样的人?

1.网络安全为什么缺人? 缺人的原因是有了新的需求 以前的时候,所有企业是以产品为核心的,管你有啥漏洞,管你用户信息泄露不泄露,我只要做出来的产品火爆就行。 这一切随着《网络安全法》、《数据安全法》、《网络安全审查办法》…

No.041<软考>《(高项)备考大全》【第25章】量化项目管理

第25章】量化项目管理 1 考试相关2 量化项目管理3 准备量化管理项目4 量化的管理项目5 练习题参考答案: 1 考试相关 选择可能考0-1分,案例论文不考。 2 量化项目管理 量化项目管理(QPM)的目的在于量化地管理项目,以达成项目已建…

Auto-GPT 5分钟详细部署指南

安装 conda 1. 下载安装 miniconda3 : Miniconda — conda documentation conda是一个包和环境管理工具,它不仅能管理包,还能隔离和管理不同python版本的环境。类似管理nodejs环境的nvm工具。 2. conda环境变量: 新建 CONDA_H…

混合网络监控工具

多年来,网络不可避免地变得更加复杂。混合网络架构包括跨多个供应商的 LAN、WAN、公共或私有云存储以及混合云。简而言之,它是虚拟和物理网络组件的混合体,自远程工作出现以来,这种类型的网络架构已经起飞。 什么是混合网络 混合…

【《C和指针》笔记】第一章<快速上手>

注释以/*开始到*/结束或者使用// .预处理指令:因为它们是由预处理器解释的,预处理器读入代码,根据预处理指令对其进行修改,然后把修改过的源代码递交给编译器。预处理指令(#include、#define)所定义的变量…

【论文阅读笔记|CASE 2022】EventGraph: Event Extraction as Semantic Graph Parsing

论文题目:EventGraph: Event Extraction as Semantic Graph Parsing 论文来源:CASE2022 论文链接:https://aclanthology.org/2022.case-1.2.pdf 代码链接:GitHub - huiling-y/EventGraph 0 摘要 事件抽取涉及到事件类型检测、…

【Scala】集合

目录 类型 不可变集合 可变集合 数组 不可变 可变数组 不可变数组与可变数组的转换 多维数组 List list运算符 可变 ListBuffer Set 集合 不可变 Set 可变 mutable.Set Map 集合 可变 Map 元组 操作 通用操作 衍生集合操作 计算函数 排序 sorted sortB…

java springboot VUE 健康食谱管理系统开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 springboot VUE 健康食谱管理系统是一套完善的完整信息管理类型系统,结合springboot框架和VUE完成本系统,对理解JSP java编程开发语言有帮助系统采用springboot框架(MVC模式开 发),系统具有完整的源代码…

PHP快速入门08-JSON与XML处理

文章目录 前言一、使用介绍1.1 JSON处理1.2 XML处理 二、常见用法20例2.1 将数组转换为JSON格式:2.2 将JSON字符串转换回PHP数组:2.3 读取XML文件:2.4 将XML字符串转换成PHP对象:2.5 从URL获取JSON数据:2.6 写入JSON文…

SpringBoot集成Disruptor

Disruptor介绍 1.Disruptor 是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。基于 Disruptor 开发的系统单线程能支撑每秒 600 万订单,2010 年…

为什么APP也需要SSL证书?

通常我们会想到对网站使用SSL证书,来加密数据传输过程,确保信息不被篡改、泄露。对APP这类应用程序则选择软件签名证书,来进行数字签名和防止代码被恶意篡改。然而APP很容易获取到个人敏感信息,为了防止这些信息在传输过程中被有心…

JUC并发编程之读写锁

1 ReentrantReadWriteLock 当读操作远远高于写操作,这时候使用 读写锁 让 读-读 可以并发,提高性能,类似于数据库中的 select … from … lock in share mode 测试阻塞 提供一个 数据容器类 内部分别使用读锁保护数据的 read() 方法&#…

NAT-HCIA阶段综合实验

拓扑结构: 要求 1、ISP路由器只能配置IP地址,之后不得进行其他配置 2、内部整个网络基于192.168.1.0/24进行地址规划 3、R1、R2之间启动OSPF协议,单区域 4、PC1~PC4自动获取IP地址 5、PC1不能telnetR1,PC1外的其他内网PC可以t…

设计模式-行为型模式之状态模式

4. 状态模式 4.1. 模式动机 在很多情况下,一个对象的行为取决于一个或多个动态变化的属性,这样的属性叫做状态,这样的对象叫做有状态的(stateful)对象,这样的对象状态是从事先定义好的一系列值中取出的。当一个这样的对象与外部事…

GPT大模型之后,谷歌、微软、百度们AI争霸的下一战

又来了一个大模型! 4 月 14 日,雷军宣布推出小米的大规模语言模型;4 月 11 日,在阿里云峰会上,阿里云智能首席技术官周靖人正式宣布推出大规模语言模型——通义千问,并宣布要在钉钉、天猫精灵等阿里所有产品…

Ghidra使用之Options页面功能介绍

Apply Processor Defined Lables 在Ghidra中,apply processor defined labels功能可以为汇编代码中的地址和数据自动添加注释,这可以大大提高反汇编代码的可读性。 使用步骤如下: 打开您要反汇编的文件,进入Code Browser窗口。点击Edit菜单,选择Apply Processor Defined Labels…

Mysql不同服务器跨库查询解决方案

项目场景: Mysql在不同服务器实现跨库查询,类似dblink。 解决方案: 在两台不同服务器,实现跨库查询,其实现原理类似一个虚拟映射,需要用到mysql的另一个存储引擎Federated,FEDERATED存储引擎访问在远程数据…

另一个世界的人

休假 赶在假期无效前,休了个长假回了趟老家。不仅是为了逃离工作的繁忙,也为了看望老家的婆婆爷爷。回趟老家对于我们这种社会人来说确实太难了,如果只是周末回去也就休息一天就得往回赶,太累。自己的假期本来就不多,如…