美文网首页
CENTOS6下vsftpd安装配置

CENTOS6下vsftpd安装配置

作者: 情文 | 来源:发表于2016-06-12 12:43 被阅读0次

    本文介绍vsftpd的安装和配置,配置后的效果:

    禁止匿名登录
    支持虚拟账户

    安装

    yum -y install vsftpd
    

    配置

    • 禁止匿名
    ## vsftpd.conf
    anonymous_enable=NO
    
    • 限制只能访问本地目录
    ## vsftpd.conf
    chroot_local_user=YES
    
    • 设置支持被动模式
    ## vsftpd.conf
    pasv_enable=YES
    pasv_min_port=6000
    pasv_max_port=7000
    
    • 增加虚拟账号
    cd /etc/vsftpd
    cat > vuser << EOF
    ftp1
    123456
    ftp2
    123456
    EOF
    db_load -T -t hash -f vuser vuser.db
    useradd -d /data/vuser -s /sbin/nologin vuser
    
    • 增加虚拟账号的pam认证
    cat > /etc/pam.d/vsftpd.vuser << EOF
    auth required pam_userdb.so db=/etc/vsftpd/vuser 
    account required pam_userdb.so db=/etc/vsftpd/vuser
    EOF
    
    • 开启虚拟账号
    ## vsftpd.conf
    guest_enable=YES
    guest_username=vuser
    pam_service_name=vsftpd.vuser
    
    • 增加虚拟账号登录
    ## vsftpd.conf
    anon_upload_enable=YES
    
    • 不同用户增加不同权限
    ## vsftpd.conf
    user_config_dir=/etc/vsftpd/vuser_dir
    
    • 每个虚拟用户,一个配置文件
    ## 虚拟账户1
    cat > /etc/vsftpd/vuser_dir/ftp1 << EOF
    local_root=/data/FTP/ftpuser
    write_enable=YES
    anon_umask=022
    anon_world_readable_only=NO
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
    EOF
    
    • 增加IP限制
    echo "vsftpd:ALL" >> /etc/hosts.deny
    echo "vsftpd:192.168.1.0/255.255.255.0" >> /etc/hosts.allow
    echo "vsftpd:172.16.0.0/255.255.0.0" >> /etc/hosts.allow
    

    脚本

    CENTOS6下vsftpd快速安装+增加虚拟用户的脚本:

    #!/bin/bash
    
    ## --------------------------------------
    ## 配置
    ## -------------------------------------
    ## 创建的账户
    VUSER=ftp_v_user
    ## 账户的默认目录
    DEFAULT_DIR=/data/ftp_v_user
    
    function help(){
        echo "-----------------------------"
        echo " 1 - install"
        echo " 2 - add user"
        echo "     ex. $0 2 username passwd"
        echo " 3 - uninstall vsftpd"
        echo " 4 - reload"
        echo "-----------------------------"
    
    }
    
    function uninstall(){
        yum -y remove vsftpd
        rm -rf /etc/vsftpd
    }
    function install(){
        uninstall
        yum -y install vsftpd
        ## 修改配置   
        cat > /etc/vsftpd/vsftpd.conf << EOF
    anonymous_enable=NO
    local_enable=YES
    write_enable=YES
    local_umask=022
    anon_upload_enable=YES
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_std_format=YES
    chroot_local_user=YES
    listen=YES
    userlist_enable=YES
    tcp_wrappers=YES
    
    pasv_enable=YES
    pasv_min_port=6000
    pasv_max_port=7000
    
    guest_enable=YES
    guest_username=${VUSER}
    pam_service_name=vsftpd.${VUSER}
    user_config_dir=/etc/vsftpd/${VUSER}_dir
    EOF
        ## 增加pam认证
        cat > /etc/pam.d/vsftpd.${VUSER} << EOF
    auth required pam_userdb.so db=/etc/vsftpd/${VUSER}
    account required pam_userdb.so db=/etc/vsftpd/${VUSER}
    EOF
        ## 增加虚拟目录
        cd /etc/vsftpd
        touch ${VUSER}
        mkdir ${VUSER}_dir
        ## 增加虚拟账号的user
        useradd -d ${DEFAULT_DIR} -s /sbin/nologin ${VUSER}
        ## 增加端口
        iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
        iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
        iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 6000:7000 -j ACCEPT
        ## 增加虚拟用户
        add_vuser ftptest ftptest
    }
    
    function create_db(){
        db_load -T -t hash -f /etc/vsftpd/${VUSER} /etc/vsftpd/${VUSER}.db
        service vsftpd restart
    }
    
    function add_vuser(){
        if [ "$1" == "" ]; then
            echo "user can not empty."
            exit
        fi
    
        if [ "$2" == "" ]; then
            echo "pass can not empty."
            exit 
        fi
        ftp_user=$1
        ftp_pass=$2
        echo $ftp_user >> /etc/vsftpd/${VUSER}
        echo $ftp_pass >> /etc/vsftpd/${VUSER}
        mkdir -p ${DEFAULT_DIR}/${ftp_user}
        chown ${VUSER}:${VUSER} ${DEFAULT_DIR}/${ftp_user} -R
        cat > /etc/vsftpd/${VUSER}_dir/${ftp_user} << EOF
    local_root=${DEFAULT_DIR}/${ftp_user}
    write_enable=YES
    anon_umask=022
    anon_world_readable_only=NO
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
    EOF
        create_db
        echo "add finish"
    }
    
    case $1 in
    [1]) install;;
    [2]) add_vuser $2 $3;;
    [3]) uninstall;;
    [4]) create_db;;
    *) help;;
    esac
    

    参考文档

    1. http://www.centoscn.com/CentosServer/ftp/2014/1215/4313.html
    2. http://jingyan.baidu.com/article/03b2f78c771db45ea237ae28.html

    下面是广告时间
    fanbiya Q1重低音电脑mp3手机通用线控入耳式运动耳塞式带麦耳机 低至 9.99元
    精致女人坊精品服饰

    相关文章

      网友评论

          本文标题:CENTOS6下vsftpd安装配置

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