ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

vsftpd虚拟用户配置

2020-02-06 12:37:56  阅读:200  来源: 互联网

标签:用户 vsftpd 虚拟 test root localhost


文章目录



接上篇 vsftpd服务器搭建(基础篇)

在实验开始之前,我们探索一下使用虚拟用户与使用本地用户之间的区别。

虚拟用户是本地用户的一个映射,即,从某种层面上来说,只能用来登录ftp,是不能访问其他系统资源的。

本地用户,就没有这个限制(存在着系统登录的威胁)。

映射的存在,说明虚拟用户具有的权限,还是依赖于所映射的本地用户所具有的权限。

总的来说,使用虚拟用户是比较安全的。


注:下面实验中,使用的是本地数据文件验证的方式。



虚拟用户配置

实验环境

  • CentOS-7-x86_64-DVD-1708
  • win10
  • VMware Workstation 15 Pro

配置虚拟用户过程:

  1. 创建虚拟用户登录文件(以.txt后缀名结尾,用户名和密码各占一行的文件)
  2. 使用命令db_load,将该配置文件编译成以.db结尾的数据库文件
  3. 修改/etc/vsftpd/vsftpd.conf文件,开始虚拟用户登录,并设置其他权限
  4. 修改/etc/pam.d/vsftp文件,添加认证机制
  5. 创建本地用户,实现与虚拟用户的映射(两个用户需要一致)
  6. 创建所需要的目录和文件(虚拟用户配置目录、虚拟用户配置文件、chroot_list文件等)



创建虚拟用户登录文件

[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# vim vusers.txt # 用户名和密码各占一行
test # 用户名
test # 密码
"vusers.txt" [New] 2L, 10C written                                                   
[root@localhost vsftpd]#



生成数据库文件

[root@localhost vsftpd]# db_load -T  -t hash -f vusers.txt vusers.db



编辑vsftpd.conf配置文件

[root@localhost vsftpd]# vim vsftpd.conf #  添加以下内容

# 禁止匿名登录
anonymous_enable=NO 

# 打开下面三个的注释,并加以更改
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

# 添加以下内容

# 启用虚拟用户
guest_enable=YES

# 绑定本地用户
guest_username=test

# 防止报错500 OOPS: vsftpd: refusing to run with writable root inside chroot()
allow_writeable_chroot=YES

# 虚拟用户配置文件所在目录
user_conf_dir=/etc/vsftpd/vusers_conf



配置认证机制

[root@localhost vsftpd]# vim /etc/pam.d/vsftpd # 把原来的都注释掉,添加下面内容
auth        required     pam_userdb.so  db=/etc/vsftpd/vusers # 不用加后缀
account     required     pam_userdb.so  db=/etc/vsftpd/vusers



映射用户

[root@localhost vsftpd]# useradd -s /sbin/nologin -d /home/test test # 创建用户
[root@localhost vsftpd]# setfacl -m user:test:rwx /home/test/ # 更改权限(仅测试用,实战不推荐)
[root@localhost vsftpd]# getfacl /home/test/ # 查看目录的权限
getfacl: Removing leading '/' from absolute path names
# file: home/test/
# owner: test
# group: test
user::rwx
user:test:rwx
group::---
mask::rwx
other::---

[root@localhost vsftpd]# 



创建依赖目录和文件

[root@localhost vsftpd]# mkdir vusers_conf # 该目录,需要跟vsftpd.conf主配置文件中填写的一致
[root@localhost vsftpd]# vim vusers_conf/test # 添加以下内容
local_root=/home/test # 指定共享目录
write_enable=YES # 具有写的权限
anon_upload_enable=YES # 具有上传权限
anon_mkdir_write_enable=YES # 具有创建文件夹的权限 
anon_other_write_enable=YES # 具有删除、重命名的权限
[root@localhost vsftpd]# vim chroot_list # 添加以下内容
test
[root@localhost vsftpd]#

注:上面虚拟用户配置文件中,末尾处,不允许出现空格。



登录测试

[root@localhost vsftpd]# systemctl stop firewalld # 可将ftp服务加入防火墙白名单
[root@localhost vsftpd]# setenforce 0 # 关闭SELinux
[root@localhost vsftpd]# systemctl start vsftpd # 启动vsftpd服务
[root@localhost vsftpd]# ftp localhost # 这里使用本机测试
Trying ::1...
Connected to localhost (::1).
220 (vsFTPd 3.0.2)
Name (localhost:root): test
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> quit
221 Goodbye.
[root@localhost vsftpd]# 

注:一个简单的vsftpd虚拟用户就配置完成啦。

小明星_wu 发布了12 篇原创文章 · 获赞 30 · 访问量 2719 私信 关注

标签:用户,vsftpd,虚拟,test,root,localhost
来源: https://blog.csdn.net/qq_35502243/article/details/104194393

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有