欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux服务篇-虚拟机Centos7.8架设FTP服务器

程序员文章站 2024-03-18 10:56:34
...

一、FTP和VSFTP概述

FTP(File Transfer Protocol: 文件传输协议)作用: Internet 上用来传送文件的协议

VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件。
特点:它是一个安全、高速、稳定的FTP服务器


二、VSFTP 连接类型

控制连接(持续连接) → TCP 21(命令信道) → 用户收发FTP命令
数据连接(按需连接) → TCP 20(数据信道) → 用于上传下载数据



三、VSFTP 工作模式

1.主动连接

  Client 从本机会随机取一个大与1024的非特权端口(这里我们假设端口为:22222),经由TCP三次握手之后与FTP Server 建立命令连接通道,然后Client 就监听在22223端口上,并且通过命令连接通道告知FTP Server“我监听在22223端口上,快来连接我吧!”接着FTP Server 会从自己的数据传输端口(20)连接到客户端22223端口上,接着就开始传输数据啦!
Linux服务篇-虚拟机Centos7.8架设FTP服务器


2.被动连接

  命令连接通道,和数据连接通道,都由客户端主动发起请求所建立的啦…1、客户端会从本机随机取出两个大于1024的非特权端口(n,n+1),经由TCP的三次握手之后,客户端使用第一个端口(33445)主动连接FTP Server的21端口,建立命令连接通道.
  但与主动模式不同的是:
客户端不会主动告诉服务器“我监听在33445端口上快来连接我吧!”而是当客户端需要传送数据的时候就会发送(PASV)并等待服务器响应,服务器通过命令连接通道上通知客户端“我在2088端口上快来连接我吧!”于是客户端就从33446去连接FTP Server 的2088端口,建立数据传输通道。
Linux服务篇-虚拟机Centos7.8架设FTP服务器


四、VSFTP 软件信息

 服务端软件名:vsftpd
 客户端软件名:ftp
 服务名:vsftpd
 端口号:20、21、指定范围内随机端口
 配置文件:/etc/vsftpd/vsftpd.conf


五、登录验证方式

1.匿名登录

 用户账号名称:ftp或anonymous
 用户账号密码:无密码
 工作目录:/var/ftp
 默认权限:默认可下载不可上传,上传权限由两部分组成(主配置文件和文件系统)

2.本地登录

 用户账号名称:本地用户(/etc/passwd)
 用户账号密码:用户密码(/etc/shadow)
 工作目录:登录用户的宿主目录
 权限:最大权限(drwx------)

*3.虚拟用户登录

  1. 创建虚拟用户用来代替本地用户,减少本地用户曝光率
  2. 使用本地用户作为虚拟用户的映射用户,为虚拟用户提供工作目录和权限控制
  3. 能够设置严格的权限(为每一个用户生成单独的配置文件)


六、VSFTP 实验部署

1.实验准备

使用VMware准备2台Centos7的虚拟机:Client客户端,FTP服务器。

2.Client配置

安装ftp-客户端软件

yum -y install ftp

3.FTP服务器配置

安装vsftpd-服务端软件

yum -y install vsftpd

启动vsftpd服务

systemctl start vsftpd

4.测试

1.在Client客户端连接ftp服务器

ftp 192.168.3.100 #该ip为ftp服务器的ip地址

Linux服务篇-虚拟机Centos7.8架设FTP服务器


七、修改相关配置

 打开ftp配置文件

vi /etc/vsftpd/vsftpd.conf
#匿名权限控制:
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/秒)

#本地用户权限控制:
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 更高,即时生效


*八、虚拟账户登录方式



*九、openssl+vsftpd加密验证方式