本文介绍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
参考文档
- http://www.centoscn.com/CentosServer/ftp/2014/1215/4313.html
- http://jingyan.baidu.com/article/03b2f78c771db45ea237ae28.html
下面是广告时间
fanbiya Q1重低音电脑mp3手机通用线控入耳式运动耳塞式带麦耳机 低至 9.99元
精致女人坊精品服饰