您的位置:首页 > 编程语言 > PHP开发

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

2017-08-11 15:47 274 查看

简介

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


如果有错误,请指出来,我们交流^_^
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ftp