Centos7:配置vsftpd虚拟用户登录

配置vsftpd虚拟用户登录

本文将通过创建两个虚拟用户tom和jack,来演示从安装vsftpd组件,到使用用户登录vsftpd服务器的详细步骤。

1、环境准备

[root@host ~]# yum install vsftpd -y	#安装vsftpd及相关组件
[root@host ~]# yum install libdb libdb-utils -y	  #安装依赖组件,系统默认已安装
[root@host ~]# systemctl stop firewalld		 #关闭防火墙
[root@host ~]# systemctl disable firewalld	 #禁用防火墙
[root@host ~]# setenforce 0		#关闭selinux

2、配置虚拟用户口令库文件

文件格式:用户名和密码分别占两行,用户名在前。

添加虚拟用户tom和jack,密码分别为 tom123 和 jack123。

[root@host ~]# cat >>/etc/vsftpd/vusers.list<<eof
tom
tom123
jack
jack123
eof

3、配置虚拟用户认证文件

运行下方命令生成虚拟用户认证文件,注意在新增或删除虚拟用户后,该文件需要重新生成。

[root@host ~]# db_load -T -t hash -f /etc/vsftpd/vusers.list /etc/vsftpd/vsftpd_login.db
[root@host ~]# chmod 600 /etc/vsftpd/vsftpd_login.db  #修改文件权限为600

可以选择将该命令保存到脚本文件中,方便执行。

[root@host ~]# cat >>/etc/vsftpd/adduser.sh<<EOF
#!/bin/bash
db_load -T -t hash -f /etc/vsftpd/vusers.list /etc/vsftpd/vsftpd_login.db
EOF
[root@host ~]# chmod o+x /etc/vsftpd/adduser.sh	  #修改脚本文件的权限

4、配置PAM文件

[root@host ~]# mv /etc/pam.d/vsftpd{,.bak}	#备份文件
[root@host ~]# cat >/etc/pam.d/vsftpd<<EOF
#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required pam_userdb.so db=/etc/vsftpd/vsftpd_login
EOF

5、创建虚拟用户主目录

[root@host ~]# mkdir -p /data/ftp/{tom,jack}    #创建虚拟用户的同名主目录

6、创建系统用户

创建系统用户vuser,指定其主目录为/data/ftp。

[root@host ~]# useradd -d /data/ftp -s /sbin/nologin vuser 
[root@host ~]# chown -R vuser:vuser /data/ftp/  #修改主目录的属主和属组

7、修改vsftpd配置文件

文章最后有配置文件的完整版,嫌参数逐个修改太麻烦的小伙伴,可以去文末直接复制粘贴。

[root@host ~]# cp /etc/vsftpd/vsftpd.conf{,.bak}	#备份配置文件
[root@host ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO		#关闭匿名访问
listen=YES				#开启standalone模式,并监听ipv4的sockets,不能与ipv6同时启用
listen_ipv6=NO			#如果开启,会同时监听ipv4和ipv6的sockets
xferlog_enable=YES				#启用日志记录上传下载
xferlog_file=/var/log/xferlog	#设置日志文件存储位置
xferlog_std_format=YES			#使用日志标准格式
guest_enable=YES				#启用虚拟用户
guest_username=vuser			#定义虚拟用户名
chroot_local_user=YES			#限制本地用户切换出主目录
allow_writeable_chroot=YES		#表示被限制在主目录的用户对主目录具备写权限
user_config_dir=/etc/vsftpd/vsftpd_user_conf   #定义每个用户的配置文件夹
pasv_enable=YES					#开启被动模式
pasv_min_port=30000				#被动模式的最小端口
pasv_max_port=30999				#被动模式的最大端口

8、配置虚拟用户权限

分别创建配置用户tom和用户jack的独立配置文件,文件名与用户同名。

但凡能访问到的文件都可以进行下载,不会受到配置中主目录写权限的影响。

[root@host ~]# mkdir /etc/vsftpd/vsftpd_user_conf	#创建虚拟用户配置文件夹
[root@host ~]# cat >/etc/vsftpd/vsftpd_user_conf/tom<<EOF
local_root=/data/ftp/tom		#指定用户tom的主目录
chroot_local_user=YES			#限制用户tom切换出主目录,仅能访问主目录tom
write_enable=YES				#开启主目录的写权限
virtual_use_local_privs=YES	    #用户tom具备对主目录的使用权限,即对文件或目录的增删改
EOF
[root@host ~]# cat >/etc/vsftpd/vsftpd_user_conf/jack<<EOF
local_root=/data/ftp/jack
chroot_local_user=YES
write_enable=YES
virtual_use_local_privs=YES
EOF

其它可选参数如下:

max_clients=0 #设置vsftpd允许的最大连接数,默认值为0,表示不受限制。若设置为100时,则同时允许有100个连接,超出的将被拒绝。只有在standalone模式运行才有效。

max_per_ip=0 #设置每个IP允许与FTP服务器同时建立连接的数目。默认值为0,表示不受限制。只有在standalone模式运行才有效。

local_max_rate=0 #用于设置本地用户的最大传输速率,单位为B/s,值为0时表示不限制。
例如 local_max_rate=500000 表示FTP服务器的本地用户最大传输速率设置为500KB/s。

9、启动vsftpd服务

[root@host ~]# systemctl start vsftpd	#启动服务
[root@host ~]# systemctl enable vsftpd	#设置服务开机自启

10、登录vsftpd服务器

可以在window系统使用软件进行登录(比如FileZilla),输入服务器ip,使用用户tom或者jack登录,输入用户名和密码,最后点击快速连接完成登录。登录成功会显示目录tom或目录jack中的内容。

在这里插入图片描述

11、vsftpd配置文件完整版

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=vuser
allow_writeable_chroot=YES:·
chroot_local_user=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
pasv_enable=YES
pasv_min_port=30000

备注:以上复制配置文件时需要去除#中文备注信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值