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


FTP文件传输服务_第1张图片

FTP文件传输服务_第2张图片

FTP文件传输服务_第3张图片FTP文件传输服务_第4张图片


image.pngFTP文件传输服务_第5张图片

FTP文件传输服务_第6张图片

ftp用户类型:

1、匿名用户:ftp、anonymous
2、本地用户:就是本机的系统用户,useradd创建。
3、虚拟用户:不直接使用系统用户账号。


安装ftp服务:
yum install vsftpd -y
ftp的主配置文件:(vi)/etc/vsftpd/vsftpd.conf
ftp的根目录:/var/ftp  默认共享目录


systemctl start vsftpd  //启动服务

image.png



ftp三种访问方式:
1、浏览器:ftp://ip地址
2、我的电脑界面,最上方空白处输ftp://IP地址

FTP文件传输服务_第7张图片 
3、cmd——ftp  ip地址

FTP文件传输服务_第8张图片

FTP文件传输服务_第9张图片

注:ftp默认有下载权限




vsftpd服务默认开启匿名用户模式
需要做的就是开放匿名用户的上传、下载文件权限,以及让匿名用户去创建、删除、更改文件权限。
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          //限制最大传输速度(字节/秒)

注:ftp目录系统本身的权限大于ftp配置文件设置的权限。




---

//不管匿名、本地或者虚拟用户,若要允许上传文件,必须启用  

FTP文件传输服务_第10张图片

image.png

---

允许创建目录

FTP文件传输服务_第11张图片

image.png

FTP文件传输服务_第12张图片

---

开放其他写入权限,允许匿名修改目录,删除目录


FTP文件传输服务_第13张图片

FTP文件传输服务_第14张图片

FTP文件传输服务_第15张图片

---


 链接:https://pan.baidu.com/s/1d12VwhDxt8bL_p7mPu_8cA   提取码:ddu5 (File Zilla软件包)


使用FileZilla查看


FTP文件传输服务_第16张图片

FTP文件传输服务_第17张图片

---

限制最大传输速度(字节/秒)

image.png

image.png

vi/etc/vsftpd/vsftpd.conf  /最下面添加

image.png


FTP文件传输服务_第18张图片


FTP文件传输服务_第19张图片

image.png



本地用户模式:
local_enable=YES     //是否启用本地系统用户
local_umask=022    //本地用户所上传文件的权限掩码
local_root=var/ftp   //设置本地用户的ftp根目录
chroot_local_user=YES  //是否将用户禁锢在主目录
local_max_rate=0       ///限制最大传输速度(字节/秒),等于0时不限速
write_enable=YES       //设置可写权限,对所有人生效
限制某些用户登录ftp    userlist_deny=YES


FTP文件传输服务_第20张图片

vi /etc/vsftpd/vsftpd.conf

image.png

FTP文件传输服务_第21张图片

image.png

FTP文件传输服务_第22张图片




虚拟用户模式:最安全的一种模式
FTP文件传输服务
  基于系统用户的FTP服务
              匿名访问的FTP服务
              用户验证的FTP服务
                                      最安全的FTP文件传输服务之一vsttpd服务基础

  基于虚拟用户的FTP服务
             vstpd服务的其他常用配置
              使用虚拟用户的FTP服务


FTP连接及传输模式
售控制连接: TCP 21 ,用于发送FTP命令信息
“数据连接: TCP 20,用于上传、下载数据出数据
连接的建立类型:主动模式、被动模式


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

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

pasv_enable=YES      启动被动模式
pasv_min_port=2500    被动模式最小端口号

虚拟用户的配置项,用的是匿名用户

filezilla:
530:为pam认证文件有错误
500:为用户家目录不可有写权限
550:为ftp服务器权限
553:为系统文件权限

--------被动模式配置项--------

pasv_enable=YES          启用被动模式
pasv_min_port=24500      被动模式最小端口号
pasv_max_port=24600      被动模式最大端口号

--------虚拟用户配置项-----------
cd /etc/vsftpd     
vi vusers.txt        ----建立文本格式的虚拟用户用户名和密码列表

奇数行用户名
偶数行密码

db_load -T -t hash -f vusers.txt vusers.db    ----将文本格式vusers.txt转换为数据库文件vusers.db
chmod 600 vusers.*      ----将生成的数据文件、文本文件权限设为600(只有超级用户可读可写)安全性   
useradd -d /srv/ -s /sbin/nologin vuser   ----创建家目录在/srv,不可登录服务器的的虚拟用户映射的系统用户vuser

vi /etc/pam.d/vsftpd.vu      ----建立支持虚拟用户的PAM认证文件
#%PAM-1.0
auth          required     pam_userdb.so db=/etc/vsftpd/vusers  
account    required     pam_userdb.so db=/etc/vsftpd/vusers

vi vsftpd.conf   ----设置配置文件

#pam_service_name=vsftpd
……
guest_enable=YES       ----启用虚拟用户登录
guest_username=vuser   ----把虚拟用户账号映射到系统用户vuser
pam_service_name=vsftpd.vu  ----指定虚拟用户PAM认证文件

systemctl restart vsftpd

filezilla
530,为pam认证文件有错误
500,为用户家目录不可有写权限;、
550,为ftp服务器权限
553,为系统文件权限

测试……

vi vsftpd.conf

user_config_dir=/etc/vsftpd/vdir //为虚拟账号建立单独的配置文件存放的目录

vi test01 //以虚拟用户自己的用户名命名,就是独立配置文件。

anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_max_rate=0
local_root=/opt/t01  //设置虚拟用户自己的家目录    anon_root=/opt/t01  (centos6.5中应用)
max_per_ip=2 //设置虚拟用户同时下载文件数 (不管用)

------------以下是详细的安装配置步骤---
rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
cd /etc/vsftpd/
cp vsftpd.conf vsftpd.conf.back
service vsftpd start
/var/ftp/ 这是FTP服务器的默认工作目录。
登录:在CMD里 ftp 192.168.80.181
在文件夹里或者浏览器里:ftp://192.168.80.181/