美文网首页生物信息学
vsftpd搭建FTP,并设置虚拟用户

vsftpd搭建FTP,并设置虚拟用户

作者: quan575 | 来源:发表于2018-07-05 17:00 被阅读0次

    需求:系统ubuntu14.04,建立虚拟用户,便于管理

    安装vsftpd

    # 安装 vsftp(FTP软件) db-util(转化数据库)
    sudo apt-get -y install vsftpd
    sudo apt-get -y install db-util
    ## 启动 停止服务命令
    sudo service vsftpd stop
    sudo service vsftpd start
    sudo service vsftpd restart
    service vsftpd status    #查看状态
    

    1.创建vsftpd服务的宿主用户和虚拟用户

    ## 1.建立Vsftpd服务的宿主用户,不能登录系统,指定主目录/home/vsftpd
    useradd vsftpd -d /home/vsftpd -M -s /sbin/nologin
    cat /etc/passwd |grep vsftpd
    sudo chown -R vsftpd:vsftpd /home/vsftpd
    
    #2.虚拟用户设置
    sudo mkdir /etc/vsftpd/
    sudo vim   /etc/vsftpd/virtusers.txt
    # 加一些账号密码在里面,一行账号 一行密码(奇数行为账号,偶数行为密码)
    test
    tes123
    # 转化为db 文件/etc/vsftpd/virtusers.db ,记住保存的路径后面会用到
    #如果以后向/etc/vsftpd/virtusers.txt添加了虚拟账户后,需要重新执行下面的db_load命令才能生效
    sudo db_load -T -t hash -f /etc/vsftpd/virtusers.txt  /etc/vsftpd/virtusers.db
    

    3.PAM 验证设置

    默认安装后会生成/etc/pam.d/vsftpd,但直接设置这个文件会有问题,我们新建一个文件vsftpd.virtual写配置,并设置/etc/vsftpd/vsftpd.conf写对应的名字 pam_service_name=vsftpd.virtual

    sudo vim /etc/pam.d/vsftpd.virtual
    #替换为下面两行配置,pam_userdb.so根据自己的系统配置路径,
    #db为上一步生成的(不用加后缀.db)文件 /etc/vsftpd/virtusers
    auth    required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd/virtusers
    account required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd/virtusers
    
    #以上两条是手动添加的,内容是对虚拟用户的安全和帐户权限进行验证。
    这里的auth是指对用户的用户名口令进行验证。
    这里的accout是指对用户的帐户有哪些权限哪些限制进行验证。
    其后的sufficient表示充分条件,也就是说,一旦在这里通过了验证,那么也就不用经过下面剩下的验证步骤了。
    相反,如果没有通过的话,也不会被系统立即挡之门外,因为sufficient的失败不决定整个验证的失败,
    意味着用户还必须将经历剩下来的验证审核。
    再后面的/lib/security/pam_userdb.so表示该条审核将调用pam_userdb.so这个库函数进行。
    最后的db=/etc/vsftpd/virtusers则指定了验证库函数将到这个指定的数据库中调用数据进行验证。
    

    4.配置vsftpd(所有主要设置在这里面)

    # 备份一份
    cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.back
    sudo vim /etc/vsftpd/vsftpd.conf
    
    listen=YES
    listen_ipv6=NO
    anonymous_enable=NO
    local_enable=YES
    write_enable=YES
    local_umask=022
    dirmessage_enable=YES
    use_localtime=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_file=/var/log/vsftpd.log
    xferlog_std_format=YES
    chroot_local_user=YES
    chroot_list_enable=NO
    allow_writeable_chroot=YES
    secure_chroot_dir=/var/run/vsftpd/empty
    pam_service_name=vsftpd
    rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
    rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
    ssl_enable=NO
    guest_enable=YES
    pam_service_name=vsftpd.virtual
    user_config_dir=/etc/vsftpd/vu
    pasv_enable=YES
    pasv_min_port=30000
    pasv_max_port=31000
    
    #在以上配置文件中,有几点需要重点指出。
    local_enable=YES
    write_enable=YES
    local_umask=022
    # 这两项是启用系统用户的写权限。
    # 特别是 write_enable=YES项一定要启用,否则vsftpd虚拟用户将无法登录vsftpd。
    
    chroot_local_user=YES
    chroot_list_enable=NO
    allow_writeable_chroot=YES
    #这三项是配置vsftpd用户禁止切换上级目录的权限。
    
    guest_enable=YES
    pam_service_name=vsftpd.virtual
    user_config_dir=/etc/vsftpd/vu
    # 这三项是启用vsftpd虚拟用以及虚拟用户账号配置目录。
    
    pasv_enable=YES
    pasv_min_port=30000
    pasv_max_port=31000
    #这三项是启用vsftpd被动模式及相关端口。
    

    5 虚拟用户配置

    • 虚拟用户的设置都在文件夹下,有上一步的 user_config_dir=/etc/vsftpd/vu设置
    • 宿主用户设置为上面创建的用户 vsftpd
    ## 建立虚拟用户配置文件模版:以后没添加一个虚拟用户都可以复制一份修改
    vi /etc/vsftpd/vu/vconf.tmp
    
    #vconf.tmp内容如下:
    guest_username=vsftpd  #指定宿主用户
    virtual_use_local_privs=NO   #虚拟用户和本地用户有相同的权限。
    local_root=/home/vsftpd/test1 #指定虚拟用户的具体主路径
    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  #设定单个客户端的最大线程数,这个配置主要来照顾Flashget、迅雷等多线程下载软件
    local_max_rate=50000  #设定该用户的最大传输速率,单位b/s
    anon_umask=133
    #
    
    
    
    #测试用户复制配置模板,可以进行个性化配置
    cp /etc/vsftpd/vu/vconf.tmp /etc/vsftpd/vu/test
    vim /etc/vsftpd/vconf/test
    

    其他设置

    #logo 文件设置权限
    chown vsftpd:vsftpd /var/log/vsftpd.log
    

    相关文章

      网友评论

        本文标题:vsftpd搭建FTP,并设置虚拟用户

        本文链接:https://www.haomeiwen.com/subject/ovipuftx.html