centos7 vsftpd多虚拟用户、多分区/硬盘

1. 安装

下载vsftpd,centos7已经停止维护。yum安装失败。采用阿里云离线安装包:

https://mirrors.aliyun.com/centos/7.9.2009/os/x86_64/Packages/vsftpd-3.0.2-28.el7.x86_64.rpm

rpm -ivh vsftpd-3.0.2-28.el7.x86_64.rpm

systemctl start vsftpd

systemctl enable vsftpd

2. 配置

vim /etc/vsftpd/vsftpd.conf

# 修改 第12行
# 关闭匿名
anonymous_enable=NO

# 关闭注释 第100行
# 用户不可出根目录
chroot_local_user=YES
# 出根目录白名单
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

# 修改 第115行
listen=YES

# 打开注释 第123行
listen_ipv6=NO

# 修改
userlist_enable=YES
tcp_wrappers=YES

# 关闭注释 第43行
#connect_from_port_20=YES

# 新增
# 开启pam模块登录认证
pam_service_name=vsftpd.vu
# 禁锢虚拟用户的主目录,同时禁止访问除主目录之外的目录
virtual_use_local_privs=YES
guest_enable=YES
# 映射虚拟用户至系统用户(指定系统用户)
guest_username=vsftpuser
# 虚拟用户配置目录
user_config_dir=/etc/vsftpd/virconf/
allow_writeable_chroot=YES
# 开启被动模式
pasv_enable=YES
# 使用被动模式38001至39001端口
pasv_min_port=38001
pasv_max_port=39001

#使用本地时间
use_localtime=YES

# 日志文件配置,并开启xferlog与vsftp.log双日志,xferlog记录上传与下载信息,vsftpd.log记录登录、上传、下载、删除等详细信息
dual_log_enable=YES
xferlog_enable=YES
log_ftp_protocol=YES
xferlog_std_format=YES
reverse_lookup_enable=NO

3.创建系统用户、虚拟用户、用户目录

# 所有vsftpd虚拟用户需要映射到一个系统用户,该系统用户不需要密码,也不需要登录,主要用于虚拟用户映射使用, 并自动创建了用户目录/home/vsftpuser

useradd -d /home/vsftpuser -s /sbin/nologin vsftpuser

创建虚拟用户 

vim /etc/vsftpd/vsftpuser

内容如下:

lisi ##奇数行为用户名

123123 ##偶数行为密码

zhangsan

123123

生成ftp登录认证的数据库文件

cd /etc/vsftpd

db_load -T -t hash -f vsftpuser vsftpuser.db 

##安全起见,不让别人看到,设置权限

chmod 600 vsftpuser

chmod 600 vsftpuser.db

配置ftp使用虚拟用户

vim /etc/pam.d/vsftpd.vu

内容如下:

auth required pam_userdb.so db=/etc/vsftpd/vsftpuser ##识别转换过的数据库文件

account required pam_userdb.so db=/etc/vsftpd/vsftpuser ##连接的密码服务

创建虚拟用户权限目录

mkdir /etc/vsftpd/virconf

虚拟用户权限配置--不用的虚拟用户挂载不同的硬盘或者分区

--虚拟用户zhangsan

vi /etc/vsftpd/virconf/zhangsan

内容如下:

local_root=/home/vsftpuser/zhangsan_ftp
virtual_use_local_privs=YES
# 允许登录用户有可写权限
write_enable=YES
# 允许匿名用户上传文件权限,只在write_enable=YES时生效
anon_upload_enable=YES
# 允许匿名用户创建目录,只有在write_enable=YES时生效
anon_mkdir_write_enable=YES
# 可写
allow_writeable_chroot=YES

--虚拟用户lisi

vi /etc/vsftpd/virconf/lisi

内容如下:

local_root=/data/list_ftp
virtual_use_local_privs=YES
# 允许登录用户有可写权限
write_enable=YES
# 允许匿名用户上传文件权限,只在write_enable=YES时生效
anon_upload_enable=YES
# 允许匿名用户创建目录,只有在write_enable=YES时生效
anon_mkdir_write_enable=YES
# 可写
allow_writeable_chroot=YES

设置公共目录

mkdir -p /home/vsftpuser/app/zhangsan_ftp

chown vsftpuser:vsftpuser zhangsan_ftp

chmod 755 zhangsan_ftp
mkdir -p /data/list_ftp

chown vsftpuser:vsftpuser list_ftp

chmod 755 list_ftp

3.汇总目录结构

- /usr/sbin/vsftpd ---- VSFTPD的主程序
- /etc/rc.d/init.d/vsftpd ---- 启动脚本
- /etc/vsftpd/vsftpd.conf ---- 主配置文件
- /etc/pam.d/vsftpd.vu ---- PAM认证文件
- /etc/vsftpd.ftpusers ---- 禁止使用VSFTPD的用户列表文件
- /etc/vsftpd.user_list ---- 禁止或允许使用VSFTPD的用户列表文件
- /var/log/vsftpd.log  ---- 日志文件

 4.启用、客户端连接

systemctl restart vsftpd

cmd:

ftp server_ip

按照输入用户名密码即可。

#注意如果vsftpd设置了主动模式,则需要服务端、客户端都需要关闭防火墙。

#如果配置的被动模式,则只需要服务器开放对应端口/关闭防火墙。

可以使用Filezilla作为客户端来连接

Download FileZilla Client for macOS (Intel)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值