Linux服务篇-虚拟机Centos7.8架设FTP服务器
Linux服务篇-虚拟机Centos7.8架设FTP服务器
一、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端口上,接着就开始传输数据啦!
2.被动连接
命令连接通道,和数据连接通道,都由客户端主动发起请求所建立的啦…1、客户端会从本机随机取出两个大于1024的非特权端口(n,n+1),经由TCP的三次握手之后,客户端使用第一个端口(33445)主动连接FTP Server的21端口,建立命令连接通道.
但与主动模式不同的是:
客户端不会主动告诉服务器“我监听在33445端口上快来连接我吧!”而是当客户端需要传送数据的时候就会发送(PASV)并等待服务器响应,服务器通过命令连接通道上通知客户端“我在2088端口上快来连接我吧!”于是客户端就从33446去连接FTP Server 的2088端口,建立数据传输通道。
四、VSFTP 软件信息
服务端软件名:vsftpd
客户端软件名:ftp
服务名:vsftpd
端口号:20、21、指定范围内随机端口
配置文件:/etc/vsftpd/vsftpd.conf
五、登录验证方式
1.匿名登录
用户账号名称:ftp或anonymous
用户账号密码:无密码
工作目录:/var/ftp
默认权限:默认可下载不可上传,上传权限由两部分组成(主配置文件和文件系统)
2.本地登录
用户账号名称:本地用户(/etc/passwd)
用户账号密码:用户密码(/etc/shadow)
工作目录:登录用户的宿主目录
权限:最大权限(drwx------)
*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地址
七、修改相关配置
打开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加密验证方式
上一篇: [剑指-Offer] 36. 二叉搜索树与双向链表(中序遍历、递归)
下一篇: RabbitMQ入门