基于文件验证的vsftpd虚拟用户

简介

vsftpd 的实现,有三种用户认证身份。
(1)匿名用户账号是ftp或者anonymous不需要密码即可登录,被限定在ftp用户的家目录,要求ftp用户家目录没有写权限,默认ftp用户的家目录是/var/ftp
(2)系统用户是系统上存在的实际用户,默认没有限定到用户家目录中。可以随便切换到其他目录,因此不需要取消用户家目录的写权限
(3)虚拟用户,虚拟用户是建立一些系统不存在的账号,用来进行登录。其实其也是映射到系统的某个用户身份。其配置参数使用的是匿名用户的配置参数。

基于虚拟用户的用户存放地点有两种,二进制文件和mysql,因为我们的用户一般不多,使用mysql验证还要通过TCP三次握手四次分手,比较慢,因此常用二进制文件来进行存放。跟我一块来做基于文件验证的实验吧!

实验环境

操作系统:CentOS7.3
软件:vsftpd(version 3.0.2)
测试:filezilla

实验步骤

一、创建用户数据库文件

1、自定义用户文件

vim /etc/vsftpd/vusers.txt
ftp1
password1
ftp2
password2

注意:奇数行是用户名,偶数行是密码

2、依靠vusers.txt文件来生成二进制数据库

cd /etc/vsftpd/
db_load -T -t hash -f vusers.txt vusers.db
chmod 600 vusers.db
二、创建用户和访问FTP目录

创建虚拟用户映射到系统的实际用户

useradd -d /var/ftproot -s /sbin/nologin vuser
chmod +rx /var/ftproot/

#虚拟用户使用的参数是匿名用户的参数,因此也是被禁锢在家目录中的,这就需要家目录没有写权限
chmod -w /var/ftproot/
#创建一个文件夹用来上传文件,并给他vuser写权限
mkdir /var/ftproot/upload
setfacl -m u:vuser:rwx /var/ftproot/upload
三、创建pam配置文件
方法一:新建vsftpd.db文件,来进行认证,这样的话,本地用户则不能登录
vim /etc/pam.d/vsftpd.db
auth  required pam_userdb.so db=/etc/vsftpd/vusers不需要加后缀
account  required pam_userdb.so db=/etc/vsftpd/vusers
方法二:在原有的pam文件基础上前两行添加如下,这样的话本地用户也可以登录,虚拟用户也可以登录
auth sufficient pam_userdb.so db=/etc/vsftpd/vusers
#sufficient代表如果此项通过,则不向下匹配,如果不通过,则不影响继续向下匹配
account sufficient pam_userdb.so db=/etc/vsftpd/vusers  

这里使用方法一,如果是方法二,则下面的pam_service_name参数不需要新指定。

四、指定pam配置文件

vim /etc/vsftpd/vsftpd.conf

guest_enable=YES
guest_username=vuser
#指定pam使用哪个文件

pam_service_name=vsftpd.db 
五、SELinux设置:

禁用SELinux或者setsebool-P ftpd_full_access1

六、虚拟用户建立独立的配置文件

虚拟用户独立的配置文件可以单独对每个用户控制,文件名需要和用户名一致.
使用的参数是匿名用户的配置参数
1、指定用户独立的配置文件路径

#创建配置文件存放的路径
mkdir /etc/vsftpd/vusers.d/ 

#在配置文件中指定
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vusers.d/

2、创建各用户自已的配置文件,允许ftp1用户可读写,其它用户只读

vim /etc/vsftpd/vusers.d/ftp1 

anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
vim /etc/vsftpd/vusers.d/ftp2 
#登录目录改变至指定的其他目录
local_root=/app 

如果有错误,请指出来,我们交流^_^

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值