欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

利用iptables开放被动模式下的FTP服务

程序员文章站 2022-05-22 21:20:45
...
一、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