FTP服务器-vsftpd

article/2025/8/25 13:14:57

FTP服务基础

FTP(File Transfer Protocol,文件传输协议)是典型的C/S结构的应用层协议,需要由服务端软件、客户端软件两个部分共同实现文件传输功能。

FTP连接及传输模式

FTP服务器默认使用TCP协议的20、21端口与客户端进行通信。
20端口用于建立数据连接,并传输文件数据;21端口用于建立控制连接,并传输FTP控制命令
根据FTP服务器在建立数据连接过程中的主、被动关系,FTP数据连接分为主动模式和被动模式:

主动模式:服务器主动发起数据连接,首先由客户端向服务端的21端口建立FTP控制连接,当需要传输数据时,客户端以PORT命令告知服务器“我打开了某端口,你过来连接我”,于是服务器从20端口向客户端的该端口发送请求并建立数据连接。

被动模式:服务器被动等待数据连接,如果客户机所在网络的防火墙禁止主动模式连接,通常会使用被动模式。首先由客户端向服务端的21端口建立FTP控制连接,当需要传输数据时,服务器以PASV命令告知客户端“我打开了某端口,你过来连接我”,于是客户端向服务器的该端口(非20)发送请求并建立数据连接。

客户端与服务器建立好数据连接后,就可以进行文件传输了。在传输文件时,根据是否进行字符切换,分为文本模式和二进制模式:
文本模式:又称为ASCII模式,这种模式在传输文件时使用ASCII标准字符序列,一般只用于纯文本文件的传输。
二进制模式:又称为Binary模式,这种模式不会转换文件中的字符序列,更适合传输程序、图片等非纯文本字符的文件。
大多数FTP客户端工具可以根据文件类型自动选择文件传输模式,而无需用户手工指定

FTP用户类型

使用FTP客户端软件访问服务器时,通常要用到一类特殊的用户帐号,其用户名为ftp或anonymous,提供任意密码(包括空密码)都可以通过服务器的验证,这样的用户称为匿名用户

除了不需要密码验证的匿名用户以外,FTP服务器还可以直接使用本机的系统用户帐号来进行验证,这些用户通常被称为本地用户

搭建FTP服务器

这里我选用centos7+vsftpd来搭建FTP服务

通过yum安装vsftpd

#yum install -y vsftpd

配置匿名访问的FTP服务

修改vsftpd的配置文件

vi /etc/vsftpd/vsftpd.conf

匿名用户的一些配置项:
anonymous_enable=YES
#允许匿名用户登录FTP

anon_root=/var/ftp/pub
#设置匿名用户的登录目录(如需要,需自己添加并修改)

anon_upload_enable=YES
#打开匿名用户的上传权限

anon_mkdir_write_enable=YES
#打开匿名用户创建目录的权限

anon_other_write_enable=YES
#打开匿名用户删除和重命名的权限(如需要,需自己添加)

anon_umask=022
#匿名用户的掩码(如需要,需自己添加,含义:如umask是022,这时创建一个权限为666的文件,文件的实际权限为666-022=644
修改的内容如下
1.允许匿名访问

anonymous_enable=YES

2、允许匿名用户创建目录

anon_mkdir_write_enable=YES

3、允许匿名用户上传文件

anon_upload_enable=YES

修改FTP共享文件夹的权限

默认路径为/var/ftp/ ,其中pub目录专门用来存放用户上传的文件
/var/ftp/的默认权限为755,匿名用户对Linux文件系统来说属于其他用户,虽然vsftpd.conf配置文件中默认

#chmod 777 /var/ftp/

关闭防火墙及Selinux

通常情况下防火墙会将传入连接阻止,解决方法有两种,一是修改防火墙配置,放行21端口,一时关闭防火墙,selinux也是同理,这里我采用后者。

#systemctl stop firewalld
#setenforce 0

启动vsftp服务器

# systemctl start vsftpd

查看端口状态

# netstat -antp | grep vsftpd
tcp6       0      0 :::21           :::*          LISTEN      4744/vsftpd 

客户端访问、验证各项权限

这里我用windows资源管理器来访问
在这里插入图片描述
👌

配置本地用户登录的FTP服务

配置文件vsftpd.conf

常用配置项:

anonymous_enable=no
#不允许匿名用户登入local_enable=YES/NO(YES)
#控制是否允许本地用户登入,YES 为允许本地用户登入,NO为不允许。默认值为YES。local_root=/home/username
#当本地用户登入时,将被更换到定义的目录下。默认值为各用户的家目录。write_enable=YES/NO(YES)
#是否允许登陆用户有写权限。属于全局设置,默认值为YES。local_umask=022
#本地用户新增档案时的umask 值。默认值为077。file_open_mode=0755
#本地用户上传档案后的档案权限,与chmod所使用的数值相同。默认值为0666。chroot_local_user=YES
#用于指定用户列表文件中的用户不允许切换到上级目录。默认值为NO。#用于控制用户访问,NO为不启用该用户访问控制列表userlist_deny=YES/NO
#用于指定用户访问控制列表的含义,YES为黑名单,NO为白名单

这里我修改的配置项:

anonymous_enable=no 不允许匿名访问
userlist_enable=YES 启用用户访问控制列表
userlist_deny=NO 定义用户访问控制列表为白名单
local_root=/var/ftp/ 设置本地用户访问ftp的根目录,不加此选项根目录就是本地用户的家目录

修改/etc/vsftpd/user_list文件

vim /etc/vsftpd/user_list

在这里插入图片描述
将预设的用户名单清空,把我们允许访问的本地用户添加进去

启动服务

与匿名访问一样需要关闭防火墙和selinux。

验证

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


http://chatgpt.dhexx.cn/article/pRKEKOds.shtml

相关文章

ftpvsftpd服务

一. ftp ftp即文件传输,它是INTERNET上仍然常用的最老的网络协议之一,它为系统提供了通过网络与远程服务器传输的简单方法,FTP服务器包的名称为vsftpd 二. 部署ftp服务 1. 安装ftp yum install -y vsftpd #安装vsftpd软…

VSFTPD服务器配置

文章目录 一、实验环境二、实验目的三、实验任务任务一:根据以下要求配置服务器1) 配置FTP匿名用户的主目录为/var/ftp,该账户只能下载,不能上传。2)建立一个名为abc、口令xyz的FTP账户,设置账户具有上传、下载权限。3…

ftpd服务常见配置总结(/etc/vsftpd/vsftpd.conf)

命令端口: listen_port21 注意:该信息默认没有,使用的话,需要用户自己添加。默认是21。 主动模式端口: connect_from_port_20YES 主动模式端口为20(该项配置文件默认已经添加) ftp_data_por…

Linux系统中vsftpd配置及如何添加vsFTPd用户和设置权限

vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。 如果你想在你的Linux/Unix服务器上搭建一个安全、高性能、稳定性好的FTP 服务器,那么vsftpd可能是你的首选应用。vsftpd意思为“very secure FTP daemon(非常安全的FTP…

VSFTPD

首先,下载Metasploitable2-linux,在虚拟机点击文件,然后直接打开。 然后开启此虚拟机,默认用户名和密码都是msfadmin, 登录之后输入ifconfig查看靶机ip 打开kali,打开终端模拟器 输入sudo su,再输入用户密…

vsftp

一、概述 FTP是file Transfer Protocoll文件传输下ieyi,用于Internet上的文件的双向传输。因ftp是明文传输,没有受到保护,所以具有一定危险性。 VSFTP是一个基于GPL发布的类unix系统上使用的FTP服务器软件。为了解决ftp传输安全性问题的&…

vsftpd的使用

简介 vsftpd是 “very secure FTP deamon”的缩写,是一个完全免费,开源的ftp服务器软件。 特点 小巧轻快,安全易用,支持虚拟用户、支持带宽限制等功能。 安装 执行 yum -y install vsftpd 注:在安装前需提前确认是…

vsftpd使用指北

vsftpd使用指北 文章目录 vsftpd使用指北1.安装vsftpd2.登录3.切换本地路径下载命令:get用于下载单个文件:mget用于批量下载:上传命令: FilezillaReference vsftpd 是“very secure FTP daemon”的缩写,是一个完全免费…

linux安装vsftpd

linux安装vsftpd 安装vsftpd作为附件上传和下载服务 文章目录 linux安装vsftpd一、vsftpd是什么?二、使用步骤1.安装2.配置3.可能出现的问题第一种情况:selinux的ftp设置第二种情况:可能是防火墙的原因第三种情况:pam.d设置问题 …

1、vsftpd的简介

1、vsftpd的简介 vsftpd是“very secure TTP daemon”的缩写,是一个完全免费的、开放源代码的ftp服务器软件 2、特点 vsftpd是一款在Linux发行版中最受推崇的ftp服务器程序,小巧轻快,安全易用,支持虚拟用户,支持带宽…

vsftpd基本使用

ftp: 文件传输协议 两类连接: 命令连接:传输命令 数据连接:传输数据 两种模式: 主动模式:PORT 20/tcp连接客户端的命令连接使用的端口向后的第一个可用端口 被动模式:PASV 打开一个随机端口,并…

vsftpd部署流程和常见问题详解

vsftpd部署流程和常见问题详解 ⭐️ 网上关于在云服务器里配置vsftpd的文章鱼龙混杂,没有一篇是可以彻底解决问题的,有些问题虽简单,但也让初学者感到困惑。本文详细说明vsftpd的部署流程和一些常见问题的解决方法,详述用户创建过…

Linux vsFTPd服务详解——vsFTPd基础知识

今天继续给大家介绍Linux运维相关内容,本文主要内容是Linux的vsFTPd服务。 一、vsFTPd服务简介与安装 FTP服务,即File Transfer Protocol、文件传输服务,用于在互联网上提供文件存储和访问服务。有关FTP的原理请参见以下文章:FT…

vsftpd的安装和使用

目录 1、vsftpd的简介... 2 2、特点... 2 3、安装... 2 4、创建虚拟用户... 2 5、vsftpd服务器的配置... 4 6、vsftpd配置文件说明... 7 7、防火墙的配置... 8 8、vsftpd的验证... 9 9、vsftpd的常用命令... 10 10、反复需要验证ftp身份问题解决... 10 1、vsftpd的简…

Number、parseInt和parseFloat的区别

1、Number() 可以把任何类型的数据转换为数值或NaN(not a number),parseInt()和parseFloat()只能把字符串或数值转换为数值; 2、Number()和parseFloat()会有效解析浮点数(如"324.11abc"转为324.11),而parse…

parseFloat()函数的使用

定义: parseFloat() 函数可解析一个字符串,并返回一个浮点数。该函数指定字符串中的首个字符是否是数字。如果是,则对字符串进行解析,直到到达数字的末端为止,然后以数字返回该数字,而不是作为字符串。 语…

Float.parseFloat()的作用

parseFloat()方法用于返回与给定String表示形式相对应的float值 类型转换: string转float

java float.parsefloat_java.lang.Float.parseFloat()方法实例

全屏 java.lang.Float.parseFloat()方法返回一个为指定String表示新的浮点初始化值,由Float类的valueOf方法执行的值。 声明 以下是java.lang.Float.parseFloat()方法的声明public static float parseFloat(String s) throws NumberFormatException 参数s -- 这是要…

从ES规范和引擎细谈 js 中 parseInt 和 parseFloat 的执行机制

从ES规范和引擎细谈 js 中 parseInt 和 parseFloat 的执行机制 parseInt()和parseFloat()这两个常用 API 其实还是有很多“坑”的,以此文统一梳理一下。(本文比较适合常与数字打交道的 jser 或对这两 API 运作感兴趣的同学) (git…

python实现简单的聊天小程序

概要 这是一个使用python实现一个简单的聊天室的功能,里面包含群聊,私聊两种聊天方式.实现的方式是使用套接字编程的一个使用TCP协议 c/s结构的聊天室 实现思路 x01 服务端的建立 首先,在服务端,使用socket进行消息的接受,每接受一个socket的请求,就开启一个新的线程来管理…