论坛风格切换切换到宽版
  • 689阅读
  • 6回复

[问题求助]ftp端口映射问题求教 [复制链接]

上一主题 下一主题
离线习惯.
 
发帖
1990
C币
-235622
威望
363
贡献值
1
银元
-3
铜钱
4376
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-01
网关 单网卡,绑定双ip 外eth.0  内. eth1--- 印刷
内部ftp服务器192.168.1.44:21.00,默认网.关设为eth1.

在网关上设了如下规则
echo "1" .> /pro.c/sys/net/ipv4/ip_forward<性病>
ip.tables -t nat -A PREROUTING -p .tcp -d eth0 -dport 2100 -j DNA.T --to 192.168.1.44:2100电脑
iptabl.es -t nat -A POSTROUTING -p tcp -d 19.2.168.1.44 --dport 2100 -j SNAT --to. eth1教育

iptables -P. FORW.ARD ACCEPT            杀毒

这样添加规则后,在外部网络访.问ftp服务器能显示连上,但是list文件的时候出错,说socket错误,连接.超时

问题处在哪里呢?

评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线uranas.
发帖
1976
C币
3483
威望
369
贡献值
2
银元
-2
铜钱
4543
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-13


QUOTE:iptables -t nat -A PREROUTING -p tcp -d eth0 -dport 2100 -j DNAT --to 192.168.1.44:2100
iptables -t nat -A POSTROUTING -p tcp -d 192.168.1.44 --dport 2100 -j SNAT --to eth1

1、语法错误,红色部分全是
2、逻辑错误,蓝色部分
3、POSTROUTING 的使用属于画蛇添足
4、另外,即使语法正确了,也依然无法正常工作
   这是典型的 FTP 被动模式下的防火墙连接追踪问题
   解决方法:

# modprobe ip_nat_ftp ports=2100

在置顶的下周要讲的 iptables 讲座贴子中,有我一篇 PPT 初学者教程,你应该先好好看一下

发帖
2063
C币
-60532
威望
431
贡献值
1
银元
-1
铜钱
4810
人人网人气币
0
只看该作者 板凳  发表于: 2010-04-13
谢谢这么详细的指出我的错误
ppt我看了,还有两点不明白
1、逻辑错误是怎么回事呢?
2、iptables相关模块我都编进内核里去了,那应该怎么设置呢

离线ft16.
发帖
2054
C币
-198567
威望
421
贡献值
2
银元
0
铜钱
4653
人人网人气币
0
只看该作者 地板  发表于: 2010-04-13


QUOTE:原帖由 stankeeper 于 2006-3-14 20:12 发表
谢谢这么详细的指出我的错误
ppt我看了,还有两点不明白
1、逻辑错误是怎么回事呢?
2、iptables相关模块我都编进内核里去了,那应该怎么设置呢

1、POSTROUTING 数据包通过 Linux 的最后一步,方向是流出,-d 是目的地址,你用在这里当然是逻辑错误了
2、如果是 <M> 就可以,如果是 <*> 恐怕你要该回 <M> 了

离线klxqlqw.
发帖
2074
C币
-262870
威望
355
贡献值
2
银元
-3
铜钱
4474
人人网人气币
0
只看该作者 4楼 发表于: 2010-04-13


QUOTE:原帖由 platinum 于 2006-3-14 20:39 发表

1、POSTROUTING 数据包通过 Linux 的最后一步,方向是流出,-d 是目的地址,你用在这里当然是逻辑错误了
2、如果是 <M> 就可以,如果是 <*> 恐怕你要该回 <M> 了


我把端口改成21,第二条规则确实多余的
那SNAT就不能以目的地址来匹配了么?

离线梅花鹿.
发帖
1942
C币
-235492
威望
403
贡献值
1
银元
-4
铜钱
4610
人人网人气币
0
只看该作者 5楼 发表于: 2010-04-13
你应该先了解 POSTROUTING 链是做什么用的,SNAT 动作的功能是什么,再考虑 -d 的目的 IP 如何写
我认为我的那个 PPT 已经讲的很清楚了

离线海龟的.
发帖
2199
C币
-235349
威望
396
贡献值
6
银元
4
铜钱
4851
人人网人气币
0
只看该作者 6楼 发表于: 2010-04-13


QUOTE:原帖由 platinum 于 2006-3-14 21:45 发表
你应该先了解 POSTROUTING 链是做什么用的,SNAT 动作的功能是什么,再考虑 -d 的目的 IP 如何写
我认为我的那个 PPT 已经讲的很清楚了


POSTROUTING链是用来做SNAT的,修改数据包的源ip地址

假设一个外部ip(1.2.3.4)要访问该ftp(192.168.1.44:21),用$eth0表示防火墙外部ip,$eth1表示内部ip
我加了2条规则
iptables -t nat -A PREROUTING -p tcp -d $eth0 -dport 21 -j DNAT --to 192.168.1.44
iptables -t nat -A POSTROUTING -s 192.168.1.44 -j SNAT --to $eth0
数据包的流向是这样的:

数据包(sip:1.2.3.4  dipeth0 dport:21)到达防火墙后,匹配防火墙规则,进行DNAT,数据包变为(sip:1.2.3.4  dip:192.168.1.44 dport:21),然后进行路由判断是转发的数据包,经过FORWARD链进行过滤后到达POSTROUTING链然后送出到达ftp服务器。ftp默认网关为防火墙内部ip,其返回数据包(sip:192.168.1.44 sport:21 dip:sip:1.2.3.4)首先到达防火墙,经过PREROUTING FORWARD ,在POSTROUTING 做SNAT,转换成(sipeth0 sport:21 dip:1.2.3.4),然后就回到(1.2.3.4)

是不是这么走的啊
快速回复
限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
上一个 下一个