vsftpd一键安装脚本

此脚本我线上环境一键安装脚本,可以直接在Centos服务器上一键安装vsftpd服务并开通ftp账户。此脚本只供本人线上使用,放到此博文方便自己查阅。网友切不可直接复制到自己的线上直接套用,使用前一定要多测试。如有套用使用造成损失,与本博主无关。

#/bin/bash

###脚本使用说明
#bash   脚本名称          ftp账户  ftp密码   虚拟用户
#sh -x install-vsftpd.sh  xiaowu  xiaowu666  www
##01vsftpd用户
user=$1
pass=$2
codeuser=$3

##02安装和配置文件如下
/usr/bin/yum install vsftpd -y
cp /etc/vsftpd/vsftpd.conf  /etc/vsftpd/vsftpd.conf.bak
echo " " > /etc/vsftpd/vsftpd.conf  
cat << EOF >/etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
xferlog_file=/var/log/xferlog
listen=YES
listen_port=2038
pasv_min_port=2037
pasv_max_port=2039
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
check_shell=YES
chroot_local_user=YES
guest_enable=YES
guest_username=$codeuser
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/extra
EOF

#03判断code用户是否存在,不存在创建
/usr/bin/id $3 >/dev/null
if [ $? -eq 1 ];then
     $(useradd ${codeuser} -s /sbin/nologin -M)
     sed -i "s#/home/$codeuser#/data/www#g" /etc/passwd
 else
    echo "user  have exsited" 
   sed -i "s#/home/$codeuser#/data/www#g" /etc/passwd
fi

##04创建用户权限
[ ! -d /etc/vsftpd/extra ]&&mkdir /etc/vsftpd/extra -p

cat << EOF >/etc/vsftpd/extra/$1
local_root=/data/www
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
idle_session_timeout=600
data_connection_timeout=120
max_clients=3
max_per_ip=3
local_max_rate=500000

EOF

##05添加用户信息
cat <<EOF >/etc/vsftpd/vsftpd_login
$user
$pass
EOF

##06加密生成密码文件
/usr/bin/db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db

##07将密码文件写入pam.d认证文件中
cat <<EOF >/etc/pam.d/vsftpd
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required  /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
EOF

chown -R ${3}.${3} /data/www
##08启动vsftpd
/etc/init.d/vsftpd restart
##09 iptables 放开vsftpd访问权限
#/etc/init.d/iptables stop
modprobe nf_conntrack_ftp
/sbin/iptables -F -t filter
/sbin/iptables -F -t nat
/sbin/iptables -P OUTPUT ACCEPT

#Enable Native Network Transfer
/sbin/iptables -A INPUT -i lo -j ACCEPT
#Accept Established Connections
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 12570 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 39698 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m multiport --dports 2038,443,80 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 2037:2050 -j ACCEPT
/sbin/iptables -A INPUT -p icmp --icmp-type 8 -m limit --limit 5/s --limit-burst 10 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -s 11.06.87.85,11.14.95.45,21.44.68.40 --dport 2038 -j ACCEPT
#ICMP
iptables -A INPUT -p icmp --icmp-type 8 -m limit --limit 5/s --limit-burst 10 -j ACCEPT
/etc/init.d/iptables save
/etc/init.d/iptables restart

/etc/init.d/vsftpd restart
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
  • 94.
  • 95.
  • 96.
  • 97.
  • 98.
  • 99.
  • 100.
  • 101.
  • 102.
  • 103.
  • 104.
  • 105.
  • 106.
  • 107.
  • 108.
posted @ 2019-07-26 22:47  勤奋的蓝猫  阅读(1)  评论(0编辑  收藏  举报  来源