zoukankan      html  css  js  c++  java
  • vsftpd 虚拟用户配置

    vsftpd 虚拟用户的作用是 通过不同的虚拟用户可以有不同的根目录。

    从 2.3.5 版本之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能在具有写权限了,如果检查发现还有写权限,就会报该错误!

    500 OOPS: vsftpd: refusing to run with writable root inside chroot ()
    

    因此,本次分别用 Centos 6 和 Centos 7 来分别配置 vsftpd 虚拟用户

    1. Centos6 vsftpd-虚拟用户配置

    ----------------------------------------------------
    系统版本:CentOS release 6.7
    vsftpd版本:vsftpd-2.2.2-24
    虚拟用户:hkey
    虚拟用户根目录:/data/hkey
    ----------------------------------------------------

    # yum install vsftpd -y
    # mkdir -pv  /data/hkey
    # sed -i -e 's/^anonymous_enable=YES/anonymous_enable=NO/g' /etc/vsftpd/vsftpd.conf
    # sed -i -e 's/^write_enable=YES/#write_enable=YES/g' /etc/vsftpd/vsftpd.conf
    # sed -i -e 's/^#chroot_local_user=YES/chroot_local_user=YES/g' /etc/vsftpd/vsftpd.conf
    # sed -i -e 's/^pam_service_name=vsftpd/#pam_service_name=vsftpd/g' /etc/vsftpd/vsftpd.conf
    # sed -i -e 's/listen=NO/listen=YES/g' /etc/vsftpd/vsftpd.conf
    # sed -i -e 's/listen_ipv6=YES/#listen_ipv6=YES/g' /etc/vsftpd/vsftpd.conf
    # echo -e 'pam_service_name=vsftpd.vu
    virtual_use_local_privs=NO
    guest_enable=YES
    guest_username=root
    user_config_dir=/etc/vsftpd/vconf' >> /etc/vsftpd/vsftpd.conf
    
    # egrep -v '^#|^$' /etc/vsftpd/vsftpd.conf
    #关闭匿名访问
    anonymous_enable=NO
    #启用本地系统用户,包括虚拟用户
    local_enable=YES
    #本地用户umask值
    local_umask=022
    dirmessage_enable=YES
    #启用日志
    xferlog_enable=YES
    xferlog_std_format=YES
    #关闭ftp-data端口,相当于不使用主动模式
    connect_from_port_20=YES
    #限制用户不能离开FTP主目录,启用并设置例外用户清单
    chroot_local_user=YES
    #使用ipv4进行监听
    listen=YES
    #启用全局用户例外清单
    userlist_enable=YES
    #启用tcp封装
    tcp_wrappers=YES
    #pam认证文件名称,位于/etc/pam.d/
    pam_service_name=vsftpd.vu
    #虚拟用户权限是否与本地用户相同。为NO时,将与匿名用户的权限相同,在每个虚拟用户配置文件里设置匿名用户的选项等于虚拟用户的权限
    virtual_use_local_privs=NO
    #启用guest后,所有非匿名用户将映射到guest_username进行访问,包括本地系统用户也不能使用,并且转换成一个虚拟用户,与其他虚拟用户的配置方法一样
    guest_enable=YES
    # 虚拟用户使用的主用户(这里使用 root是为了比较方便配置各种目录)
    guest_username=root
    #虚拟用户配置文件目录
    user_config_dir=/etc/vsftpd/vconf
    
    # mkdir /etc/vsftpd/vconf/
    
    # 一行用户名,一行密码,严格遵守这样的格式
    # cat /etc/vsftpd/vuser.txt
    hkey
    hkey123
    
    # 生成数据库
    # db_load -T -t hash  -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db
    
    # 添加认证文件
    # cat /etc/pam.d/vsftpd.vu 
    auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
    account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
    

    【开放所有权限】

    # cat /etc/vsftpd/vconf/hkey   
    
    local_root=/data/hkey # 设置登录后禁锢的根目录
    write_enable=yes # 开发写权限
    anon_world_readable_only=no # 开放下载权限
    anon_upload_enable=yes # 开放上传权限
    anon_mkdir_write_enable=yes # 开放创建目录的权限
    anon_other_write_enable=yes # 开放删除和重命名的权限
    

     【只开启上传下载权限】

    # cat /etc/vsftpd/vconf/hkey 
    local_root=/data/hkey
    write_enable=YES
    anon_world_readable_only=no
    anon_upload_enable=yes
    

    2. Centos7 vsftpd-虚拟用户配置

    ----------------------------------------------------
    系统版本:CentOS release 7.0
    vsftpd版本:vsftpd-3.0.2-22
    虚拟用户:hkey
    虚拟用户根目录:/data/hkey
    ----------------------------------------------------

    # yum install vsftpd -y
    # mkdir -pv  /data/hkey
    # sed -i -e 's/^anonymous_enable=YES/anonymous_enable=NO/g' /etc/vsftpd/vsftpd.conf
    # sed -i -e 's/^write_enable=YES/#write_enable=YES/g' /etc/vsftpd/vsftpd.conf
    # sed -i -e 's/^#chroot_local_user=YES/chroot_local_user=YES/g' /etc/vsftpd/vsftpd.conf
    # sed -i -e 's/^pam_service_name=vsftpd/#pam_service_name=vsftpd/g' /etc/vsftpd/vsftpd.conf
    # sed -i -e 's/listen=NO/listen=YES/g' /etc/vsftpd/vsftpd.conf
    # sed -i -e 's/listen_ipv6=YES/#listen_ipv6=YES/g' /etc/vsftpd/vsftpd.conf
    # echo -e 'pam_service_name=vsftpd.vu
    virtual_use_local_privs=NO
    guest_enable=YES
    guest_username=vuser
    user_config_dir=/etc/vsftpd/vconf
    allow_writeable_chroot=YES' >> /etc/vsftpd/vsftpd.conf
    
    # mkdir /etc/vsftpd/vconf/
    
    # 一行用户名,一行密码,严格遵守这样的格式
    # cat /etc/vsftpd/vuser.txt
    hkey
    hkey123
    
    # 生成数据库
    # db_load -T -t hash  -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db
    
    # 添加认证文件
    # cat /etc/pam.d/vsftpd.vu 
    auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
    account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
    

    【开放所有权限】

    # cat /etc/vsftpd/vconf/hkey   
    
    local_root=/data/hkey # 设置登录后禁锢的根目录
    write_enable=yes # 开发写权限
    anon_world_readable_only=no # 开放下载权限
    anon_upload_enable=yes # 开放上传权限
    anon_mkdir_write_enable=yes # 开放创建目录的权限
    anon_other_write_enable=yes # 开放删除和重命名的权限
    

     【只开启上传下载权限】

    # cat /etc/vsftpd/vconf/hkey 
    local_root=/data/hkey write_enable=YES anon_world_readable_only=no anon_upload_enable=yes
  • 相关阅读:
    批处理禁止指定的IE的加载项
    理解一个简单的网页请求过程
    求两条直线(线段)的交点
    hdu 3635 Dragon Balls (并查集)
    uva 12452 Plants vs. Zombies HD SP (树DP)
    ural 1500 Pass Licenses (状态压缩+dfs)
    sgu 321 The Spy Network (dfs+贪心)
    poj3535 A+B (大数加法)
    zkw线段树专题
    ZOJ 2671 Cryptography 矩阵乘法+线段树
  • 原文地址:https://www.cnblogs.com/hukey/p/9367910.html
Copyright © 2011-2022 走看看