CENTOS6下vsftpd安装配置

本文介绍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安装配置)