LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1233|回复: 3

看了精华--端口转发:iptables在网络中的一个经典应用 有感

[复制链接]
发表于 2006-9-17 01:13:55 | 显示全部楼层 |阅读模式
看了~端口转发:iptables在网络中的一个经典应用

有一点疑问
其中 文中"Eth0:连接ADSL,即ppp0接口"
eth0 就是eth0 并没即是ppp0接口的说法
用ifconfig可以看到各个接口的状态,如果说eth0即是ppp0,那么ifup-ppp0时,eth0的地址就会是公网的地址

而其中关于端口转发的三条规则,小第就不是很明白第二条和第三条是怎么回事
文中
1. iptables -t nat -A PREROUTING -p tcp -m tcp --dport 881 -j DNAT --to-destination  10.10.2.200:881 ;将881请求转发至10.10.2.00:881端口

2. iptables -t nat -A POSTROUTING -s 10.10.0.0/16 -d 10.10.2.200 -p tcp -m tcp --dport 881  -j SNAT --to-source 10.10.1.1

3. iptables –A INPUT –p tcp –dport 881 –i ppp0 –j ACCEPT


iptables有三个表 1.nat 表 2.filter 表 3. mangle 表
1.nat是做地址转换的,2.filter是用来过滤,3.mangle是用来改包的

nat表中内建了三条链包括是 1.PREROUTING 2.POSTROUTING 3.OUTPUT
1.PREROUTING是在包刚进入接口后,在路由之前,修改目的地址
2.POSTROUTING是在包准备离开接口之前,在路由只后,修改源地址
3.小弟还不知道怎么用

filer表中也内建了三条链是1.INPUT 2.FORWARD 3.OUTPUT
1.INPUT是包进入本机接口的过滤,只是本机(路由器)跟其他机子没有一点关系
2.FORWARD是包转发的过滤,filter表中就这条跟内网的机器发生关系
3.OUTPUT是包离开本机接口的过滤,也只是本机(路由器)跟其他机子没一点关系

第1条rule是把ppp0上881端口监听到的的包转发给10.10.2.200上881端口
我的写法也差不多
iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport 881 -j DNAT --to-destination  10.10.2.200:881

第2条rule,nat的PREROUTING和POSTROUTING链并不象filter表上的链开放端口时填写rule是有去有回.

开ssh的22端口要在INPUT链上写上
iptables -A INPUT -s 192.168.2.16 -p tcp -i eth1 --dport 22 -j ACCEPT
也需要在OUTPUT链上对应的写上
iptables -A OUTPUT -d 192.168.2.16 -p tcp -o eth1 --sport 22 -j ACCEPT

而利用POSTROUTING打开地址转换,只需要加上这条
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o ppp0 -j MASQUERADE
所以第二条是多余的

第3条 PREROUTING ,POSTROUTING 和内网发生地址转换是属于包的转发,而INPUT是路由器自己的接口的过滤,INPUT跟转发没关系.因为转发的过滤是在FORWARD上做的.所以第三条就不知所云了.

迷途的小弟,请高手指点下精华中的第二条和第三条rule是怎么回事
发表于 2006-9-17 16:50:54 | 显示全部楼层
帮你推~~~
据我有限的知识,nat好像是属于forward的。。。
3. iptables –A FORWARD –p tcp –dport 881 –i ppp0 –j ACCEPT
回复 支持 反对

使用道具 举报

发表于 2006-9-18 00:20:32 | 显示全部楼层
首先要说的是,做SNAT的时候就是用POSTROUTING.做DNAT就用PREROUTING !!
其次,二楼所说的什么有来有回.这主要看作者的默认策略怎么写,不过一般都是流进的数据包都是deny的,但是!!!出去的都是放行的.那么这样的情况下就不用写所谓的有来有回.只要添加进站就可以了.
最后.其实原文iptables在网络中的一个经典应用这个文章,只要一个命令就可以实现的.之所以作者写了三个rule那是因为对其forward ,input,output,nat.理解不深所导致.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-19 23:48:56 | 显示全部楼层
3楼的哥们~都说一般的都会设置成DROP,因为做为防火墙本来的目的就是DROP了不必要的连接.要不变成放火墙了~~呵呵
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表