Vsftpd文件传输协议—虚拟用户模式

Valky
阅读33 喜欢1 教程 更新2019-11-26

环境:RHEL7 

 配置yum仓库 完成基础配置

 1.安装vsftpd服务 

# yum install vsftpd -y 

 2.使用grep -v 过滤反选出没有包含”#”的参数,通过输出重定向符写回原始的主配置文件。

#mv  /etc/vsftpd/vsftpd.conf  /etc/vsftpd/vsftpd.conf.bak
#grep -v "#"  /etc/vsftpd/vsftpd.conf.bak  >  /etc/vsftpd/vsftpd.conf
#cat  /etc/vsftpd/vsftpd.conf

拒绝匿名访问,只允许本地用户系统登录

使用被动模式,设置主机的ip为被动模式数据传输地址
pasv_enable=YES   开启被动模式
pasv_address=本机ip
promiscuous=YES


创建用于进行FTP认证的用户数据库文件
其中奇数行为账户名,偶数行为密码,创建三个用户


用db_load命令生成vsftpd的认证文件,将用户信息文件转换为数据库并使用hash加密,再把原始的明文信息删除。


创建vsftpd服务程序用于存储文件的根目录以及虚拟用户映射的系统本地用户

使用/etc/passwd查看所有用户

修改权限


建立用于支持虚拟用户的PAM文件PAM(可插拔认证模块)是一种认证机制,通过一些动态链接库和统一的API把系统提供的服务与认证方式分开,使得系统管理员可以根据需求灵活调整服务程序的不同认证方式新建一个用于虚拟用户认证的PAM文件vsftpd.vu, ”db=”参数为使用db_load命令生成的账户密码数据库文件的路径。


在vsftpd服务程序的主配置文件中通过pam_service_name参数将PAM认证文件的名称修改为vsftpd.vu


为虚拟用户设置不同的权限
创建目录 /etc/vsftpd/user_conf


  • ftpuser1用户只能下载不能上传以及删除文件重命名操作
  • ftpuser2用户可以下载与上传文件以及删除重命名 操作
  • ftpadmin用户可以下载与上传文件以及删除重命名操作,上传文件的umask值为022

查看创建是否成功


再次修改vsftpd主配置文件,通过添加user_config_dir参数来定义这两个虚拟用户不同权限的配置文件所存放的路径

  • 开启vsftpd服务
  • 开机自启动
  • 关闭selinux
  • 关闭防火墙

测试

ftpuser1

ftpuser2

ftpadmin