FTP(File Transfer Protocol,文件传输协议)是典型的C/S结构的应用层协议,需要由服务端软件,客户端软件两个部分共同实现文件传输功能。
ftp用户类型:
1、匿名用户:ftp、anonymous
2、本地用户:就是本机的系统用户,useradd创建。
3、虚拟用户:不直接使用系统用户账号。
安装ftp服务:
yum install vsftpd -y
ftp的主配置文件:(vi)/etc/vsftpd/vsftpd.conf
ftp的根目录:/var/ftp 默认共享目录
systemctl start vsftpd //启动服务
ftp三种访问方式:
1、浏览器:ftp://ip地址
2、我的电脑界面,最上方空白处输ftp://IP地址
注: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配置文件设置的权限。
---
//不管匿名、本地或者虚拟用户,若要允许上传文件,必须启用
---
允许创建目录
---
开放其他写入权限,允许匿名修改目录,删除目录
---
链接:https://pan.baidu.com/s/1d12VwhDxt8bL_p7mPu_8cA 提取码:ddu5 (File Zilla软件包)
使用FileZilla查看
---
限制最大传输速度(字节/秒)
vi/etc/vsftpd/vsftpd.conf /最下面添加
本地用户模式:
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
vi /etc/vsftpd/vsftpd.conf
虚拟用户模式:最安全的一种模式
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/