04 Nov 2015
OS:Centos 6 x64位 网段:172.168.2.x/24
yum install -y vsftpd db4-utils chkconfig --level 35 vsftpd on # 增加vsftpd服务的用户 useradd vsftpd-u -s /sbin/nologin # 准备虚拟用户账号密码文件 cat << EOF > /etc/vsftpd/vsftpd_userlist ftp1 ftpuser01 ftp2 ftpuser02 ftp3 ftpuser03 ftp4 ftpuser04 EOF # userlist语法:奇数行是username;偶数行是password chmod 600 /etc/vsftpd/vsftpd_userlist # 用db-utils加密userlist db_load -T -t hash -f /etc/vsftpd/vsftpd_userlist /etc/vsftpd/vsftpd_userlist.db # db_load 语法 # db_load [-nTV] [-c name=value] [-f file] # [-h home] [-P password] [-t btree | hash | recno | queue] db_file # db_load -r lsn | fileid [-h home] [-P password] db_file chmod 600 /etc/vsftpd/vsftpd_userlist.db
# 配置认证文件位置 vim /etc/pam.d/vsftpd # 在最开头添加 # auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_userlist # account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_userlist # 配置vsftpd全局配置 vim /etc/vsftpd/vsftpd.conf ## 修改以下几行 # anonymous_enable=NO # anon_upload_enable=NO # anon_mkdir_write_enable=NO # chroot_local_user=YES ## 添加以下几行 # guest_enable=YES # guest_username=vsftpd-u # virtual_use_local_privs=YES # user_config_dir=/etc/vsftpd/vsftpd_user_conf mkdir /etc/vsftpd/vsftpd_user_conf # 配置虚拟用户 vim /etc/vsftpd/vsftpd_user_conf/ftp1 # local_root=/home/vsftpd-u/ftp1 # anonymous_enable=NO # write_enable=YES # local_umask=022 # anon_upload_enable=NO # anon_mkdir_write_enable=NO # idle_session_timeout=600 # data_connection_timeout=120 # max_clients=10 # max_per_ip=5 # local_max_rate=50000 # 创建虚拟用户目录 mkdir /home/vsftpd-u/ftp1 chown -R vsftpd-u:vsftpd-u /home/vsftpd-u/ftp1 # 重启服务 service vsftpd restart # selinux放行 setsebool -P allow_ftpd_full_access 1 # 如果未关闭selinux而且未设置ftp的访问权限,会报错500 oops cannot change directory # iptables放行 # passive mode添加iptables规则的方法 # vsftpd配置被动模式的端口范围 vim /etc/vsftpd/vsftpd.conf # listen_port=3721 # pasv_enable=YES # pasv_min_port=3722 # pasv_max_port=3999 # port_enable=YES # iptables根据配置放行端口 vim /etc/sysconfig/iptables ## 添加以下两行 # -A INPUT -p tcp -m state --state NEW -m tcp --dport 3721 -j ACCEPT # -A INPUT -p tcp -m state --state NEW -m tcp --dport 3722:3999 -j ACCEPT # 重启vsftpd和防火墙 service vsftpd restart service iptables restart