【linux网络】解读FTP文件传输服务器配置,揭秘百度云下载限速原理

目录

一、FTP文件传输协议

1.1FTP工作原理

1.2两种模式介绍

1.3FTP状态码

1.4FTP的三种用户分类

二、vsftpd软件的介绍

2.1服务端介绍

2.2不同操作系统下的客户端登录操作

三、vsftpd的常见配置

3.1修改默认的命令端口

3.2限制匿名用户登录(系统原本是默认匿名可以登录的)

3.3默认匿名用户不可以上传,如果想要开启

3.4指定匿名用户上传的文件默认的所有者和权限

3.5系统用户的默认权限查看

3.6禁锢系统用户

3.7提示信息

3.8pam模块与黑白名单结合使用

3.9限定匿名用户的最大传输速率


一、FTP文件传输协议

1.1FTP工作原理

ftp是一种双通道协议,常用在局域网内使用,ftp使用的是tcp传输的21端口和20端口;

21端口:用于命令控制(传输权限等,以及告知数据传输的端口)

20端口:用于数据传输

1.2两种模式介绍

主动模式:服务端主动开启tcp的20端口 去传输数据给客户端

被动模式:服务端开放随机端口,通过21端口告诉了客户端,被动等待客户端连接

 

1.3FTP状态码

1XX:信息 125:数据连接打开
2XX:成功类状态 200:命令OK     230:登录成功
3XX:补充类     331:用户名OK
4XX:客户端错误 425:不能打开数据连接
5XX:服务器错误 530:不能登录

1.4FTP的三种用户分类

匿名用户:anonymous(匿名用户),对应Linux用户ftp(程序用户)

系统用户:Linux的用户,用户/etc/passwd,密码/etc/shadow

虚拟用户:特定服务的专用用户,独立的用户/密码文件  administer  ##不常用

匿名用户(映射为系统用户ftp )共享文件位置:/var/ftp
系统用户共享文件位置:用户家目录

注意:

系统用户登录ftp服务器以后,显示的服务器的根是硬盘真正的根,但登录的位置是系统用户的家目录,再默认情况下,系统用户可以切换至硬盘的根目录下,约等于可以看到整个硬盘的内容(不是很安全)

客户端以匿名用户或者ftp用户登录以后,当前显示的根是服务器的根,也就是程序用户ftp的家目录:/var/ftp

匿名用户的默认权限有哪些(匿名用户可以查看,可以下载/var/ftp目录下的内容)

二、vsftpd软件的介绍

2.1服务端介绍

[root@localhost ftp]#rpm -qc vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd        ##pam认证的配置文件
/etc/vsftpd/ftpusers     ##与pam认证相结合,可以设置访问黑白名单
/etc/vsftpd/user_list    ##与vsftpd.conf的配置结合,可以设置禁锢的黑白名单
/etc/vsftpd/vsftpd.conf  ##服务端的配置文件

2.2不同操作系统下的客户端登录操作

linux系统下载ftp客户端

Windows下推荐filezilla软件,我个人比较喜欢

还可以直接在我的电脑路径下找

还可以在Windows的命令行操作

三、vsftpd的常见配置

3.1修改默认的命令端口

[root@localhost ftp]#vim /etc/vsftpd/vsftpd.conf
listen_port=2121   ##修改默认端口号为2121,配置文件中没有,直接添加

[root@localhost ftp]#systemctl restart vsftpd

3.2限制匿名用户登录(系统原本是默认匿名可以登录的)

[root@localhost ftp]#vim /etc/vsftpd/vsftpd.conf
 12 anonymous_enable=no ##配置文件的第12行修改为no

[root@localhost ftp]#systemctl restart vsftpd

3.3默认匿名用户不可以上传,如果想要开启

[root@localhost pub]#vim /etc/vsftpd/vsftpd.conf
 12 anonymous_enable=YES  ##允许上传的前提一定是允许匿名登录
 29 anon_upload_enable=YES  ##原本是默认注释了,为关闭,需要取消注释,注意:文件系统权限
 33 anon_mkdir_write_enable=YES  ##原本是默认注释了,为关闭,需要取消注释

[root@localhost pub]#systemctl restart vsftpd
[root@localhost pub]#chmod 777 /var/ftp/pub

补充未做的关于ftp用户的实验配置(这些是配置文件没有的内容,需要自行添加):
anon_world_readable_only=NO 只能下载全部读的文件, 默认YES
anon_umask=0333 指定匿名上传文件的umask,默认077,注意:0333中的0不能省略
anon_other_write_enable=YES 可删除和修改上传的文件,默认NO

3.4指定匿名用户上传的文件默认的所有者和权限

[root@localhost pub]#vim /etc/vsftpd/vsftpd.conf
 12 anonymous_enable=YES  ##允许上传的前提一定是允许匿名登录
 29 anon_upload_enable=YES  ##原本是默认注释了,为关闭,需要取消注释,注意:文件系统权限
 33 anon_mkdir_write_enable=YES  ##原本是默认注释了,为关闭,需要取消注释
 48 chown_uploads=YES  ##默认是no,这里调整为yes,取消注释
 49 chown_username=xueyin   ##这里是指定将所有的上传文件的属主和属组权限映射为xueyin,取消注释

[root@localhost pub]#systemctl restart vsftpd

补充未添加的测试(这是配置文件中没有的):
chown_upload_mode=0644  ##可以添加匿名用户上传的落地文件属性

3.5系统用户的默认权限查看

/etc/vsftpd/vsftpd.conf
 16 local_enable=YES  ##默认允许linux用户登录
 19 write_enable=YES  ##默认允许linux用户上传文件,与文件夹的权限相配合
 23 local_umask=022   ##默认系统用户上传文件的默认权限对应umask

3.6禁锢系统用户

登录以后的系统用户权限过大,相当于能够看到整个硬盘的内容,并且下载,所有有了系统用户禁锢,就是限制系统用户只能在自己的家目录下活动,不能切换到根下面去

[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
101 chroot_local_user=YES  ##第101行默认关闭,这里取消注释
102 chroot_list_enable=YES  ##第102行默认关闭,这里取消注释
104 chroot_list_file=/etc/vsftpd/chroot_list  ##第104行默认关闭,这里取消注释

[root@localhost vsftpd]#vim chroot_list  ##/etc/vsftpd目录下没有,需要自行添加
lisi

[root@localhost vsftpd]#chmod -R 555 /home  ###这一步非常重要,要不然不在名单的系统用户会一直报错,但是对匿名用户没有影响,使用登录进去的根是服务器的家目录
[root@localhost ~]#systemctl restart vsftpd

补充搭配(黑名单就不做实验了):
当chroot_local_user=YES和chroot_list_enable=YES时,则chroot_list中用户不禁锢,即白名单
当chroot_local_user=NO和chroot_list_enable=YES时, 则chroot_list中用户禁锢,即黑名单

 拓展,这种报错是什么原因?

回答:这是因为没有修改/home家目录的权限,需要有写的权限

[root@localhost opt]#ftp 192.168.20.18
Connected to 192.168.20.18 (192.168.20.18).
220 (vsFTPd 3.0.2)
Name (192.168.20.18:root): xueyin
331 Please specify the password.
Password:
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
Login failed.
421 Service not available, remote server has closed connection

3.7提示信息

 87 ftpd_banner=Welcome to blah FTP service.  ##默认关闭,这是取消注释,将其开启

3.8pam模块与黑白名单结合使用

[root@localhost vsftpd]#vim /etc/vsftpd/vsftpd.conf
101 chroot_local_user=YES
[root@localhost vsftpd]#vim ftpusers
 16 lisi
[root@localhost vsftpd]#vim /etc/pam.d/vsftpd
  3 auth       required     pam_listfile.so item=user sense=deny file=/etc/v    sftpd/ftpusers onerr=succeed
表明以上实验是一个黑名单

改为下面这个配置,就是个白名单,实验就不做了
auth       required     pam_listfile.so item=user sense=allow  file=/etc/vsftpd/ftpusers onerr=succeed

3.9限定匿名用户的最大传输速率(百度云盘下载限速用的类似的原理)

服务端配置:
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
anon_max_rate=10240  ##这是配置文件里面没有的,需要自行添加
local_max_rate=10240000  ##这是配置文件里面没有的,需要自行添加

服务端还需要分别在服务器的家目录和用户的家目录下创建两个一模一样的文件,用于测试
[root@localhost pub]#dd if=/dev/zero of=/home/xueyin/bigfile bs=1M count=100
[root@localhost pub]#dd if=/dev/zero of=/var/ftp/pub/bigfile bs=1M count=100

客户端测试:
[root@localhost opt]#wget ftp://192.168.20.18/pub/bigfile  ##匿名用户
[root@localhost opt]#wget ftp://xueyin:"123456"@192.168.20.18/bigfile  ##本地用户

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

实验五:Java多线程程序设计

一、线程接力 编写一个应用程序,除了主线程外,还有三个线程:first、second和third。first负责模拟一个红色的按钮从坐标(10,60)运动到(100,60);second负责模…

安顿APP3.0全新升级,引领智能穿戴健康革新,专注预警疾病风险

随着人们生活水平的提高和工作压力的增加,心脑血管疾病已经成为现代社会的严重问题,特别是心梗、脑卒中等疾病已经开始夺去年轻人的生命。 据报道,近年来,多位年轻人因心脑血管疾病突发去世,如42岁的知名男演员、30岁的…

【STL】:反向迭代器

朋友们、伙计们,我们又见面了,本期来给大家解读一下有关反向迭代器的模拟实现,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言:从入门到精通…

Web之JavaScript(jQuery)笔记

Web之HTML、CSS、JavaScript 三、JavaScriptJS调试变量自定义函数数据类型及转换运算符优先级内置函数数组事件DOM(Document Object Model 文档对象模型)jQuery Web之HTML笔记 Web之CSS笔记 三、JavaScript JavaScript(简称“JS”)是一种轻量级的面向对…

计算机组成原理-双端口RAM和多模块存储器

文章目录 存取周期总览双端口RAM多体并行存储器低地址交叉编址有多少个存储体合适(体号)多模块存储器(多体存储器)总结实际场景 存取周期 总览 双端口RAM RAM:用于主存或高速缓存,断电数据丢失 多体并行…

AI对开发者职业的影响,保持领先的7 个行动指南

在不断发展的技术领域,人工智能(AI)已经成为一股变革性的力量,重塑了行业,重新定义了我们解决问题的方式。对于开发人员来说,学习AI的决定不仅仅是为了保持相关性,而是在他们的职业生涯中开启一个新的可能性维度。 1.…

HR应用在线人才测评,给企业招聘带来的好处

一、什么是人才测评? 人才测评是指运用一系列的科学方法,对人的基本素质,专业能力,心理健康,性格进行选拔,评价及发展人才的一种科学方法。近十多年,它被广泛运用于国有大型企业的人才招聘和人…

【力扣面试经典150题】(链表)K 个一组翻转链表

题目描述 力扣原文链接 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 你不能只…

C++多线程编程(3):接收线程处理函数的返回值

文章首发于我的个人博客:欢迎大佬们来逛逛 文章目录 处理带返回值的函数asyncpackaged_taskpromise 处理带返回值的函数 有三种方法: asyncpackaged_taskpromise async 第一种方法是使用 async 函数。 步骤: 使用 async 创建线程处理函…

【win32_001】win32命名规、缩写、窗口

整数类型 bool类型 使用注意: 一般bool 的false0;true1 | 2 | …|n false是为0,true是非零 不建议这样用: if (result TRUE) // Wrong! 因为result不一定只返回1(true),当返回2时&#xff0c…

基于未来搜索算法优化概率神经网络PNN的分类预测 - 附代码

基于未来搜索算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于未来搜索算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于未来搜索优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神…

Python开源项目周排行 2023年第38周

#2023年第38周2023年11月19日1easybc用于解析分组加密算法的输入 [EasyDC] 程序,然后根据差分密码分析对分组加密算法进行安全分析。它支持以下功能: EasyBC 的解释器。 基于 SMT 的方法,用于确定各种密码操作的分支数。 S-box 中的差分传播建…

【Linux】:体系结构与进程概念

朋友们、伙计们,我们又见面了,本期来给大家解读一下有关Linux体系结构和进程的知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言:从入…

“释放视频潜力,批量放大视频尺寸,高效提升视频质量“

在视频制作和编辑的过程中,我们经常需要调整视频的尺寸。然而,一个一个地手动调整不仅耗时,还容易出错。为了解决这个问题,现在有一款全新的视频批量剪辑工具,可以帮助你批量将视频尺寸放大,提升工作效率。…

windows排除故障工具RELI、PSR

RELI 在windows10中,如果按某些书上或网上所属,点击开始按钮,然后再搜书欧昂立输入RELI,在开始菜单中可以看到Reliable History(查看可靠性历史记录)蓝色的图标。 可惜,我试验后没能找到。 这…

【接口测试】最细Fiddle抓包辅助接口实战,抓包全过程总结...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、为什么需要抓包…

图像分类(四) 全面解读复现GoogleNet_InceptionV1-V4

论文解读 InceptionV1 前言 论文题目: Going Deeper with Convolutions Googlenet论文原文地址:https://arxiv.org/pdf/1409.4842.pdf 之前看过VGG的论文(VGG精读直达)。当时VGG获得了 2014 ILSVRC 图像分类的第二名,今天来看一下第一名…

矩阵的QR分解

矩阵的QR分解 GramSchmidt 设存在 B { x 1 , x 2 , … , x n } \mathcal{B}\left\{\mathbf{x}_{1},\mathbf{x}_{2},\ldots,\mathbf{x}_{n}\right\} B{x1​,x2​,…,xn​}在施密特正交化过程中 q 1 x 1 ∣ ∣ x 1 ∣ ∣ q_1\frac{x_1}{||x_1||} q1​∣∣x1​∣∣x1​​ q k …

资深测试总结,现在软件测试有未来吗?“你“的底气在哪里?

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、为什么会有 “…

【C刷题】day7

🎥 个人主页:深鱼~🔥收录专栏:【C】每日一练🌄欢迎 👍点赞✍评论⭐收藏 一、选择题 1、以下对C语言函数的有关描述中,正确的有【多选】( ) A: 在C语言中,一…
最新文章