首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >007.FTP虚拟用户访问

007.FTP虚拟用户访问

作者头像
木二
发布2019-07-26 10:42:12
1.9K0
发布2019-07-26 10:42:12
举报
文章被收录于专栏:木二天空木二天空

一 虚拟用户优点

  • 可对每个用户进行单独设定权限。
  • 每个用户单独配置文件,单独指定主目录,而不能访问系统的其它资源。

注意:虚拟用户目录和本地用户访问目录不冲突。

二 配置虚拟用户步骤

  1. 添加虚拟用户口令文件
  2. 生成虚拟用户口令认证文件
  3. 编辑vsftp的PAM认证文件
  4. 建立本地映射用户并设置宿主目录权限
  5. 修改配置文件
  6. 重启vsftp服务,并测试
  7. 调整虚拟用户权限

三 添加虚拟用户口令文件

  1 [root@imxhy ~]# vi /etc/vsftpd/vuser.txt
  2 #新建可用于登录FTP的虚拟用户文件,文件名可自定义,生成db数据库之后可删除此文件
  3 ftptest01		#用户名
  4 abcdefg		#密码
  5 ftptest02		#用户2
  6 abcdefg		#密码
  7 ftptest03		#用户3
  8 abcdefg		#密码

四 生成虚拟用户口令认证文件

4.1 安装口令认证命令

  1 yum -y install db4-utils		#安装后才有db_load命令

4.2 将文本转变为认证的数据库

  1 db_load -T -t hash -f /etc/vsftpd/ vuser.txt /etc/vsftpd/vuser.db
  2 #将明文用户文件转成数据库文件,数据库文件名可自定义
  3 [root@imxhy ~]# ls -l /etc/vsftpd/
  4 total 40K
  5 -rw-r--r--. 1 root root    9 Aug 28 20:30 chroot_list
  6 -rw-------. 1 root root  125 Aug 28 20:55 ftpusers
  7 -rw-------. 1 root root  369 Aug 28 20:56 user_list
  8 -rw-------. 1 root root 5.0K Aug 28 21:44 vsftpd.conf
  9 -rwxr--r--. 1 root root  338 Mar 31 23:12 vsftpd_conf_migrate.sh
 10 -rw-r--r--. 1 root root  12K Aug 28 22:38 vuser.db	#转换后的数据库文件
 11 -rw-r--r--. 1 root root   54 Aug 28 22:27 vuser.txt

五 编辑vsftp的PAM认证文件

注意:vsfp的pam认证默认是针对本地用户的。

5.1 添加新的虚拟PAM配置项

说明:

  • 若要本地用户无法登陆,则直接在原pam认证文件注释掉原来针对本地用户的配置项,再添加虚拟认证项即可;
  • 不可将local_enable=YES修改为NO,因为虚拟用户登陆也是把模拟用户映射到本地用户,因此此处必须为YES。
  • 若要保留本地用户登陆,可新建用户虚拟用户的pam认证文件
  • 32位和64位系统添加项有区别,一定要注意。
  1 [root@imxhy ~]# vi /etc/pam.d/vsftpd.vu		#新建针对虚拟用户的PAM认证文件
  2 auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser
  3 #32位系统--之前创建的db数据库
  4 account required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser
  5 #32位系统--之前创建的db数据库
  6 auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
  7 #64位系统--之前创建的db数据库
  8 account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
  9 #64位系统--之前创建的db数据库

六 建立本地映射用户并设置宿主目录权限

  1 [root@imxhy ~]# useradd -d /home/vftproot -s /sbin/nologin vuser
  2 #建立所有虚拟用户的主目录,并映射至不可登录的vuser用户,用户名可自定义。
  3 [root@imxhy ~]# chmod 555 /home/vftproot/	#修改相应的权限

七 修改配置文件

  1 [root@imxhy ~]# vi /etc/vsftpd/vsftpd.conf
  2 anonymous=NO			#关闭匿名用户
  3 guest_enable=YES		#打开虚拟用户登陆功能
  4 guest_username=vuser		#FTP虚拟用户对应的本地用户,即上一步创建的用户
  5 pam_service_name=vsftpd.vu	#PAM认证文件
  6 anon_upload_enable=YES		#给虚拟用户设定上传权限
  7 anon_mkdir_write_enable=YES	#给虚拟用户设定写入权限
  8 anon_other_write_enable=YES	#给其他用户设定写入权限

八 新建上传目录并设定权限

注意:在新版vsftp中,设定的映射本地用户vuser家目录权限不能具备w权限,否则无法登陆。

  1 [root@imxhy ~]# mkdir /home/vftproot/pub
  2 #在虚拟用户的主目录之下再新建一层
  3 用户上传的目录
  4 [root@imxhy ~]# chown vuser:vuser /home/vftproot/pub
  5 #将新建的目录所属人和所属组修改为虚拟用户

八 重启并测试

  1 [root@imxhy home]# systemctl restart vsftpd
  2 E:\Temp\ftp>ftp 192.168.10.10
  3 连接到 192.168.10.10。
  4 220 (vsFTPd 3.0.2)
  5 用户(192.168.10.10:(none)): ftptest01
  6 331 Please specify the password.
  7 密码:
  8 230 Login successful.
  9 ftp> get down.txt
 10 200 PORT command successful. Consider using PASV.
 11 150 Opening BINARY mode data connection for down.txt (0 bytes).
 12 226 Transfer complete.
 13 ftp> cd pub
 14 250 Directory successfully changed.
 15 ftp> put upload.txt
 16 200 PORT command successful. Consider using PASV.
 17 150 Ok to send data.
 18 226 Transfer complete.

九 总结

  • 默认上传文件的位置是宿主用户家目录,若存在local_root则为此设置项目录。
  • 权限使用的你明用户权限进行管理。
  • 一定要关闭SElinux和防火墙iptables,也可以进行开放允许操作。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-11-01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一 虚拟用户优点
  • 二 配置虚拟用户步骤
  • 三 添加虚拟用户口令文件
  • 四 生成虚拟用户口令认证文件
    • 4.1 安装口令认证命令
      • 4.2 将文本转变为认证的数据库
      • 五 编辑vsftp的PAM认证文件
        • 5.1 添加新的虚拟PAM配置项
        • 六 建立本地映射用户并设置宿主目录权限
        • 七 修改配置文件
        • 八 新建上传目录并设定权限
        • 八 重启并测试
        • 九 总结
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档