1、服务搭建
vsftpd安装
yum install vsftpd
2、配置文件修改
cd /etc/vsftpd
// 编辑vsftpd配置文件
vim vsftpd.conf
2.1 基础配置文件
# vsftpd.conf的配置
# 是否允许匿名登录
anonymous_enable=NO
# 是否允许本地用户登录
local_enable=YES
# 是否允许本地用户对FTP服务器文件具有写权限
write_enable=YES
# 本地用户主目录
local_root=/home/ftpuser/workfile/upload
# 匿名用户主目录
anon_root=/var/ftp/pub
# 是否允许匿名用户上传文件,如允许,须将全局的
write_enable=YES
anon_upload_enable=YES
# 是否允许匿名用户创建新文件夹
anon_mkdir_write_enable=YES
# 容许匿名用户除了新建和上传外的其他权限
anon_other_write_enable=YES
# 本地用户掩码
local_umask=022
# 设置匿名登入者新增或上传档案时的umask值
anon_umask=022
# 是否激活目录欢迎信息功能
dirmessage_enable=YES
xferlog_enable=YES
# 主动模式数据传输20端口
connect_from_port_20=NO
xferlog_std_format=YES
# 是否监听ipv4
listen=YES
# listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
# 是否设置被动模式
pasv_enable=YES
# 修改默认控制端口
listen_port=10021
# 被动模式传输使用端口
pasv_min_port=50000
pasv_max_port=50020
# 被动模式返回给客户端的ip地址(服务器内网穿透时使用)
pasv_address=1.13.24.9(外网ip地址)
# 设置用户访问目录,默认只允许用户自己的ftp目录
# 需要同时设置allow_writeable_chroot,允许受限用户的写权限,不然会报错
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
2.2访问用户控制
// 用户访问目录,默认只允许用户自己的ftp目录
touch /etc/vsftpd/chroot_list
userlist_deny=YES(默认) 时, userlist 默认是黑名单,一旦进入黑名单,直接权限拒绝
userlist_deny=NO 时, 所以 userlist 是白名单,只有白名单才能登录ftp
ftpusers 是黑名单,目录中用户不能登录ftp
为了将用户权限限制在指定目录内,请考虑以下三种方案:
1. 所有用户均被禁锢:
chroot_local_user=YES
chroot_list_enable=NO
2. 只有部分用户被禁锢:
chroot_local_user=NO
chroot_list_enable=YES
#创建文件/etc/vsftpd.chroot_list 用以添加需要禁锢的用户名单,名单中的用户会被放入chroot()监狱。
#该参数只有当参数chroot_list_enable被激活时才会被关联。
chroot_list_file=/etc/vsftpd/chroot_list
3. 只有部分用户不被禁锢:
chroot_local_user=YES
chroot_list_enable=YES
#创建文件/etc/vsftpd.chroot_list 用以添加不需要被禁锢的用户名单,名单中的 用户不会被放入chroot()监狱。
#该参数只有当参数chroot_list_enable被激活时才会被关联。
chroot_list_file=/etc/vsftpd/chroot_list
## 重启vsftpd服务
systemctl restart vsftpd
2.3. 修改默认端口
## 被动模式中需要放行的端口 如下配置所示,10021和5000以及50020 需要在防火墙和安全组中放行
# 修改默认控制端口
listen_port=10021
# 被动模式传输使用端口
pasv_min_port=50000
pasv_max_port=50020
2.4. 修改被动模式中的访问ip
# 被动模式返回给客户端的ip地址(服务器内网穿透时使用)
pasv_address=1.13.24.9(外网ip地址)
2.5. 以上配置修改均需要重启vsftpd服务
systemctl restart vsftpd