企业FTP项目-虚拟用户访问

项目背景

公司为了宣传最新的产品信息,计划搭建一个FTP服务器,为客户提供相关文档的下载。对所有权互联网开放共享目录,允许下载产品信息。公司的合作单位能够使用FTP服务器进行上传和下载。

需求分析

根据企业的需求,对于不同给用户进行不同的权限限制,FTP服务器需要实现用户的审核。需考虑到服务器的安全性,所以关闭了实体用户的登录,使用虚拟账号验证机制,并对不同的虚拟账号设置不同的权限。为了保证服务器的性能,还需要根据用户等级,限制客户端的连接数及下载速度。

解决方案

  1. 匿名用户允许下载我们公司的产品,但需要对其限速100K
  2. 普通用户可以针对自己的目录进行上传和下载,对其限速500kb(虚拟用户)
  3. 管理用户可以访问所有资源,并可以操作客户的目录,但不可以操作对外用户目录
  4. 优化:根据不同的等级用户做不同的限速,限制客户端连接次数(5)

实施步骤

  1. 关闭防火墙,SElinux
    [root@chenjiangfeng ~]# systemctl stop ebtables firewalld
    [root@chenjiangfeng ~]# systemctl disable ebtables firewalld
  2. 安装vsftp软件
    [root@chenjiangfeng ~]# yum -y install vsftpd

  3. 创建系统账户,供虚拟账户使用
    [root@chenjiangfeng ~]# useradd virftp -s /sbin/nologin

  4. 创建对应目录的,赋予权限
    [root@chenjiangfeng ~]# mkdir -p /data/vsftp/{manager,soft,public}
    [root@chenjiangfeng ~]# chown -R virftp.virftp /data/vsftp/{manager,soft}
  5. 创建虚拟用户账户及密码
    [root@chenjiangfeng ~]# cat > /etc/vsftpd/vsftpd_login << EOF
    manager
    manager
    chenjf
    chenjf
    EOF
  6. 生成对应的库文件
    [root@chenjiangfeng ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
    
  7. 修改密码文件及对应库文件访问权限
    [root@chenjiangfeng ~]# chmod 600 /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
    
  8. 修改pam文件
    [root@chenjiangfeng ~]# vim /etc/pam.d/vsftpd
    #新增如下内容
    auth         sufficient   /lib64/security/pam_userdb.so   db=/etc/vsftpd/vsftpd_login
    account       sufficient   /lib64/security/pam_userdb.so   db=/etc/vsftpd/vsftpd_login


  9. 建立虚拟目录
    [root@chenjiangfeng ~]# mkdir /etc/vsftpd/vsftpd_user_conf/
  10. 配置匿名用户的权限,限速100k

匿名用户登录默认目录,必须要和/etc/passwd中的ftp用户的默认宿主要一样,否则也会出现错误!

  [root@chenjiangfeng ~]# cat >> /etc/vsftpd/vsftpd.conf <<EOF
  anonymous_enable=YES #启动匿名用户
  anon_root=/data/vsftp/public#锁定匿名用户家目录
  anon_max_rate=100000#匿名用户限速100k
  EOF
  1. 配置管理用户,限速2M
    [root@chenjiangfeng ~]# cat > /etc/vsftpd/vsftpd_user_conf/manager <<EOF
    local_root=/data/vsftp/
    allow_writeable_chroot=YES
    write_enable=YES
    local_umask=022
    anonymous_enable=NO
    anon_upload_enable=NO
    anon_mkdir_write_enable=NO
    idle_session_timeout=600
    data_connection_timeout=120
    max_clients=10
    max_per_ip=5
    local_max_rate=2000000
    EOF
  2. 配置普通用户,限速1M
    [root@chenjiangfeng ~]# cat > /etc/vsftpd/vsftpd_user_conf/chenjf <<EOF
    local_root=/data/vsftp/chenjf
    allow_writeable_chroot=YES
    write_enable=YES
    local_umask=022
    anonymous_enable=NO
    anon_upload_enable=NO
    anon_mkdir_write_enable=NO
    idle_session_timeout=600
    data_connection_timeout=120
    max_clients=10
    max_per_ip=5
    local_max_rate=1000000
    EOF
  3. 在配置文件的尾部追加如下内容
    cat >> /etc/vsftpd/vsftpd.conf <<EOF
    ##固定家目录
    chroot_local_user=YES
    ##开启匿名用户
    guest_enable=YES
    ##匿名用户
    guest_username=virftp
    ##引用配置文件目录
    virtual_use_local_privs=YES
    user_config_dir=/etc/vsftpd/vsftpd_user_conf
    EOF
  4. 启动VSFTPD服务,并加入开机自启
    [root@chenjiangfeng ~]# systemctl start vsftpd
    [root@chenjiangfeng ~]# systemctl enable vsftpd
    

验证权限

  1. 匿名用户权限验证

    1.1 匿名用户登录

    1.2 匿名用户下载文件

  2. 普通用户权限验证

    2.1普通用户登录

    2.2 普通用户下载测试

    2.3 测试上传文件

  3. 管理用户权限验证

    3.1 管理员账户登录

    3.2 管理员账号下载文件测试

    3.3 管理员账号上传文件测试

    3.4 删除文件

    验证完成

    备注:

    后续新增账户则需要做如下操作

    1. 创建访问目录,修改权限
      mkdir /data/vsftp/chenjf
      chown virftp.virftp /data/vsftp/chenjf
    2. 创建访问用户
      cat >> /etc/vsftpd/vsftpd_login <<EOF
      test
      test
      EOF
    3. 创建配置文件
      [root@chenjiangfeng ~]# cat > /etc/vsftpd/vsftpd_user_conf/chenjf <<EOF
      local_root=/data/vsftp/chenjf
      allow_writeable_chroot=YES
      write_enable=YES
      local_umask=022
      anonymous_enable=NO
      anon_upload_enable=NO
      anon_mkdir_write_enable=NO
      idle_session_timeout=600
      data_connection_timeout=120
      max_clients=10
      max_per_ip=5
      local_max_rate=1000000
      EOF
    4. 重启服务
      [root@chenjiangfeng ~]# systemctl restart vsftpd


© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容