1.确认主机IP
[root@www data]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:22:05:B8
inet addr:10.0.0.3 Bcast:10.255.255.255 Mask:255.0.0.0
2.关闭文件保护
[root@www data]#vi /etc/selinux/config
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
:wq! #保存退出
setenforce 0 #使配置立即生效
3.安装vsftpd
[root@www data]# yum install vsftpd -y
4.编辑vsftpd配置文件
[root@www data]# vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO ## 匿名登录 关闭
local_enable=YES ## 本地登录 开启
write_enable=YES ## 本地用户的写入权限 开启
local_umask=022 ##使用FTP的本地文件权限
dirmessage_enable=YES # #是否显示目录下.message的内容
xferlog_enable=YES # 激活上传/下载的日志
connect_from_port_20=YES # # 启用FTP数据端口的数据连接
xferlog_std_format=YES # 使用标准的日志格式
listen=YES # 以独立的FTP服务运行
listen_port=2121 # 修改连接端口
pam_service_name=vsftpd #验证方式
userlist_enable=YES # 用userlist来限制用户访问
tcp_wrappers=YES #### 限制登录
pasv_enable=YES # 是否开户被动模式
pasv_min_port=8000 # 被动模式最小端口
pasv_max_port=9000 ## 被动模式最大端口
setproctitle_enable=YES #为每个连接单独开一个进程
5.编辑防火墙策略
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8000:9000 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
6.查看iptables策略
[root@www data]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT)
target prot opt source destination
RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain RH-Firewall-1-INPUT (2 references)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:20
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:21
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpts:8000:9000
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
7.加载ftp模块
lsmod | grep ftp ## 查看是否加载了ftp模块
modprobe ip_nat_ftp ## 加载ftp模块
lsmod | grep ftp ## 再查看是否加载了ftp模块
8.新建FTP目录和用户 权限
[root@www data]# mkdir /data ## 创建FTP的目录在/data
[root@www data]# useradd -d /data -s /sbin/nologin htu ## 创建FTP用户
[root@www data]# password yanghongfei ## 设置用户密码
[root@www data]# chmod -R 777 /data ## 设置用户权限
[root@www data]# chown -R htu:htu /data ## 设置文件夹的属主属组
7.重启vsftpd服务和防火墙服务
[root@www data]# service vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]
[root@www data]# service iptables restart
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
Applying iptables firewall rules: [ OK ]
Loading additional iptables modules: ip_conntrack_netbios_n[ OK ]
8.测试能不能成功访问