搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
Guff_9hys
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
Windows爆出核彈級漏洞 Win7-Win11無一倖免:微軟緊急發布更新_cve-2024-30078
2
Linux系统的由来、特点、以及发行版本_linux的起源功能特性是什么
3
值得收藏!2023 年,你应该知道的所有机器学习算法~
4
Java设计模式之《适配器模式》_java 适配器模式
5
【目标跟踪】|相关滤波和孪生网络目标跟踪综述(Martin 团队)_相关滤波标跟踪准确率可视化分析
6
三子棋游戏装置设计报告
7
Vision Pro中VR游戏空间边界为3×3米圆形_vr空间 描述 显示
8
ChatGPT的接口在哪_csdn的chatgpt在哪
9
【2023-03-16】某云片滑块验证码分析-滑动验证码
10
Hyperledger Fabric 环境配置之docker和docker-compose指定版本的安装_hyperledger fabric( 配置完成后就可以通过docker-compose启动项目
当前位置:
article
> 正文
基本网络服务管理-VSFTP_vsftpd ip段限速
作者:Guff_9hys | 2024-08-23 09:05:51
赞
踩
vsftpd ip段限速
1. VSFTP概述
FTP 是 File Transfer Protocol(文件传输协议)的英文简称,用于 Internet上的文件的双向
传输。使用 FTP 来传输时,是具有一定程度的危险性, 因为数据在因特网上面是完全没有受到保护
的
明文传输
方式!
VSFTP是一个基于 GPL发布的类 Unix系统上使用的 FTP服务器软件,它的全称是 Very Secure FTP,从名称定义上基本可以看出,这是为了解决 ftp传输安全性问题的。
1.1
安全特性
1. vsftp程序的运行者一般是普通用户,降低了相对应进程的权限,提高了安全性
2. 任何需要执行较高权限的指令都需要上层程序许可
3. ftp所需要使用的绝大多数命令都被整合到了 vsftp中,基本不需要系统额外提供命令
4. 拥有 chroot功能,可以改变用户的根目录,限制用户只能在自己的家目录
2. VSFTP连接类型
控制连接(持续连接) → TCP 21(命令信道)→ 用户收发FTP命令
数据连接(按需连接) →
TCP 20(数据信道
)
→
用于上传下载数据
3. VSFTP工作模式
Port模式
FTP 客户端首先和服务器的 TCP 21端口建立连接,用来发送命令,客户端需要接收数据的时候在这个通道上发
送 PORT命令。PORT命令包含了客户端用什么端口接收数
据。在传送数据的时候,服务器端通过自己的 TCP 20端
口连接至客户端的指定端口发送数据。FTP server必须
和客户端建立一个新的连接用来传送数据。
Passive
模式
FTP 客户端首先和服务器的 TCP 21 端口建立连接,用来建立控制通道发送命令,但建立连接后客户端发送 Pasv命令。
服务器收到 Pasv命令后,打开一个临时端口(端口大于 1023
小于 65535)并且通知客户端在这个端口上传送数据的请
求,客户端连接 FTP服务器的临时端口,然后 FTP服务器将
通过这个端口传输数据。
注意:由于VSFTP的被动模式是随机端口进行数据传输,所以在设置防火墙时需要刻意放行。
4. VSFTP传输模式
Binary模式:不对数据进行任何处理,适合进行可执行文件、压缩文件、图片等
ASCII模式:进行文本传输时,自动适应目标操作系统的结束符,如回车符等
Linux的红帽发行版中VSFTP默认采用的是Binary模式,这样能保证绝大多数文件传输后能正常使用
切换方式:在ftp>提示符下输入ascii即转换到ACSII方式,输入bin,即转换到Binary方式。
5. VSFTP软件信息
服务端软件名:vsftpd
客户端软件名:ftp
服务名:vsftpd
端口号:20、21、指定范围内随机端口
配置文件:/etc/vsftpd/vsftpd.conf
6. 登录验证方式
匿名用户验证
:
用户账号名称:ftp或anonymous
用户账号密码:无密码
工作目录:/var/ftp
默认权限:默认可下载不可上传,上传权限由两部分组成(主配置文件和文件系统)
本地用户验证:
用户账号名称:本地用户(/etc/passwd)
用户账号密码:用户密码(/etc/shadow)
工作目录:登录用户的宿主目录
权限:最大权限(drwx------)
虚拟(
virtual
)用户验证:
1.
创建虚拟用户用来代替本地用户,减少本地用户曝光率
2.使用本地用户作为虚拟用户的映射用户,为虚拟用户提供工作目录和权限控制
3.能够设置严格的权限(为每一个用户生成单独的配置文件)
7. VSFTP实验部署
注:先关闭服务器和客户机上的防火墙和 SELinux
7.1.
匿名用户验证实验:
匿名权限控制:
anonymous_enable=YES
anon_umask=022
#
启用匿名访问
#
匿名用户所上传文件的权限掩码
anon_root=/var/ftp
#
匿名用户的
FTP
根目录
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_max_rate=0
#
允许上传文件
#
允许创建目录
#
开放其他写入权
(
删除、覆盖、重命名
)
#
限制最大传输速率(
0
为不限速,单位:
bytes/
秒)
实验需求与流程:
注意:在客户端登录后,默认情况下是可以下载的,但不能上传
1.
实现可以上传
a. anon_upload_enable=YES
b. 在/var/ftp/下创建上传目录
c. 修改上传目录的权限或所有者,让匿名用户有写入权限
2.实现创建目录和文件其他操作
anon_mkdir_write_enable=YES
#允许创建目录
anon_other_write_enable=YES
#删除文件、文件改名、文件覆盖
3.用户进入某个文件夹时,弹出相应的说明
a. 在对应目录下创建 .message 文件,并写入相应内容
b. 确认dirmessage_enable=YES是否启用
c. 尝试却换目录查看效果(同一次登录仅提示一次)
4.实现上传的文件可下载
默认情况下开放上传权限后,上传的文件是无法被下载的,因为文件的其他人位置没有r权限
设置anon_umask=022,可以让上传的文件其他人位置拥有r权限,然后才能被其他人下载
7.2.
本地用户验证实验:
本地用户权限控制:
local_enable=YES
#
是否启用本地系统用户
local_umask=022
#
本地用户所上传文件的权限掩码
local_root=/var/ftp
#
设置本地用户的
FTP
根目录
chroot_local_user=YES
#
是否将用户禁锢在主目录
local_max_rate=0
#
限制最大传输速率
ftpd_banner=Welcome to blah FTP service
#
用户登录时显示的欢迎信息
userlist_enable=YES & userlist_deny=YES
#
禁止
/etc/vsftpd/user_list
文件中出现的用户名登录
FTP
userlist_enable=YES & userlist_deny=NO
#
仅允许
/etc/vsftpd/user_list
文件中出现的用户名登录
FTP
配置文件:ftpusers
#
禁止
/etc/vsftpd/ftpusers
文件中出现的用户名登录
FTP,
权限比
user_list
更高,即时生效
实验需求与流程:
1. 服务端需要创建用户并设置密码(所创建的用户,不需要登录操作系统,仅用来登录VSFTP)
useradd -s /sbin/nologin username
2. 将所有用户禁锢在自己的家目录下
注:默认没有禁锢用户时,客户端登录后可以随意切换目录,查看文件所在位置和文件名
chroot_local_user=YES
#开启用户家目录限制,限制所有用户不能随便切换目录
3. 将部分用户禁锢在自己的家目录下
chroot_list_enable=YES
#开启白名单功能,允许白名单中的用户随意切换目录
chroot_list_file=/etc/vsftpd/chroot_list
#白名单文件所在位置(需自己创建)
4. 配置文件:/etc/vsftpd/ftpusers
所有写入此文件内的用户名都不允许登录ftp,立刻生效。
5. 修改被动模式数据传输使用端口
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=35000
7.3.
虚拟用户验证实验:
1. 建立 FTP的虚拟用户的用户数据库文件(在/etc/vsftpd)
vim vsftpd.user
注:该文件名可以随便定义,文件内容格式:奇数行用户,偶数行密码
db_load -T -t hash -f vsftpd.user vsftpd.db
#将用户密码的存放文本转化为数据库类型,并使用 hash加密
chmod 600 vsftpd.db
#修改文件权限为 600,保证其安全性
2.创建 FTP虚拟用户的映射用户,并制定其用户家目录
useradd -d
/var/ftproot
-s
/sbin/nologin virtual
#创建 virtual 用户作为 ftp的虚拟用户的映射用户
3.建立支持虚拟用户的 PAM认证文件,添加虚拟用户支持
cp –a /etc/pam.d/vsftpd /etc/pam.d/vsftpd.pam
#使用模板生成自己的认证配置文件,方便一会调用
编辑新生成的文件 vsftpd.pam (
清空原来内容,添加下列两行
)
auth required
pam_userdb.so
db=/etc/vsftpd/vsftpd
account required pam_userdb.so db=/etc/vsftpd/vsftpd
在 vsftpd.conf文件中添加支持配置
修改:
pam_service_name=vsftpd.pam
添加:
guest_enable=YES
guest_username=virtual
user_config_dir=/etc/vsftpd/dir
4.为虚拟用户建立独立的配置文件,启动服务并测试
注:做虚拟用户配置文件设置时,将主配置文件中自定义的匿名用户相关设置注释掉。
用户可以上传:
anon_upload_enable=YES
#允许上传文件
用户可以创建目录或文件:
anon_mkdir_write_enable=YES
#允许创建目录
用户可以修改文件名:
anon_upload_enable=YES
#允许上传文件(为了覆盖开启的)
anon_other_write_enable=YES
#允许重名和删除文件、覆盖
注:给映射用户的家目录 设置 o+r 让虚拟用户有读权限。
7.4. openssl+vsftpd
加密验证方式:
拓展:使用tcpdump 工具进行指定端口抓包,抓取ftp登录过程中的数据包
tcpdump -i eth0 -nn -X -vv tcp port 21 and ip host 来源ip
-i
#interface:指定tcpdump需要监听的接口
-n
#对地址以数字方式显式,否则显式为主机名
-nn
#除了-n的作用外,还把端口显示为数值,否则显示端口服务名
-X
#输出包的头部数据,会以16进制和ASCII两种方式同时输出
-vv
#产生更详细的输出
1.查看是否安装了 openssl
rpm -q openssl
2.查看 vsftpd 是否支持 openssl
ldd /usr/sbin/vsftpd | grep libssl
3. 生成加密信息的秘钥和证书文件
位置:/etc/ssl/certs/
a. openssl genrsa -out vsftpd.key 1024
#建立服务器私钥,生成 RSA密钥
b. openssl req -new -key vsftpd.key -out vsftpd.csr
#需要依次输入国家,地区,城市,组织,组织单位,Email等信息。最重要的是有一个 common name,
可以写你的名字或者域名。如果为了 https申请,这个必须和域名吻合,否则会引发浏览器警报。
生成的 csr文件交给 CA签名后形成服务端自己的证书
c. openssl x509 -req -days 365 -sha256 -in vsftpd.csr -signkey vsftpd.key -out
vsftpd.crt
#使用 CA服务器签发证书,设置证书的有效期等信息
注意 1:生成完秘钥和证书文件后,将本目录{/etc/ssl/certs/}的权限修改为 500.
注意 2:在实验环境中可以用命令生成测试,在生产环境中必须要在 https证书厂商注册(否则浏览器不识别)
4. 修改主配置文件/etc/vsftpd/vsftpd.conf
ssl_enable=YES
#启用 ssl认证
ssl_tlsv1=YES
ssl_sslv2=YES
ssl_sslv3=YES
#开启 tlsv1、sslv2、sslv3都支持
allow_anon_ssl=YES
#允许匿名用户{虚拟用户}
force_anon_logins_ssl=YES
force_anon_data_ssl=YES
#匿名登录和传输时强制使用 ssl
force_local_logins_ssl=YES
force_local_data_ssl=YES
#本地登录和传输时强制使用 ssl
rsa_cert_file=/etc/ssl/certs/vsftpd.crt
#rsa格式的证书
rsa_private_key_file=/etc/ssl/certs/vsftpd.key
#rsa格式的密钥
注:密钥文件要在配置文件中单独声明(写入配置文件时,注释要单独一行,否则会报错)
5. 重启服务
service vsftpd restart
6. 测试(使用第三方客户端连接)
FileZilla-FTP(第三方客户端工具)
连接测试时选择:
服务器类型:显式 TLS/SSL
登录类型: 一般或匿名
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/Guff_9hys/article/detail/1020296
推荐阅读
article
脉冲
电子
围栏
系统
介绍_网络型
脉冲
电子
围栏
系统
介绍...
原标题:网络型
脉冲
电子
围栏
系统
介绍在传统周界防范的应用中,
脉冲
电子
围栏
系统
主要以485总线的方式进行信号传输,采取这种方...
赞
踩
article
射频
知识总结
_
射频
后
端
...
射频
知识总结
_
射频
后
端
射频
后
端
文章目录 无线系统框架...
赞
踩
article
Elasticsearch
+
Search
UI
构建
一个文件
搜索引擎
...
无论是用于
构建
搜索引擎
、日志分析、实时监控还是其他需要高效搜索和分析的场景,Elastic
Search
都能提供强大的技术...
赞
踩
article
MySQL
8.
0
就地
升级
到MySQL
8.4
.
0
_
mysql
8.
0
8.4
...
升级
需求:将
8.
0
.35
升级
到
8.4
.
0
,以In-Place方式直接
升级
到MySQL
8.4
.
0
。数据库版本操作系统版本原...
赞
踩
article
基于大
数据
爬虫+
Hadoop
+
数据
可视化
+
SpringBoo
的
电影
数据
分析
与
可视化
平台设计和实现(源...
电影
数据
的
分析
与
可视化
系统是一个综合性平台,旨在为管理员和前台用户提供一个直观、易操作的界面来管理和浏览
电影
相关信息。管...
赞
踩
article
【2
02
4-
02
-26】某快手
滑块
流程
分析
-
滑动
验证码
...
本文详细
分析
了快手
滑块
验证码
的工作
流程
,包括参数verifyParam和c的解析,
滑动
轨迹的生成与优化,以及captch...
赞
踩
article
微信
小
程序
全局
存储
信息_
微信
小
程序
保存全局参数...
本文介绍了如何在
微信
小
程序
中
存储
和获取用户的登录id和名称,通过wx.setStorage进行本地
存储
,并在App.js...
赞
踩
article
超详细教程 | Hands-On 基于
Flagchip
FC4150
MCAL
-
ADC
读取
电位器
...
本文将详细介绍如何使用 EB 工具配置
Flagchip
FC4150
MCAL
ADC
读取
电位器
值。并重点强调了配置...
赞
踩
article
什么是
单例
模式
和
多例
模式
...
单例
模式
的关键有两点:1、构造方法为私有,这样外界就不能随意调用。2、get的方法为静态,由类直接调用
多例
模式
(Mult...
赞
踩
article
C++
二叉树
剪枝
_c++
剪枝
...
函数的返回值:根据题目的意思我们要将那些全零的子树全部在树中删除,那么我们最好是返回一个。首先我们应该想到我们去递归解答...
赞
踩
article
git
分支
规范...
本文介绍了Git的
分支
类型和命名规则,包括master、develop、feature、bugfix、release和h...
赞
踩
article
脉冲
电子
围栏
系统
介绍
_
脉冲
电子
围栏
风险辨识及管控
措施
...
本文详细分析了
脉冲
电子
围栏
可能带来的火灾和触电风险,包括设备选型不当、植物生长、间距不足等问题。同时,提出了相应的管控措...
赞
踩
article
Django
REST
framework
框架,
前后
端分离_
django
前后
端分离...
Django
REST
framework
框架,
前后
端分离_
django
前后
端分离
django
前后
端分离 ...
赞
踩
article
Linux
|
项目
自动化
构建工具 -
make
/
Makefile
_在
当前目录
下编写
一个
程序myfo...
文章介绍了
Linux
下
项目
自动化
构建工具
make
和
Makefile
,包括它们的背景、工作原理、依赖关系、依赖方法、
项目
清...
赞
踩
article
C++
入门学习
:
类
与
对象
:
基础篇_
类
名&
对象
名是什么意思...
类
与
对象
理解
:
(作用上)
类
就是实体在计算机世界的存在,数据表示实体的属性,实体的行为则表示为数据的处理函数,只要是同
类
型...
赞
踩
article
基于
数据
可视化
+
SpringBoot
+
Vue
的
电影
数据
的
分析与
可视化
系统
设计和实现(源码+论文+部署...
电影
数据
的
分析与
可视化
系统
是一个综合性平台,旨在为管理员和前台用户提供一个直观、易操作
的
界面来管理和浏览
电影
相关信息。管...
赞
踩
article
814
.
二叉树
剪枝
(
二叉树
+
遍历
)_
二叉树
遍历
剪枝
...
这是一篇关于
814
题目的博客,探讨如何在
二叉树
中删除所有节点值为0的子树。文章介绍了利用递归和后序
遍历
来解决此问题的思路...
赞
踩
article
希捷
硬盘
怎么
恢复
数据
? 5 个
免费
希捷
数据
恢复
软件
_
希捷
硬盘
修复工具...
它具有独特的功能,可以扫描损坏的
硬盘
驱动器并查找所有可
恢复
的文件。如上所述,
数据
丢失可能发生在任何
硬盘
驱动器上,包括
希捷
...
赞
踩
article
集合及
数据结构
第三节
—
—
—
—
包装
类
和简单认识
泛型
...
包装
类
和简单认识
泛型
1. 基本数据
类
型和对应的
包装
类
2. 装箱和拆箱3.
泛型
4.
泛型
类
的使用5. 裸
类
型(Raw T...
赞
踩
article
【
Python
】
Pydantic
:
快速
上手...
Pydantic
是一个用于数据验证和设置管理的
Python
库,基于
Python
类型提示构建。它通过创建数据模型...
赞
踩
相关标签
脉冲电子围栏系统介绍
射频
搜索引擎
elasticsearch
adb
android
信息可视化
spring boot
vue.js
电影数据的分析与可视化系统
大数据爬虫
Java
毕业设计
python
webpack
微信小程序
小程序
单片机
嵌入式硬件
大大通
笔记
代码
经验分享
架构
spring