iptables配置vsftp访问

时间:2023-11-18 09:24:02
一、FTP服务简介
   FTP服务器有两种工作模式:主动模式和被动模式。这两种方式的特点如下:
 (1)主动模式下:
  tcp, 20(20号端口用于数据传输),21(21号端口用于控制连接)
 (2)被动模式:
  tcp, 21(用于控制连接) >1023(端口号大于1023的随机端口用于数据传输)
  所以如果FTP工作在被动模式下,无法指定数据传输的端口,于是引入了RELATED状态。RELATED主要用于  追踪与其相关的端口。注意:ftp工作在主动模式或者被动模式与客户端的请求有关。
二、开放被动模式下的FTP服务。
 具体步骤如下:
  1、先开放ssh:
   iptables -A INPUT -i lo -j ACCEPT
   iptables -A OUTPUT -i lo -j ACCEPT(先开放本地连接)
   
   iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
   iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT(放行所有的ESTABLISHED连接)
   
   iptables -A INPUT -d 172.16.100.1 -p tcp --dport 22 -m state --state NEW -m connlimit ! --connlimit-above 3 -j ACCEPT  (放行ssh连接,并将其最大连接数设为3)
   
   iptables -P INPUT DROP
   iptables -P OUTPUT DROP (将默认策略设置为禁止)
      
    iptables -L -n -v (查看iptables详细信息)
  2、开放ftp服务:
   注意要开放被动模式下的服务需要用到,ftp的追踪模块:
   #cat /etc/sysconfig/iptables-config(查看iptables需要的模块,主要是ip_nat_ftp模块,属于内核模块)
   #lsmod | grep ftp (查看是否加载ftp模块)
   #modprobe ip_nat_ftp(加载ftp模块)
   #lsmod | grep ftp (查看模块是否被加载)
   这样RELATED就可以被使用了:
   iptables -A INPUT -d 172.16.100.1 -p tcp --dport 21 -m state --state NEW -j ACCEPT(允许21号端口进入,即:开放控制连接)
   iptables -A INPUT -m state --state RELATED -j ACCEPT
   iptables -A OUTPUT -m state --state RELATED -j ACCEPT