1.查看是否安装了ftp
[root@localhost ~]# rpm -qa |grep vsftpd
如果没有任何输出,表示没有安装。
如果出如下现版本信息,则表示已经安装。
vsftpd-3.0.2-25.el7.x86_64
2.安装ftp
[root@localhost ~]# yum install vsftpd -y
默认安装目录:/etc/vsftpd
3.添加ftp账号
[root@localhost ~]# useradd ftpadmin -s /sbin/nologin
[root@localhost ~]# passwd ftpadmin
该账户路径默认指向/home/ftpadmin目录
/sbin/nologin是不允许系统login,可以使用其他ftp等服务
【特别注意】
ftp会根据/etc/shells这个文件来判断一个用户是否是有效用户,那些shell不在/etc/shells里的用户会被阻止登陆.所以如果ftp用户的登录shell为/sbin/nologin 则添加到/etc/shells文件里面
[root@localhost etc]# vim /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/sbin/nologin
4.ftp配置
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
a.设置ftp目录
local_enable=YES
local_root=/home/ftpadmin/myfile
b.设置连接端口
connect_from_port_20=YES
pasv_min_port=30001
pasv_max_port=31000
5.启动测试
a.启动vsftpd服务
[root@localhost ~]# service vsftpd start
b.查看IP
[root@localhost ~]# ifconfig
获取IP为192.168.139.129
c.浏览器输入ftp://192.168.139.129/登陆
发现无法连接
关闭防火墙 [root@localhost ~]# service firewalld stop
再次连接ftp://192.168.139.129/登陆
6.安装iptables
CentOS 7以后使用firewalld而不是iptables,所以需要安装iptables
[root@localhost ~]# yum install iptables -y
7.iptables添加端口设置
[root@localhost ~]# vim /etc/sysconfig/iptables
[root@localhost ~]# iptables -A INPUT -p tcp --dport 21 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -p tcp --dport 20 -j ACCEPT
[root@localhost ~]# iptables -A OUTPUT -p tcp --sport 21 -j ACCEPT
[root@localhost ~]# iptables -A OUTPUT -p tcp --sport 20 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -p tcp --dport 30001:31000 -j ACCEPT
[root@localhost ~]# iptables -A OUTPUT -p tcp --sport 30001:31000 -j ACCEPT
[root@localhost ~]# service iptables save
[root@localhost ~]# service iptables restart
8.iptables-config添加加载模块
[root@localhost ftpadmin]# vim /etc/sysconfig/iptables-config
IPTABLES_MODULES=“ip_conntrack_ftp”
9.设置开机启动
[root@localhost ~]# systemctl disable firewalld.service
[root@localhost ~]# systemctl enable iptables.service
[root@localhost ~]# systemctl enable vsftpd.service
10.重启生效
[root@localhost ~]# reboot