更新时间:2020-07-06 09:28
本文主要讲述如何搭建VSFTP及配置虚拟用户。
阿里云提醒您:
- 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
- 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
- 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改
VSFTP服务支持三种用户模式。
anonymous
用户直接登录,不需要输入密码。说明:虚拟用户在登录过程中会被隐射成匿名用户,因为匿名用户的权限是统一配置的,那么如果想区分匿名用户的权限,默认情况是无法实现的。
vsftpd
服务。
yum install vsftpd -y
pam_userdb.so
模块的位置。说明:cenos7.6 64位系统的位置一般是/lib64/security/pam_userdb.so。
ls -l /lib64/security/pam_userdb.so
vsftpd
的[虚拟宿主用户],就是这样一个支持着所有虚拟用户的宿主用户。执行以下命令将虚拟用户映射在virtusers这个用户上。useradd -d /data/ftproot virtusers -s /sbin/nologin
说明:-d指定家目录,这里指定之前的ftp根目录/data/ftproot
。-s指定系统用户登录的shell,nologin即不允许系统login登录。
vsftpd
不允许用户主目录有w
权限,因此在主目录下新建一个子目录。所有上传、下载、删除、重命名等操作只能在子目录中进行,虚拟用户vuser1的ftp目录是/data/ftproot/vuser1/
,没有w
权限,设置权限为500,以下是相关目录权限设置参考。
/data #数据目录,便于后期数据备份 └── [drwxr-xr-x] ftproot #FTP服务目录 └── [dr-x------] vuser1 #虚拟用户主目录,后期可以增加vuser2、vuser3... └── [drwxr-xr-x] rootdir #虚拟用户FTP工作目录,可以在此目录读写操作
说明:此处采用目录结构树的形式展现个子目录权限。
mkdir -p /data/ftproot/vuser1/rootdir
chown -R virtusers.virtusers /data/ftproot
chmod 500 /data/ftproot/vuser1
vi /etc/vsftpd/vuserlist
vuser1
123456
说明:奇数行为用户名,偶数行为用户密码。
db_load
工具来生成db文件,出于安全角度修改vuserlist.db
为600权限。
db_load -T -t hash -f /etc/vsftpd/vuserlist /etc/vsftpd/vuserlist.db
chmod 600 /etc/vsftpd/vuserlist.db
/etc/pam.d/vsftpd
,这个文件名与/etc/vsftpd.conf
中的pam_service_name=vsftpd
相对应。注释掉所有参数,在最后面加入以下两行内容。
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuserlist
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuserlist
mkdir /etc/vsftpd/vuser_conf/
vi /etc/vsftpd/vuser_conf/vuser1
local_root=/data/ftproot/vuser1 anon_upload_enable=YES anon_world_readable_only=NO anon_mkdir_write_enable=YES anon_other_write_enable=YES
/etc/vsftpd/vsftpd.conf
主配置文件。
listen=YES #开启IPv4监听
listen_ipv6=NO #关闭IPV6监听
chroot_local_user=YES
chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list
pam_service_name=vsftpd #如果前面/etc/pam.d/vsftpd没有改文件名,就不修改
virtual_use_local_privs=YES #虚拟用户使用本地用户的权限
guest_enable=YES #开启虚拟用户 guest_username=virtusers #指定虚拟用户的宿主用户user_config_dir=/etc/vsftpd/vuser_conf #指定虚拟用户配置文件 pasv_enable=YES #开启被动模式 pasv_min_port=30100 #被动模式最小端口,本示例设置为30100 pasv_max_port=30200 #被动模式最大端口,本示例设置为30200 pasv_address=X.X.X.X #被动模式的IP地址,VPC环境下需要设置为服务器公网地址
/etc/vsftpd/chroot_list
,否则会报错。
touch /etc/vsftpd/chroot_list
使用Filezilla等FTP客户端测试,虚拟用户vuser1可以选择主动或被动模式正常访问FTP,并且在工作目录rootdir
下可以正常读写文件,创建删除修改目录。
说明:如果被动模式无法访问,请检查安全组是否放行被动模式的端口。
在文档使用中是否遇到以下问题
更多建议
匿名提交