Vsftpd简单配置说明

权限开关

  • 3.0版本后, local_root必须是r+x, 切不能用w权限, 而且主配置中需要加入allow_writeable_chroot=YES

1. 目录锁定

1. chroot_local_user=YES/NO                       # 全局限制,限制用户是否锁定主目录
2. chroot_list_enable=YES/NO                      # 当1上面配置YES或者NO时,这里的YES或者NO是否开启例外
3. chroot_list_file=/etc/vsftpd/chroot_list       # 当2上面配置YES时,chroot_list里的例外用户生效

情况示例:

# 情况1: chroot_local_user=YES
chroot_local_user=YES时,开启全局用户锁定主目录,所有ftp用户,限制主目录
chroot_list_enable=YES,时启用例外
chroot_list_file里配置的例外用户,不受限制
​
# 情况2: chroot_local_user=NO
chroot_local_user=NO时,关闭全局用户锁定主目录,所有ftp用户,不限制主目录
chroot_list_enable=YES时,启用例外
chroot_list_file里配置的里外用户,受限制

目录锁定

示例: 本地loan用户锁定到/data/dics_files

1. vsftpd.conf配置

user_config_dir=/etc/vsftpd/user_conf

2. user_conf配置

mkdir -pv /etc/vsftpd/user_conf/loan
vim /etc/vsftpd/user_conf/loan
// 加入如下
local_root=/data/dics_files
chroot_local_user=YES
allow_writeable_chroot=YES

常见报错

1. 报错: ls: 登录失败: 500 OOPS: cannot change directory:/data/nfs/dics_files
可能原因: 上级目录没有可读权限
​
2. 报错: ls: 登录失败: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
可能原因: 没有配置allow_writeable_chroot=YES

虚拟用户

1. 基础信息

  • 示例虚拟用户:loan

  • FTP 根目录:/data/dics_files

  • 虚拟用户映射系统账户:ftp

  • 配置目录:/etc/vsftpd

  • 用户配置目录:/etc/vsftpd/user_config

  • 虚拟用户凭证文件:/etc/vsftpd/user_config/auth

创建虚拟用户目录并授权

mkdir -p /data/dics_files
chown -R ftp:ftp /data/dics_files
chmod 755 /data

2. 安装vsftpd

yum install -y vsftpd libdb-utils
useradd -s /sbin/nologin ftp

3. 配置认证

创建认证文件

mkdir -p /etc/vsftpd/user_config
​
cat > /etc/vsftpd/user_config/auth <<EOF
loan
123456
EOF

生成DB格式认证库

db_load -T -t hash -f /etc/vsftpd/user_config/auth /etc/vsftpd/user_config/auth.db
chmod 600 /etc/vsftpd/user_config/auth*

4. 配置PAM

创建 PAM 文件 /etc/pam.d/vsftpd(如果已有请备份):

mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak.$(date +%Y%m%d)

cat > /etc/pam.d/vsftpd <<EOF
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/user_config/auth
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/user_config/auth
EOF

5. 配置 vsftpd 主配置文件

listen=YES
listen_port=21
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
chroot_local_user=YES
chroot_list_enable=NO
pam_service_name=vsftpd
user_config_dir=/etc/vsftpd/user_config
guest_enable=YES
guest_username=ftp
virtual_use_local_privs=YES
reverse_lookup_enable=NO
allow_writeable_chroot=YES

# 被动模式设置(可选,适用于防火墙穿透)
pasv_enable=YES
pasv_min_port=50000
pasv_max_port=50100

防火墙配置:

# 这里的50000到50100是ftp的随机端口,在配置文件里设置上限下限,然后在防火墙里开启这段端口即可,否则会造成访问ftp的各种问题
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 50000:50100 -j ACCEPT

6. 配置虚拟用户专属配置文件

local_root=/data/dics_files
write_enable=YES
download_enable=YES
local_umask=022
anonymous_enable=NO
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

各种权限配置

虚拟用户权限
1.所有权限
write_enable=YES
anonymous_enable=NO
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_umask=022
download_enable=Yes
local_root=/data/user1
​
2.上传权限
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_umask=022
download_enable=NO
local_root=/data/user2
​
3.下载权限
write_enable=NO
anon_world_readable_only=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
local_umask=022
download_enable=yes
local_root=/data/user3
​
4.只能删,不能传
virtual_use_local_privs=NO
write_enable=YES
anon_world_readable_only=NO
anon_other_write_enable=YES
local_umask=022
download_enable=Yes
local_root=/data/user4
​
5.虚拟用户高级设置   
1、virtual_use_local_privs参数  
当virtual_use_local_privs=YES时,虚拟用户和本地用户有相同的权限  
当virtual_use_local_privs=NO时,虚拟用户和匿名用户有相同的权限,默认是NO。  
当virtual_use_local_privs=YES,write_enable=YES时,虚拟用户具有写权限(上传 下载 删除 重命名)  
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES  anon_upload_enable=YES时,虚拟用户不能浏览目录,只能上传文件,无其他权限。  
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO  anon_upload_enable=NO时,虚拟用户只能下载文件,无其他权限  
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO  anon_upload_enable=YES时,虚拟用户只能上传和下载文件,无其他权限  
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO  anon_mkdir_write_enable=YES时,虚拟用户只能下载文件和创建文件夹,无其他权限  
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO  anon_other_write_enable=YES时,虚拟用户只能下载、删除和重命名文件,无其他权
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值