ip_conntrack_ftp ftp设置(待解决)

FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。

Port模式:ftp server:tcp 21 <------client:dynamic ftp server:tcp 20 ------>client:dynamic

Pasv模式:ftp server:tcp 21 <----client:dynamic ftp server:tcp dynamic <----client:dynamic
PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户 端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条 数据链路来传送数据。
PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务 器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来 传送数据。

本文用到ip_conntrack_ftp模块

对modprobe命令不了解的可以先看看我的这篇博客:[url=http://saplingidea.iteye.com/blog/484765]modprobe命令[/url]

iptables模块关系:
1、modprobe ip_tables
当 iptables 对 filter、nat、mangle 任意一个表进行操作的时候,会自动加载 ip_tables 模块
另外,iptable_filter、iptable_nat、iptable_mangle 模块也会自动加载。

2、modprobe ip_conntrack
ip_conntrack 是状态检测机制,state 模块要用到
当 iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 时,ip_conntrack 自动加载。

3、modprobe ip_conntrack_ftp
ip_conntrack_ftp 是本机做 FTP 时用的。
ip_nat_ftp 是通过本机的 FTP 需要用到的(若你的系统不需要路由转发,没必要用这个)
当 modprobe ip_nat_ftp 时,系统自动会加载 ip_conntrack_ftp 模块。

具体设置
加载模块(ports=21可以不写,如果用其他端口时要加上):
[quote]sudo modprobe ip_conntrack_ftp ports=21[/quote]
iptables设置(我的默认DROP所有,只开启要用的端口):
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 21 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 20 -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 20 -j ACCEPT


[color=red]我用pure-ftp做试验。
问题:客户端连接服务器只能通过Port模式连接,因为我默认DROP了所有高端口,这一来用ip_conntrack_ftp的意义就没了。我是想只开21和20端口对外提供主动和被动模式ftp服务。应该用nat能解决?网上有加载ip_nat_ftp模块和ip_conntrack_ftp的,不太懂怎么用,有谁知道怎么解决?指点一下,感激不尽![/color]

具体情况如下:
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:10080 0.0.0.0:* LISTEN
tcp 0 0 10.3.37.110:41505 0.0.0.0:* LISTEN #Pasv模式协商的数据端口
tcp 0 0 10.3.37.110:49861 0.0.0.0:* LISTEN #Pasv模式协商的数据端口
tcp 0 0 10.3.37.110:26218 0.0.0.0:* LISTEN #Pasv模式协商的数据端口
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 0 10.3.37.110:38605 0.0.0.0:* LISTEN #Pasv模式协商的数据端口
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
tcp 0 0 10.3.37.110:44792 0.0.0.0:* LISTEN #Pasv模式自动协商的数据端口
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 1 0 10.3.37.110:21 10.5.28.185:2436 CLOSE_WAIT
tcp 0 0 10.3.37.110:21 10.5.28.185:2439 ESTABLISHED #正在连接的
tcp 1 0 10.3.37.110:21 10.5.28.185:2412 CLOSE_WAIT #客户端关闭而不能正常关闭的连接
tcp 1 0 10.3.37.110:21 10.5.28.185:2403 CLOSE_WAIT #客户端关闭而不能正常关闭的连接
tcp 1 0 10.3.37.110:21 10.5.28.185:2419 CLOSE_WAIT #客户端关闭而不能正常关闭的连接
tcp 1 0 10.3.37.110:21 10.5.28.185:2423 CLOSE_WAIT #客户端关闭而不能正常关闭的连接

iptables设置:
# Generated by iptables-save v1.3.5 on Mon Oct 12 00:05:43 2009
*filter
:INPUT DROP [2364:220265]
:FORWARD DROP [0:0]
:OUTPUT DROP [181:8260]
-A INPUT -i lo -j ACCEPT
-A INPUT -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -p udp -m udp --sport 53 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 10080 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 20 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -p udp -m udp --sport 53 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 22 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 10080 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 25 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 80 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 20 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 21 -j ACCEPT
COMMIT
# Completed on Mon Oct 12 00:05:43 2009
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值