文件传输协议
FTP 是一种进行文件传输的协议,默认使用 20、21号端口,其中端口 20(数据端口)用于进行数据传输,端口 21(命令端口)用于接受客户端发出的相关 FTP 命令与参数。
FTP 服务器是按照 FTP 协议在互联网上提供文件存储和访问服务的主机,FTP 客户端则是向服务器发送连接请求,以建立数据传输链路的主机。FTP 协议有下面两种工作模式。
- 主动模式:FTP服务端主动向客户端发起连接请求
- 被动模式:FTP服务端等待客户端发起连接请求(FTP默认工作模式)
配置文件
/etc/vsftpd/vsftpd.conf
参数 | 作用 |
---|---|
anon_umask=022 | 匿名用户上传文件的默认权限 |
local_umask=022 | 本地用户上传文件的默认权限 |
anonymous_enable=YES | 允许匿名用户登录 |
anon_upload_enable=YES | 允许匿名用户上传文件 |
anon_mkdir_write_enable=YES | 允许匿名用户建立目录 |
local_enable=YES | 允许本地用户登录 |
local_umask=022 | 本地用户上传文件的权限 |
userlist_deny=NO | 拒绝登录用户列表 |
write_enable=YES | 是否允许本地用户对FTP服务器文件有写权限 |
dirmessage_enable=YES | 是否激活目录的欢迎信息功能:欢迎信息是通过".message"文件获得,自己建立 |
xferlog_enable=YES | 是否让系统自动维护上传和下载的日志文件,默认日志文件存在 |
xferlog_std_format=YES | 是否使用xferlog的标准格式书写传输日志文件 |
chown_uploads=YES | 是否开启上传文件修改所有者 |
chown_username=whoever | 修改为哪个用户 |
chroot_list_enable=YES | 是否启用chroot |
chroot_list_file=/etc/vsftpd/chroot_list | 启用chroot的用户列表 |
ftpd_banner=Welcome to my ftp! | #用户连接时的欢迎信息 |
anon_max_rate= | 限制匿名用户的上传下载速度,单位是bytes |
local_max_rate= | 限制本地用户的上传下载速度,单位是bytes |
max_per_ip= | 限制同一IP地址的客户端同时打开多少个连接 |
max_clients= | 同时允许多少个客户端连接 |
pasv_min_port=5555 | 被动模式端口起始范围 |
pasv_mix_port=6666 | 被动模式的端口结束范围 |
allow_writeable_chroot=YES | right-aligned 允许对紧固 FTP 根目录执行写入操作,而且不拒绝用户的登录请求 |
idle_session_timeout=600 | 当数据传输结束后,用户连接FTP服务器的时间不应超过600秒。可以根据实际情况对该值进行修改 |
data_connection_timeout=120 | 设置数据连接超时时间,该语句表示数据连接超时时间为120秒,可根据实际情况对其个修改 |
vsftpd 服务程序
安装,启动
在配置好 YUM 源时可直接使用以下命令安装,可以直接把防火墙关闭以便测试
yum -y install vsftpd //安装
systemctl restart vsftpd //启动
systemctl stop firewalld //关闭防火墙
文件介绍
文件&&目录 | 作用 |
---|---|
/etc/vsftpd/ | vsftpd服务程序的主目录 |
/etc/vsftpd/vsftpd.conf | vsftpd 服务主配置文件 |
/var/ftp/pub/ | 匿名用户的宿主目录 |
认证模式
vsftpd 允许用户以三种认证模式登录服务器
- 匿名开放模式:不安全的认证模式,任何人都可以无需密码认证直接登录FTP服务器
- 本地用户模式:通过本地用户认证进行登录
- 虚拟用户模式:最安全的认证模式,配置方法请浏览 CentOS-7.4虚拟用户配置
配置匿名用户
其实匿名用户不用配置,直接安装启动就已经可以使用匿名用户登录了。我们要做的就是开放匿名用户的权限,上传,下载,删除,改名。
可以向匿名用户设置的权限参数
参数 | 作用 |
---|---|
anonymous_enable=YES | 允许匿名访问 |
anon_umask=022 | 匿名用户上传文件的umask 值 |
anon_upload_enable=YES | 允许匿名用户上传文件 |
anon_mkdir_write_enable=YES | 允许匿名用户创建目录 |
anon_other_write_enable=YES | 允许匿名用户修改目录名称或删除目录 |
- 匿名用户账户名:ftp 或者 anonymous
- 匿名用户密码:无密码
在配置文件末尾添加参数,并设置匿名用户登录文件夹的全新,并重启服务
[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
anon_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]# chmod 777 /var/ftp/
现在即可进行验证,如何验证请查看 访问发FTP服务器
配置普通用户
配置虚拟用户
chroot:
限制用户在自己的宿主目录中不能跑出去
/etc/vsftpd/vsftpd.conf
chroot_list_user=YES #YES表示文件里面的用户不被chroot限制,其他用户被限制,NO则相反
chroot_list_enable=YES #是否启用chroot文件
chroot_list_file=/etc/vsftpd/chroot_list #用户列表
allow_writeable_chroot=YES #在末尾添加
用户访问限制:
黑名单有两个文件
/etc/vsftpd/user_list <==里面的用户不允许登录,在你登录输入用户名时直接拒绝,不显示输入密码
/etc/vsftpd/ftpuser <==里面的用户不允许登录,但是在登录的时候还是显示输入密码
userlist_enable=YES #启动用户限制
userlist_deny=NO #YES为黑名单,NO为白名单
/etc/vsftpd/user_list #默认为这个文件
/etc/vsftpd/ftpuser #这个文件只能是黑名单
多站点
点击跳转vsftpd配置多站点