22 Jan 2015
yum install -y vsftpd db4-utils
useradd vsftpd-u -s /sbin/nologin cat << EOF > /etc/vsftpd/vsftpd_login ftpa1 #奇数行为用户名 *passwd1* #偶数行为密码 ftpa2 *passwd2* EOF #保证安全性,设为只有root可读写 chmod 600 /etc/vsftpd/vsftpd_login
db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db # db_load工具是由db4-utils提供的 # -T参数,让db_load将文本文件转换为db文件 # -t参数,指定db库文件类型,此处指定为hash(哈希) # -f参数,指定input文件 # 语法:db_load -T -t <库类型> -f <input file> <output file> rm -rf /etc/vsftpd/vsftpd_login # 保证安全性,设为只有root可读写 chmod 600 /etc/vsftpd/vsftpd_login.db
vi /etc/pam.d/vsftpd ## 将下面两行添加到最开头 ## 64系统是lib64,32位系统是lib # auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login # account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login # ...... vi /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 cd /etc/vsftpd/vsftpd_user_conf/ cat << EOF > ftpa1 local_root=/home/vsftpd-u/ftpa1 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 EOF chown -R vsftpd-u:vsftpd-u /home/vsftpd-u
selinux
setsebool -P allow_ftpd_full_access 1 # 如果未关闭selinux而且未设置ftp的访问权限,会报错500 oops cannot change directory
Iptables
/etc/vsftpd/vsftpd.conf
listen_port=3721
pasv_enable=YES
pasv_min_port=3722
pasv_max_port=3999
port_enable=YES
-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
service vsftpd start