一、安装 由于很多时候都是在没有网络的情况下安装,所以下载rpm包来安装,我这里环境如下: 系统:redhat enterprise 6.5 vsftpd安装包:vsftpd-3.0.2-21.el7.x86_64.rpm

1、安装

rpm -ivh vsftpd-3.0.2-21.el7.x86_64.rpm

2、测试是否安装成功

[root@localhost ~]# service vsftpd start
  为 vsftpd 启动 vsftpd:[确定]

二、配置

[root@localhost ~]#cd /etc/vsftpd

备份: cp vsftpd.conf vsftpd.conf_bak 编辑: vi vsftpd.conf

1、关闭匿名登录 关闭匿名登录可增强安全性,防止×××轻易占领你的电脑 anonymous_enable=NO

2、锁定根目录 锁定根目录同样提高安全性,防止用户访问到本不在FTP范围内的文件,同时,类似光闸服务等业务都需要锁定根目录才能运行。 chroot_local_user = YES

`vi /etc/vsftpd/chroot_list

在文件内加入可以访问的用户,每个用户名一行

3、端口控制 先查看iptables设置 iptables -nL 将21号端口插入到INPUT的ACCEPT中 iptables -I INPUT 5 -p tcp --dport 21 -j ACCEPT ## rulenum为5 ,在INPUT中REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited之前 插入到INPUT的ACCEPT后查看 #iptables -nL --line-numbers

4、添加用户 useradd -d /home/ftp -s /sbin/nologin ftp   passwd ftp   输入用户密码 再次输入密码   重新启动   service vsftpd stop   service vsftpd start

5、selinux的相关设置项 #setsebool -P ftp_home_dir 1 #setsebool -P allow_ftpd_full_access 1

6、关闭防火墙 永久性生效 开启:chkconfig iptables on 关闭:chkconfig iptables off 即时生效,重启后失效 开启:service iptables start 关闭:service iptables stop

有些系统中的防火墙为firewalld,需要开启对应端口

firewall-cmd –zone=public –add-port=21/tcp –permanent 开启21号端口 
systemctl restart firewalld.service  重启防火墙
firewall-cmd --zone=public --list-port   查看防火墙开启端口
21/tcp

7、被动模式 主动模式用于ftp服务端访问,浏览器访问需要开启被动模式 /etc/vsftpd/vsftpd.conf下添加

pasv_min_port=30000
pasv_max_port=40000

开启30000-40000的防火墙端口

firewall-cmd –zone=public –add-port=30000-40000/tcp –permanent 开启30000到40000的端口 

8、密码过期 查看密码情况

chage username -l

设置密码永久期限

chage username -M 99999

9、设置自启动 [root@localhost /]# chkconfig --list|grep vsftpd vsftpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off 上面显示vsftpd 在linux任何工作等级下都没有自启动 [root@localhost /]# chkconfig vsftpd on 上面这条命令设置vsftpd自启动 [root@localhost /]# chkconfig --list|grep vsftpd vsftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off 上面显示表明vsftpd在Linux工作2,3,4,5等级下都会自启动服务。

三、用命令行测试

>ftp <ip> <端口>
ftp> get test.html  a.html(回车) 
ftp> dir (回车) 
ftp> bye(回车) 退出 ftp 模式