Linux搭建配置vsftp+本地用户|虚拟用户创建
前言
最近正在写设计模式的案例结合,由于需要补充spring源码知识,现在正在看spring源码深度解析以结合设计模式创作,估计设计模式这篇需要要写很长一段时间了😅😅~~
工作中由于测试环境服务器到期需要变更服务器,服务环境需要重新搭建,同事搭建vsftp一直有问题,于是自己研究了三天终于搭建成功了(原来以为很简单,但是搭建中才发现各种权限问题,认证问题😅😅),谨此记录整理+归纳总结。
服务器系统:centos7.9 vsftpd版本: version 3.0.2
我的github主页地址: https://xdj68.github.io
vsftpd 官网地址:https://security.appspot.com/vsftpd.html
一、VSFTP简介
FTP 是 File Transfer Protocol(文件传输协议)的英文简称, 用于 Internet 上的控制文件的双向传输。同时,它也是一个应用程序(Application)。 基于不同的操作系统有不同的 FTP 应用程序,而所有这些应用程序都遵守同一种协议以传输文件。
vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX 等系统上面,是一个完全免费的、开放源代码的 ftp 服务器软件,支持很多其他的 FTP 服务器。
vsftpd在千兆以太网上速度可以达到86MB/s,稳定性非常优秀,仅仅采用单机部署方式连续不间断工作24小时传输数据可达2.6TB,平均并发连接为1500用户,峰值可达最大4000用户。安全性非常高,采用了进程分离架构,不同任务进程彼此独立运行,进程均以最小权限运行,使用chroot权限机制,防止客户访问非法共享目录。除此之外,vsftpd 还包括以下特性:
- 基于IP的虚拟服务器
- 支持PAM或 xinetd/tcp_wrappers的认证方式
- 支持两种运行方式:独立和Xinetd
- 虚拟用户结合数据库的用户验证
- 每个用户独立配置文件
- 速率限制
- IPV6支持
- 支持SSL加密传输
FTP是仅基于TCP的服务,不支持UDP。 FTP传输使用2个端口,一个数 据端口和一个命令端口。通常来说这两个端口是21(命令端 口)和20(数据端口)。FTP存在俩种模式:主动模式和被动模式。
- PORT(主动)模式
所谓主动模式,指的是FTP服务器“主动”去连接客户端的数据端口来传输数据,其过程具体来说就是:客户端通过访问服务端的21端口,然后客户端分配一个端口供ftp服务端获取数据,然后服务端通过20端口主动到客户端指定端口获取数据,20为服务器的出向端口
此模式,防火墙只需要开放21端口的对外访问策略
- PASV(被动)模式
所谓被动模式,指的是FTP服务器“被动”等待客户端来连接自己的数据端口,其过程具体是:客户端通过访问服务端的21端口,然后客户端提交PASV命令,让服务端分配一个用于传输数据的端口,此端口范围为vsftpd.conf配置的pasv_min_port-pasv_max_port,然后客户端通过分配的端口上传数据。(注意此模式下的FTP服务器不需要开启tcp 20端口)
此模式,防火墙需要开放21端口的对外访问策略和pasv_min_port - pasv_max_port端口范围内的访问策略