当前位置: 首页 > news >正文

Linux vsftp三种模式的简单配置部署

环境:Debian 6.1.27-1kali1 (2023-05-12)

vsftpd 安装

--查看是否当前系统是否已安装

apt list --installed | grep vsftpd

没有安装的话,就正常安装

apt-get update

apt-get install vsftpd

一、匿名用户模式

分享一些不重要文件,任何都可等到ftp服务器获取文件信息,配合防火墙将访问范围限制在内网

允许匿名用户登陆获取文件

--修改配置文件,允许匿名用户登陆

(修改配置之前,建议将原始默认配置文件备份,便于以后配置其他ftp服务器使用

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

误删配置文件,可以通过以下命令恢复

sudo apt-get clean
sudo apt-get update
sudo apt-get install --reinstall vsftpd

sudo apt-get purge vsftpd
sudo apt-get install vsftpd )

vi /etc/vsftpd.conf

anonymous_enable=YES    --修改为YES允许匿名用户登陆

anon_root=/var/ftp   --配置需要分享的ftp根目录

--配置修改完后开启vsftpd服务

systemctl start vsftpd

--检查

netstat -nltp | grep vsftpd

--同一局域网下,这里就可以用window10系统去下载文件了,打开浏览器,输入ftp://开启ftp服务器的ip地址

--若允许匿名用户在ftp服务器目录上写入或者上传文件,可以更改如下配置

write_enable=YES

anon_upload_enable=YES

anon_mkdir_write_enable=YES

二、本地用户模式

通过Linux本地账户密码信息进行登陆认证,比匿名用户模式更加安全,有一定的风险:攻击者通过ftp服务器漏洞获取到用户账户信息,即可登陆服务器进行控制。

--修改配置文件

vi /etc/vsftpd.conf

anonymous_enable=NO        --关闭匿名用户登陆

local_enable=YES        --允许系统用户登陆

write_enable=YES        --允许执行修改文件系统的命令

local_mask=022        --采用022作为本地用户新增文件的默认文件权限

(文件默认开放所有全部权限666,需要减少的权限022,则默认文件权限为-rw-r--r--)

--创建一个新系统用户用于实践

adduser admin 

(注意这里不要使用useradd无参数创建一个三无用户,无法登陆,使用参数adduser命令按提示创建新用户简单粗暴)

--使用admin用户连接ftp服务器创建一个test文件夹

--使用root用户登陆ftp服务器,发现无法登陆 

 博主在Debian 6.1.27-1kali1 (2023-05-12) 安装的vsftpd/kali-rolling 3.0.3-13+b2 amd64在/etc目录下没有vsftpd目录,自然也没有vsftpd.user_list,而vsftp.conf文件直接在/etc下,同样在/etc目录下找到ftpusers文件,该文件的所有用户不允许登陆ftp。

--将ftpusers文件里的root用户注释掉,重新登陆成功

tips:root用户从限制文件里移除会增加系统被入侵的风险,这里测试完直接恢复。

 三、虚拟用户模式

ftp服务单独提供用户数据库文件,所有非匿名用户均被视为访客,并被映射成一个特定的用户。通过虚拟用户名以及口令进行登陆,即使用户名被破解也无法登陆到主机,相较前两种模式更为安全,同样配置起来也较为复杂。

1>新建虚拟用户名数据库文件

cd /etc

cat >>login_user <<EOF       
heredoc> xiongda
heredoc> qwerty
heredoc> xionger
heredoc> 123456
heredoc> EOF

--通过db工具将特定格式文件文件转换成数据库文件

db_load -T -t hash -f /etc/login_user /etc/login_user.db

--降权

chmod 600 login_user.db

ls -l /etc/login_user.db

--删除源文本文件

rm /etc/login_user

2>配置PAM验证(动态加载模块,可按需求动态对验证内容进行变更,配置文件在/etc/pam.d/vsftpd)

vi /etc/pam.d/vsftpd

前面注释掉,末尾添加两行

auth required pam_userdb.so db=/etc/login_user

account required pam_userdb.so db=/etc/login_user

3>将虚拟用户与本地用户映射

useradd  ftp_guest        --新增一个本地用户

chmod -Rdf 755 /home/ftp_guest       --修改该用户主目录权限

vi /etc/vsftpd/conf

guest_enable=YES

guest_username=ftp_guest         --所有虚拟用户映射到该访客账户

同时修改其他配置:

anonymous_enable=NO

local_enable=YES

chroot_local_user=YES        --将各自虚拟用户限制各自根目录下

allow_writeable_chroot=YES

pam_service_name=vsftpd

user_config_dir=/etc/vsftp_user_conf        --自定义用户配置文件夹

4>给不同用户设置不同的目录和权限

(这里给xiongda只读权限,给xionger上传文件和建立目录权限)

cd /home/ftp_quest

mkdir xiongda xionger

chown ftp_guest:ftp_guest xiongda xionger

cd /etc

mkdir vsftp_user_conf         --上面配置的自定义配置文件

cd vsftp_user_conf

cat >>xiongda<<EOF

local_root=/home/ftp_guest/xiongda

EOF

----------------------

cat >>xionger<<EOF                       
write_enable=YES
anon_upload_enable=YES        --文件上传权限
anon_mkdir_write_enable=YES        --目录创建权限
local_root=/home/ftp_guest/xionger
EOF

重启ftp服务器

systemctl restart vsftpd

xiongda用户无法创建目录

xionger用户可以创建目录 

 

相关文章:

Linux vsftp三种模式的简单配置部署

环境&#xff1a;Debian 6.1.27-1kali1 (2023-05-12) vsftpd 安装 --查看是否当前系统是否已安装 apt list --installed | grep vsftpd 没有安装的话&#xff0c;就正常安装 apt-get update apt-get install vsftpd 一、匿名用户模式 分享一些不重要文件&#xff0c;任…...

6.1.tensorRT高级(1)-概述

目录 前言1. tensorRT高级概述总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程&#xff0c;之前有看过一遍&#xff0c;但是没有做笔记&#xff0c;很多东西也忘了。这次重新撸一遍&#xff0c;顺便记记笔记。 本次课程学习 tensorRT 高级-概述 课程大纲可看下面的思维…...

【Python】将M4A\AAC录音文件转换为MP3文件

文章目录 m4aaac 基础环境&#xff1a; sudo apt-get install ffmpegm4a 要将M4A文件转换为MP3文件&#xff0c;你可以使用Python中的第三方库pydub。pydub使得音频处理变得非常简单。在开始之前&#xff0c;请确保你已经安装了pydub库&#xff0c;如果没有&#xff0c;可以通…...

个性新颖纯css手风琴效果选项卡

当涉及到个性新颖的纯CSS手风琴效果选项卡时&#xff0c;有多种方法可以实现。以下是三种可能的方法&#xff1a; 三种方法实现 方法一&#xff1a;使用:target伪类和CSS过渡效果 <style>.accordion {width: 300px;}.accordion-item {overflow: hidden;max-height: 0;…...

js的sendBeacon方法介绍

js的sendBeacon方法介绍 Beacon API是一种轻量级且有效的将网页活动记录到服务器的方法。它是一个 JavaScript API&#xff0c;可帮助开发人员将少量数据&#xff08;例如分析或跟踪信息、调试或诊断数据&#xff09;从浏览器发送到服务器。 在本文中&#xff0c;我们将介绍B…...

【Tomcat---1】IDEA控制台tomcat日志输出乱码解决

一、修改IDEA的文件编码配置为UTF-8 二、修改IDEA的vmoptions文件&#xff0c;添加-Dfile.encodingUTF-8 到Tomcat目录/conf文件夹修改logging.properties 重启idea即可。采用统一的编码...

Redis学习路线(2)—— Redis的数据结构

一、Redis的数据结构 Redis是一个Key-Value的数据库&#xff0c;key一般是String类型&#xff0c;不过Value的类型却有很多&#xff1a; String&#xff1a; Hello WorldHash&#xff1a; {name: "jack", age: 21}List&#xff1a; [A -> B -> C -> C]Set…...

【Redis深度专题】「核心技术提升」探究Redis服务启动的过程机制的技术原理和流程分析的指南(持久化功能分析)

探究Redis服务启动的过程机制的技术原理和流程分析的指南&#xff08;持久化功能分析&#xff09; Redis提供的持久化机制Redis持久化如何工作Redis持久化的故障分析持久化频率操作分析数据库多久调用一次write&#xff0c;将数据写入内核缓冲区&#xff1f;内核多久将系统缓冲…...

IT管理者年过50后何去何从

最近面试了一位前职为IT技术及管理专家&#xff0c;知名院校硕士毕业&#xff0c;唯一不同的是&#xff0c;他是一名已过50岁的IT技术及管理者。一直知道过了50岁&#xff0c;我们估计会有很大的坎&#xff0c;但是那时候从未曾想过连我们保险公司都会因为年龄而拒绝这样优秀的…...

C++字符串题基础(进阶请看下一个文章)

打印小写字母表 #include<iostream> #include<string.h> #include<iomanip> #include<stdio.h> #include<cmath> using namespace std; int main() {char na;for(int i1;i<13;i){cout<<n;n;}cout<<endl;for(int i1;i<13;i){c…...

webpack如何实现热更新?

webpack如何实现热更新&#xff1f; 要使用 Webpack 实现热更新&#xff0c;可以按照以下步骤进行配置&#xff1a; 1.在项目中安装 Webpack 和相关的开发依赖&#xff1a; npm install webpack webpack-cli webpack-dev-server --save-dev2.创建一个名为 webpack.dev.js 的…...

REST API的基础:HTTP

在本文中&#xff0c;我们将深入探讨万维网数据通信的基础 - HTTP。 什么是超文本&#xff1f; HTTP&#xff08;超文本传输协议&#xff09;的命名源于“超文本”。 那么&#xff0c;什么是超文本&#xff1f; 想象一下由超链接组成的文本、图像和视频的混合物。这些链接充当我…...

基于Docker-compose创建LNMP环境并运行Wordpress网站平台

基于Docker-compose创建LNMP环境并运行Wordpress网站平台 1.Docker-Compose概述2.YAML文件格式及编写注意事项3.Docker-Compose配置常用字段4.Docker Compose常用命令5.使用Docker-compose创建LNMP环境&#xff0c;并运行Wordpress网站平台1. Docker Compose 环境安装下载安装查…...

【雕爷学编程】MicroPython动手做(02)——尝试搭建K210开发板的IDE环境3

4、下载MaixPy IDE&#xff0c;MaixPy 使用Micropython 脚本语法&#xff0c;所以不像 C语言 一样需要编译&#xff0c;要使用MaixPy IDE , 开发板固件必须是V0.3.1 版本以上&#xff08;这里使用V0.5.0&#xff09;, 否则MaixPy IDE上会连接不上&#xff0c; 使用前尽量检查固…...

Java语言跨平台执行的核心JVM

本文重点 在前面的课程中,我们介绍了java中的三层JDK->JRE->JVM,其中JVM称为Java的虚拟机,只是用来执行的,JRE是运行环境,要想在操作系统中运行,除了JVM还需要类库,JDK=JRE+开发的包和工具。本文就将介绍一下JVM究竟为何物? JVM 有的人会认为JVM是java中的东西…...

家政服务小程序制作攻略揭秘

想要打造一个家政服务小程序&#xff0c;但是又不懂编程和设计&#xff1f;不用担心&#xff01;下面将为你详细介绍如何利用第三方平台&#xff0c;从零开始打造一个家政服务小程序。 首先&#xff0c;你需要找到一个适合的第三方平台&#xff0c;例如乔拓云网。在乔拓云网的【…...

2023-07-29力扣每日一题

链接&#xff1a; 141. 环形链表 题意&#xff1a; 求链表是否有环 解&#xff1a; 刚好昨天做完的初级算法链表题&#xff0c;翻转和暴力 实际代码&#xff1a; #include<iostream> using namespace std; struct ListNode {int val;ListNode *next;ListNode() : …...

Dual pyramid GAN for semantic image synthesis

为了解决在图像合成时候小物体容易消失&#xff0c;大物体经常作为块的拼接来生成的。本文提出DP-GAN在所有尺度下共同学习空间自适应归一化模块的条件。这样尺度信息就会被双向使用&#xff0c;他统一了不同尺度的监督。(重点看图和代码) SPADE模块解释 GAN在生成包含许多不同…...

【Linux】更换jdk版本

目录 一、前言二、查看jdk版本号1、项目中的版本号&#xff08;pom.xml&#xff09;2、服务器中的版本号 三、更换jdk版本1、创建java文件夹2、下载并解压JDK安装包①、下载jdk安装包②、移动到创建好的/usr/local/java路径下③、解压jdk安装包 四、删除原来的jdk版本1、删除原…...

web-暴力破解密码

Burte Force&#xff08;暴力破解&#xff09;概述 暴力破解”是一攻击具手段&#xff0c;在web攻击中&#xff0c;一般会使用这种手段对应用系统的认证信息进行获取。 其过程就是使用大量的认证信息在认证接口进行尝试登录&#xff0c;直到得到正确的结果。 为了提高效率&…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业&#xff0c;项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升&#xff0c;传统的管理模式已经难以满足现代工程的需求。过去&#xff0c;许多企业依赖手工记录、口头沟通和分散的信息管理&#xff0c;导致效率低下、成本失控、风险频发。例如&#…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

MySQL:分区的基本使用

目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区&#xff08;Partitioning&#xff09;是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分&#xff08;分区&#xff09;可以独立存储、管理和优化&#xff0c;…...

手机平板能效生态设计指令EU 2023/1670标准解读

手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读&#xff0c;综合法规核心要求、最新修正及企业合规要点&#xff1a; 一、法规背景与目标 生效与强制时间 发布于2023年8月31日&#xff08;OJ公报&…...

掌握 HTTP 请求:理解 cURL GET 语法

cURL 是一个强大的命令行工具&#xff0c;用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中&#xff0c;cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...

nnUNet V2修改网络——暴力替换网络为UNet++

更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...

热门Chrome扩展程序存在明文传输风险,用户隐私安全受威胁

赛门铁克威胁猎手团队最新报告披露&#xff0c;数款拥有数百万活跃用户的Chrome扩展程序正在通过未加密的HTTP连接静默泄露用户敏感数据&#xff0c;严重威胁用户隐私安全。 知名扩展程序存在明文传输风险 尽管宣称提供安全浏览、数据分析或便捷界面等功能&#xff0c;但SEMR…...