学习ftp

文章目录

  • 一、FTP介绍
  • 二、两种模式(主动模式和被动模式)
  • 三、FTP配置文件详解
  • 四、实际场景举例
  • 五、黑白名单
  • 六、网络限制

一、FTP介绍

1.FTP(File Transfer Protocol)是一种应用广泛且古老的互联网文件传输协议。
2.主要应用于互联网中文件的双向传输(上传/下载)、文件共享。
3.跨平台 Linux、Windows。
4.FTP是C/S架构,拥有一个客户端和服务端,使用TCP协议作为底层传输协议,提供可靠的数据传输。
5.FTP的默认端口21(命令端口),20(数据端口,主动模式下)默认被动模式下
FTP程序vsftp

二、两种模式(主动模式和被动模式)

★主动模式
在这里插入图片描述
在这里插入图片描述
★被动模式
在这里插入图片描述
在这里插入图片描述

三、FTP配置文件详解

/usr/lib/systemd/system/vsftpd.service #启动脚本
/etc/vsftpd #配置文件的目录
/etc/vsftpd/ftpusers #用户列表文件,黑名单
/etc/vsftpd/user_list #用户列表文件,可黑可白(默认是黑名单)
/etc/vsftpd/vsftpd.conf #配置文件(主配置文件)
/usr/sbin/vsftpd #程序本身(二进制的命令)
/var/ftp #匿名用户的默认数据根目录
/var/ftp/pub #匿名用户的扩展数据目录
[root@localhost vsftpd]# grep -v ^# /etc/vsftpd/vsftpd.conf 
anonymous_enable=YES #支持匿名用户访问
local_enable=YES #支持非匿名用户,普通账号登录,默认进入到自己的家目录
write_enable=YES #写总开关
local_umask=022 #反掩码 file:644,dir:755
dirmessage_enable=YES #启用消息功能
xferlog_enable=YES #开启或关闭xferlog日志
connect_from_port_20=YES #支持主动模式
xferlog_std_format=YES #xferlog的日志格式
listen=NO #ftp服务独立模式下的监听
listen_ipv6=YESpam_service_name=vsftpd #指定认证文件
userlist_enable=YES #启用用户列表
tcp_wrappers=YES #支持tcp_wrappers功能(ftp限速操作)

四、实际场景举例

禁止匿名登录,创建一个kefu用户专用于登录ftp,登录以后不进入家目录,进入/data/ftp目录并且不可以切换目录。

[root@localhost ~]# useradd kefu
[root@localhost ~]# echo 123456 |passwd --stdin kefu
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf 
anonymous_enable=NO #禁止匿名登录
local_enable=YES
local_root=/data/ftp #登录以后的默认目录
chroot_local_user=YES #锁定目录,不让切换
allow_writeable_chroot=YES

无法上传,赋予权限

setfacl -R -m u:kefu:rwx /data/ftp

禁锢目录细节
在这里插入图片描述

五、黑白名单

ftpusers 黑名单文件。
user_list默认是黑名单,user_list从黑名单变成白名单需要在vsftpd.conf配置文件中添加这一行。

userlist_deny=NO

六、网络限制

在这里插入图片描述
查看知否支持tcp_wrappers两种查询方式

  1. /configure --enable-libwrap (如果是源码安装)
  2. ldd /usr/sbin/vsftpd |grep libwrap* (如果是rpm安装)

限制FTP流量

[root@localhost vsftpd]# vim /etc/vsftpd/vsftpd.conf
local_max_rate=0
0表示不限速
local_max_rate=数字+字节

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

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

相关文章

python检测序列中的元素是否满足严格升序关系

方法1 def lessThan1(seq):for index, value in enumerate(seq[:-1]):if value > seq[index1]:return Falsereturn True方法2 def lessThan2(seq):func lambda x, y: x < yreturn all(map(func, seq[:-1], seq[1:]))方法3 from operator import ltdef lessThan3(seq)…

信息系统项目管理师教程 第四版【第6章-项目管理概论-思维导图】

信息系统项目管理师教程 第四版【第6章-项目管理概论-思维导图】 课本里章节里所有蓝色字体的思维导图

【Flutter】Flutter 中的图片管理 图片优化的最佳实践

【Flutter】Flutter 中的图片管理 图片优化的最佳实践 文章目录 一、前言二、图片资源的重要性1. 对于项目复杂性的影响2. 性能和资源优化3. 国际化和多平台支持4. UI/UX 的角度看图片管理5. 图片资源与应用安全三、Flutter 中的图片资源分类1. Asset 图片2. 网络图片3. 本地文…

java项目之时间管理系统(ssm框架)

项目简介 时间管理系统实现了以下功能&#xff1a; 管理员&#xff1a;个人中心、用户管理、分类列表管理、在线学习管理、励志视频管理、活动项目管理、活动报名管理、目标制定管理、论坛管理、系统管理。用户&#xff1a;注册、个人中心、活动报名管理、目标制定管理、我的…

javaEE -10(11000字详解5层重要协议)

一&#xff1a;应用层重点协议 1.1&#xff1a; DNS DNS&#xff0c;即Domain Name System&#xff0c;域名系统。DNS是一整套从域名映射到IP的系统。 TCP/IP中使用IP地址来确定网络上的一台主机&#xff0c;但是IP地址不方便记忆&#xff0c;且不能表达地址组织信息&#x…

mac git ssh

1.作用 1.不用账号密码拉取git项目 2.使用 1.检查是否生成ssh的公钥和私钥 命令&#xff1a; cd ~/.ssh表示没有 No such file or directory 2.如果没有就生成公钥和私钥 ssh-keygen -t rsa -C "帅哥***.com"后面的是git邮箱地址 然后一直按enter&#xff0c;…

二叉树问题——对称二叉树

摘要 101. 对称二叉树 一、对称二叉树解析 1.1 递归思路分析 首先想清楚&#xff0c;判断对称二叉树要比较的是哪两个节点&#xff0c;要比较的可不是左右节点&#xff01;对于二叉树是否对称&#xff0c;要比较的是根节点的左子树与右子树是不是相互翻转的&#xff0c;理解…

Java基于SpringBoot+Vue的网上图书商城管理系统(附源码,教程)

文章目录 1. 简介2 技术栈3 系统功能4系统设计4.1数据库设计 5系统详细设计5.1系统功能模块5.1系统功能模块5.2管理员功能模块 源码下载地址 1. 简介 本次设计任务是要设计一个网上图书商城&#xff0c;通过这个系统能够满足网上图书商城的管理功能。系统的主要功能包括首页、…

进程(2)——进程状态(僵尸,睡眠……)【linux】

进程&#xff08;2&#xff09;——进程状态&#xff08;僵尸&#xff0c;睡眠……&#xff09;【linux】 一.操作系统的进程状态&#xff1a;1.1 运行态1.2 阻塞态1.3 挂起态 二.linux进程状态2.1 R——运行状态2.2 S——浅度睡眠状态2.3 D——&#xff08;disk sleep&#xf…

Shell 脚本学习 day01

release node v1 初始版本 #定义备份目录#当前时间#检查备份目录是否存在&#xff0c;不存在需要创建# 查找并备份 .xxx 文件# 提取文件名&#xff08;不包含路径部分&#xff09;# 构建备份文件名# 将查出来的.xxx文件拷贝到备份目录#!/bin/bash # context 备份根目录下所有.…

iOS调试技巧——使用Python 自定义LLDB

一、类介绍 在使用Python 自定义LLDB之前&#xff0c;先了解一下LLDB的一些类型 SBTarget 正在被调试的程序SBProcess 和程序关联的具体的进程SBThread 执行的线程SBFrame 和线程关联的一个栈帧SBVariable 变量&#xff0c;寄存器或是一个表达式 一般情况下&#xff0c;我们…

D-LINK SQL注入漏洞让攻击者获得管理员权限

D-Link DAR-7000 设备中发现了一个名为 SQL 注入的安全漏洞。 SQL注入是一种恶意攻击&#xff0c;它利用Web应用程序中的漏洞注入恶意SQL语句并获得对数据库的未经授权的访问。 此技术允许攻击者查看、修改和删除数据库中的数据&#xff0c;这可能对数据的机密性、完整性和可…

Linux下进程地址空间初步理解

进程地址空间 进程地址空间是操作系统为每个进程分配的一块内存空间&#xff0c;用于存储进程的代码、数据和堆栈等信息。进程地址空间是逻辑上独立而相互隔离的&#xff0c;每个进程拥有自己独立的地址空间&#xff0c;进程之间不能直接访问彼此的地址空间。 代码段&#xff…

sass和 scss的区别?

Sass&#xff08;Syntactically Awesome Style Sheets&#xff09;和 SCSS&#xff08;Sassy CSS&#xff09;是两种流行的 CSS 预处理器&#xff0c;它们扩展了普通的 CSS 语法&#xff0c;提供了更多的功能和便利性。下面是 Sass 和 SCSS 的主要区别&#xff1a; 1&#xff…

【Java】HashSet集合用法

目录 HashSet 集合特点 示例代码 手写HashSet集合 HashSet 没有Get() HashSet 集合特点 HashSet 基于HashMap 来实现的&#xff0c;是一个不允许有重复元素的集合HashSet 允许有 null 值HashSet 是无序的&#xff0c;即不会记录插入的顺序HashSet集合实现了Set接口HashSet …

SpringCloud Alibaba【三】Gateway

Gateway配置与使用 前言新建gateway子项目pom.xml配置文件启动类访问接口方式 测试拓展 前言 在工作中遇到一种情况&#xff0c;一个父项目中有两个子项目。实际使用时&#xff0c;需要外网可以访问&#xff0c;宝信软件只能将一个端口号发布在外网上&#xff0c;所以需要运用…

什么是操作系统

如果你能大概了解下图&#xff1f;这个大概了解操作系统的样子&#xff0c;这是计算机的一些个裸件&#xff0c;了解这些对将来深入学习操作系统&#xff0c;是一个基础。 今天的内容&#xff1a;我们要建立操作系统的一个宏观轮廓 这个有黑色的&#xff0c;一条一条的&#…

Kubernetes技术与架构-存储 2

在Kubernetes集群中&#xff0c;一块持久化存储空间是可以被回收再利用&#xff0c;简称PV&#xff0c;即PersistentVolume&#xff0c;Pod实例需要使用PV的时候&#xff0c;可以使用PVC定义申请PV存储资源&#xff0c;PVC是PersistentVolumeClaim的简称&#xff0c;PV的申请分…

「实验记录」CS144 Lab0 networking warmup

文章目录 一、Motivation二、SolutionsS1 - Writing webgetS2 - An in-memory reliable byte stream 三、Results四、Source 一、Motivation 第一个小测试 webget 是想让我们体验并模拟一下在浏览器中键入 URL 后获得远程服务器传来的内容&#xff0c;这并没有太大的难度&…

【Oracle】Navicat Premium 连接 Oracle的两种方式

Navicat Premium 使用版本说明 Navicat Premium 版本 11.2.16 (64-bit) 一、配置OCI 1.1 配置OCI环境变量 1.1.2 设置\高级系统设置 1.1.2 系统属性\高级\环境变量(N) 1.1.3 修改/添加系统变量 ORACLE_HOME ORACLE_HOME D:\app\root\product\12.1.0\dbhome_11.1.4 添加系…