CentOS7下vsftpd虚拟用户配置

本文详述了在CentOS7系统中如何配置vsftpd虚拟用户,包括安装vsftpd、创建服务用户和组、建立虚拟账号、设置PAM验证文件、配置虚拟用户目录以及启动FTP服务进行测试。
摘要由CSDN通过智能技术生成

写在最前

  近来用vsftpd架设FTP,但在虚拟用户这一环节卡住了。查阅《鸟哥的LINUX私房菜》,《Linux运维之道》以及各种百度之后。终于搞定了,现将步骤和容易出问题的环节作以记录。
(实验不建议拷贝,引号会导致命令不成功。)

检测是否已安装过vsftpd
yum search db4* pam* vsftpd*

安装vsftpd
yum -y install db4* pam* vsftpd*


1). 建立 vsftpd 服务用户和组

查看用户和用户组
grep ‘vsftpd’ /etc/passwd
grep ‘vsftpd’ /etc/group

新建 vsftpd 用户,不需要目录
useradd -M -s /sbin/nologin vsftpd


2). 建立 vsftpd 虚拟账号的宿主用户

新建 guest135 用户,家目录即是FTP主目录
grep ‘guest135’ /etc/passwd
grep ‘guest135’ /etc/group

此用户名既是 vsftpd.conf 中的  guest_username=guest135

查看目录
ls -l /home


3). 建立 根目录锁定 的帐户文件

touch /etc/vsftpd/chroot_list

1). 为了服务器安全,必须将用户锁定在自己的目录内
2). vsftpd.conf配置文件中的
  chroot_local_user=yes
  时,此文件必须存在,有没有内容无所谓


4). 虚拟账户生成

vi /etc/vsftpd/virtusers

单数行用户名,双数行密码

harry
123456
alice
123456alice
admin
123456admin

db_load -T -t hash -f   /etc/vsftpd/virtusers    /etc/vsftpd/virtusers.db


5). 设置PAM验证文件

修改pam文件
vi /etc/pam.d/vsftpd

#%PAM-1.0
auth    sufficient      /lib64/security/pam_userdb.so     db=/etc/vsftpd/virtusers
account sufficient      /lib64/security/pam_userdb.so     db=/etc/vsftpd/virtusers

auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth       required     pam_shells.so
auth       include      system-auth
account    include      system-auth
session    include      system-auth
session    required     pam_loginuid.so

6). 虚拟用户配置

新建虚拟用户目录
mkdir -p /etc/vsftpd/vhost

文件名必须与第 4 步中建立的用户名一致
vi /etc/vsftpd/vhost/harry

local_root=/home/guest135/harryftp
anonymous_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
local_max_rate=50000

7). 建立测试用户目录

mkdir -p /home/guest135/harryftp

  1). 注意:这里新建的目录名应该与配置文件中的 local_root 一致
  2). 如果不同虚拟用户使用不同的目录,也应该建立相应目录。否则连接失败

 

chown -R guest135.guest135/home/guest135

  注意:一定要修改目录的用户和用户组,不修改会造成上传文件失败。


8). vsftpd.conf

# 设定支撑 vsftpd 服务的宿主用户【可不设置
nopriv_user=vsftpd

# 锁定用户目录
chroot_local_user=YES
# 禁止用户 列表功能
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES

# userlist_file 中的用户将不得使用FTP
userlist_enable=YES

tcp_wrappers=YES

# 启用虚拟用户
guest_enable=YES
# 设定来宾帐户 虚拟用户的宿主用户
guest_username=guest135
pam_service_name=vsftpd
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vhost

# 监听端口,独立运行守护进程
listen=YES
# 禁止匿名
anonymous_enable=NO
# 禁止匿名上传
anon_upload_enable=NO
# 禁止匿名新建目录
anon_mkdir_write_enable=NO

# 启用本机帐户
local_enable=YES

# 允许写操作
write_enable=YES
local_umask=022

# 开启 xferlog 日志
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log

# 日志使用标准的记录格式
xferlog_std_format=YES

# 使用主动模式连接,启用20端口
connect_from_port_20=YES

# 设定支持异步传输功能
async_abor_enable=YES

# 禁止上传文件更改宿主
chown_uploads=NO

# 造成服务器开销巨大,关闭
ls_recurse_enable=NO

ascii_upload_enable=NO
ascii_download_enable=NO

9). 测试

启动FTP服务
systemctl start vsftpd.service

打开IE浏览器
ftp ://harry:123456@IP地址

FileZilla 客户端测试FTP


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值