2016-12-3 更新 一定要把行尾的空格给删除掉,否则提示:500 OOPS: bad bool value in config file for: anonymous_enable,所有配置文件都是。
一、安装vsftp
和db4-utils
yum install -y vsftpd db4-utils ## db4是加密工具
二、配置vsftpd
虚拟用户
建立虚拟账号相关联的系统账号:
useradd vsftpd -s /sbin/nologin ## 用户名随便
建立虚拟账户相关的文件:
vim /etc/vsftpd/vsftpd_login ## 用来存放帐号密码,暂时的
## 内容如下:
test1 ## 奇数行是帐号,偶数行是密码,以此类推! 123456 test2 abcdef ...... ......
chmod 600 /etc/vsftpd/vsftpd_login
## 更改权限
生成加密的密码文件
db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db rm -rf /etc/vsftpd/vsftpd_login ## 把原来未加密的密码文件删除掉
、
建立虚拟账号相关的目录以及配置文件
mkdir /etc/vsftpd/vsftpd_user_conf ## 虚拟的用户的home目录 cd /etc/vsftpd/vsftpd_user_conf
创建和用户对应的配置文件 配置文件名要和虚拟机用户名一致
vim test1
内容如下:
local_root=/home/vsftpd/test1 ## test1帐号的ftp目录 anonymous_enable=NO ## 不允许匿名用户登陆 write_enable=YES ## 开放本地用户写的权限 local_umask=022 ## 本地用户上传文件的umask,上传文件默认权限644(666-022),上传文件夹默认权限755(777-022) anon_upload_enable=NO ## 禁止匿名用户上传 anon_mkdir_write_enable=NO ## 禁止匿名用户创建 idle_session_timeout=600 ## 用户会话空闲时间(秒)超过就自动断开 data_connection_timeout=120 ## 如果 client与 Server 间的数据传送在 120 秒内都无法传送成功,那Client的联机就会被vsftpd强制剔除 max_clients=10 ## ftp客户端的最大连接数 max_per_ip=5 ## 每个ip最大连接数 local_max_rate=50000 ## 本地用户的传输速度限制单位是(b) 0 为不限制
mkdir /home/vsftpd/test1 ## test1用户的home目录
修改权限:
chown -R vsftpd:vsftpd /home/vsftpd
vim /etc/pam.d/vsftpd ## 虚拟机用户验证
在最开头添加两行
auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login ## 如果是64位系统,则改为/lib64/security/pam_userdb.so account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login ## 如果是32位系统,则改为/lib/security/pam_userdb.so
再修改
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES ## 改为 anonymous_enable=NO #anon_upload_enable=YES ## 改为 anon_upload_enable=NO #anon_mkdir_write_enable=YES ## 改为 anon_mkdir_write_enable=NO
再增加:
chroot_local_user=YES ## 禁止去其它目录 guest_enable=YES ## 允许来宾用户 guest_username=vsftpd ## 映射系统真实存在的用户,刚开始建立的vsftpd virtual_use_local_privs=YES ## 当该参数激活(YES)时,虚拟用户与其宿主用户有相同的权限。 当此参数关闭(NO)时,虚拟用户与匿名用户有相同的权限。默认情况下此参数是关闭的(NO)。 user_config_dir=/etc/vsftpd/vsftpd_user_conf ## 虚拟用户配置文件目录
启动
service vsftpd start
添加防火墙iptables
规则
1、ftp主动模式下iptables
的规则配置
iptables -I INPUT -p tcp --dport 21 -j ACCEPT
2、ftp被动模式下iptables
的规则配置
方法一:
iptables -I INPUT -p tcp --dport 21 -j ACCEPT
vim /etc/vsftpd/vsftpd.conf
添加以下内容:
pasv_min_port=50000 pasv_max_port=60000 iptables -I INPUT -p tcp --dport 50000:60000 -j ACCEPT
方法二:
使用连接追踪模块
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -I INPUT -p tcp --dport 21 -j ACCEPT modprobe nf_conntrack_ftp
vim /etc/sysconfig/iptables-config
添加以下内容:
IPTABLES_MODULES="nf_conntrack_ftp"