• Linux系统学习 十八、VSFTP服务—虚拟用户访问—配置虚拟用户访问


    配置虚拟用户访问

    首先至少要关闭userlist

     

     

    改完配置文件是要重启服务来使它生效

    其实在刚装好vsftp的时候的配置文件不用修改的情况下配置虚拟用户访问控制是最好的

    local_root选项不影响

    本地用户登录的目录和虚拟用户登录的目录是不产生影响的

    为防止有影响,把chroot也注释了

     

     

    配置虚拟用户登录的步骤:

    1、添加虚拟用户口令文件

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

    3、编辑vsftp的PAM认证文件

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

    5、修改配置文件

    6、重启vsftp服务,并测试

    7、调整虚拟用户权限

     

    第一步:添加虚拟用户口令文件(该文件可以叫任何名字也可以放在任何位置)

    vi /etc/vsftpd/vuser.txt  #内容如下

      cangls  #用户名

      123   #密码

      bols  #用户名

      123   #密码

    以上的用户名密码并不能直接登录系统,所以不怕截取

     

     

     

    第二步:生成虚拟用户口令认证文件

    yum –y install db4-utils    #如果没有安装口令认证命令,需要安装

    db_load –T –t hash –f  /etc/vsftpd/vuser.txt  /etc/vsftpd/vuser.db   #把文本文档转换为认证的数据库

    -T:转化

    -t:指定转换函数

    -f:指定文件

     

     

     

    第三步:编辑vsftp的PAM认证文件

    vi /etc/pam.d/vsftpd

    auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser

    account required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser

    #注释掉其他行,加入这两行即可

    #注释其他行,可以禁止本地用户登录,因为本地用户登录时的验证依然依赖这个文件

    该文件中本身就有一些规则,定义的是本地用户的验证规则

     

     

    在vsftp的配置文件最下面有一行设置,就是pam文件

     

     

    vi中将2~8行添加#号

     

     

     

    添加修改完成后,重启服务

     

     

    此时本地用户就不能登录了

     

    第四步:建立本地映射用户并设置宿主目录权限

    useradd –d /home/vftproot –s /sbin/nologin vuser   #此用户不需要登录,只是映射用户

    #用户名必须和下一步配置文件中一致

    chmod 775 /home/vftproot

     

     

    创建完成后的vftproot的权限是700,这种权限下是不允许用户上传的,需要改权限为755

     

    第五步:修改配置文件

    vi /etc/vsftpd/vsftpd.conf

      guest_enable=YES      #开启虚拟用户

      guest_username=vuser     #FTP虚拟用户对应的系统用户(用户名要和前面的名字一样)

      pam_service_name=vsftpd        #PAM认证文件(默认存在)

     

     

     

    第六步:重启vsftpd服务并测试

    service vsftpd restart

    此时虚拟用户可以登录,查看、下载,不能上传

    默认上传文件的位置是宿主用户的家目录

    权限使用的是匿名用户权限进行管理

     

    注:正常情况下,此时就可以用前面设置的两个虚拟用户登录ftp了,但是我这里是登陆失败,还没找的是哪里出错了,下面我重新恢复虚拟机,重头再来。

     

    第七步:调整虚拟用户权限(不能上传的问题)

    vi /etc/vsftpd/vsftpod.conf

      anonymous_enable=NO     #关闭匿名用户登录,更加安全(不影响虚拟用户登录)

      anon_upload_enable=YES

      anon_mkdir_write_enable=YES

      anon_other_write_enable=YES

    #给虚拟用户设置权限,允许所有虚拟用户上传

    对于虚拟用户的文件目录中上传的权限,除了ftp的权限以外还需要系统对文件的权限设置。

     

    总结:

    1、重新安装:yum install –y vsftpd

    2、关闭防火墙和SELinux

    永久关闭防火墙:

    关闭: chkconfig iptables off

    开启: chkconfig iptables on

    3、永久关闭SELinux:

    vi /etc/selinux/config

    修改SELINUX=disabled

    4、关闭可能影响ftp的防火墙策略

    service iptables status    #查看防火墙

    iptables -D INPUT 4          #删除与ftp有关的策略

    5、重启系统,重启服务

    6、注释userlist选项

    7、创建虚拟用户口令文件

    vi /etc/vsftpd/vuser.txt

    里面写入奇数行用户名,偶数行密码

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

    db_load -T -t hash -f /etc/vsftpd/vuser.txt  /etc/vsftpd/vuser.db

    9、编辑vsftp的PAM文件

    注释掉里面所有的内容

    输入一下两行

    auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser

    account required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser

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

    useradd -d /home/vftproot -s /sbin/nologin vuser

    chmod 775 /home/vftproot/

    11、修改配置文件

    添加和开启以下三个选项

    guest_enable=YES

    guest_username=vuser

    pam_service_name=vsftpd

    12、重启vsftpd服务,并测试

    13、调整虚拟用户权限

    注:还是没有登录成功,实在是找不到错在了哪里。(后面再做做,如果能成功会再记录一下)

  • 相关阅读:
    利用virtual box安装ubuntu16.4,没有继续(下一步)的解决方案
    最好用的几个谷歌镜像(推荐理由:无广告)
    vs2017和vs2019专业版和企业版
    c# List根据某个属性进行分类,变成以属性名称作为分类的多个List
    vs2015安装编辑神器:resharper10.0
    c# 正则表达式替换字符串中常见的特殊字符
    IL中间语言指令大全
    c#进阶一:使用ILDASM来查看c#中间语言
    SQL server脚本语句积累
    SQLServer事务在C#当中的应用
  • 原文地址:https://www.cnblogs.com/Yuuki-/p/11957861.html
Copyright © 2020-2023  润新知