LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: mantou

iptables进行IP伪装的疑问?

[复制链接]
 楼主| 发表于 2005-7-4 17:22:40 | 显示全部楼层
接着你的说,就是说,192.168.1.110回复的数据包是按照110这台机器上的网关来的,先发给网关,然后网关再转发给 119.119.119.119,(或者是192.168.123.108), 现在收不到包,是不是在网关(adsl路由器)这里的转发中没有转发到119.119.119.119的规则而只有到192.168.1.0/24网段, 所以就丢弃了包?

是这么回事么??   还是他仍然会把包广播到网络中?
回复 支持 反对

使用道具 举报

发表于 2005-7-4 19:08:46 | 显示全部楼层
基本上,我认为是这么一个原因。所以报文的流程大概应该是这样的:
  1.   
  2. debian(192.168.1.108: SNAT) ---(request)---> ping_dst(192.168.1.110)
  3. ADSL default gateway <===(reply: to 119.119.119.119)=== ping_dst(192.168.1.110)
复制代码


不过,应该不是 ADSL default gateway “没有转发到119.119.119.119的规则而只有到192.168.1.0/24网段, 所以就丢弃了包?”。因为 ADSL gw 应该是做 MASQUERADE,也就是相当于 SNAT,所以从 192.168.1.110 回复的报文,原本应该是 (SRC: 192.168.1.110, DST: 119.119.119.119) 的形式,经过 MASQUERADE 后变成 (SRC: x.x.x.x, DST: 119.119.119.119) 而发送到了 Internet 上的实际的那个地址了。
回复 支持 反对

使用道具 举报

发表于 2005-7-4 19:12:03 | 显示全部楼层
楼主可以用 tcpdump 在你的 ADSL gateway 上测试一下看看。
回复 支持 反对

使用道具 举报

发表于 2005-7-4 22:58:04 | 显示全部楼层
看了你们讨论那么多。我还没有清楚楼主需要做什么呢。不过,有一点要肯定的,做了SNAT,又做的DNAT的linux的机器,记得打开FORWARD链。不要老是盯着nat.
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp -d 192.168.1.108  -m state --state NEW -j ACCEPT

然后用SNAT作源地址转换(关键),以使回应包能正确返回,比如:
iptables -t nat -I POSTROUTING -s 192.168.1.0/24 -d 192.168.1.108 -p tcp -m tcp
-j SNAT --to $Gate_Lan_Ip

另外nat也没有规定一定是internet ip的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-7-5 08:33:23 | 显示全部楼层
我只是要试验NAT,测试将这台机器的ip伪装(NAT)使用,来测试iptables。 所以我要NAT的ip网络中没有,但又要能完全通过这个ip来正常使用,不知道可行不?。
这是我的目的,也就是,我要在将这台linux debian的机器,同过iptables把自己伪装,进出数据包都是以119.119.119.119ip通讯的。

谢谢,faint大哥关注这个。感动Ing
回复 支持 反对

使用道具 举报

发表于 2005-7-5 09:32:26 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-7-5 16:47:07 | 显示全部楼层
好像可以了。 非常感谢faint兄, 原因在于我以前写的里面
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j SNAT --to-source 119.119.119.119
没有制定是哪台机器,  少了-d 192.168.1.108

但是我不明白没有加的话,是什么样的情况?包是怎么走的


现在只是搞定了192.168.1.108这台机器能ping 外面的机器,但是别人ping他不行。  
11:22:24.792733 IP 192.168.123.190 > 119.119.119.119: icmp 40: echo request seq 1537
11:22:30.286490 IP 192.168.123.190 > 119.119.119.119: icmp 40: echo request seq 1793
11:22:35.797957 IP 192.168.123.190 > 119.119.119.119: icmp 40: echo request seq 2049
11:22:41.255932 IP 192.168.123.190 > 119.119.119.119: icmp 40: echo request seq 2305
11:22:46.756495 IP 192.168.123.190 > 119.119.119.119: icmp 40: echo request seq 2561

这才是丢了。
iptables -t nat -I POSTROUTING -s 192.168.1.0/24 -d 192.168.1.108 -p tcp -m tcp
-j SNAT --to $Gate_Lan_Ip
这个似乎只能tcp协议才是SNAT成119.119.119.119

现在如何使得 我的机器ping 119.119.119.119  能通呢??     

我的问题比较多,莫怪哦
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-7-8 21:32:39 | 显示全部楼层
这两天,linuxsir好像上不了。 我看了几遍iptables手册。  理解了一些东西。  不错还要多多请教大哥们。
回复 支持 反对

使用道具 举报

发表于 2005-7-8 21:59:20 | 显示全部楼层
怎么写不上去。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-7-11 15:57:45 | 显示全部楼层
faint兄, 是不是  192.168.1.110我的机器ping 119.119.119.119 不能ping通??

   是不是跟网关有关系.
http://iptables-tutorial.frozent ... .19.html#DNATTARGET

参照这个
我加了一个
iptables -t nat -A OUTPUT --dst 119.119.119.119 -p tcp -j DNAT --to 192.168.123.108
是不是错了.
还是 ping 的时候, 是先经过网关192.168.1.254(ADSL 路由器),来查找 119.119.119.119这个的,所以就算我192.168.1.108这台机子上有iptables规则,也没有用.是不是??

  现在是从192.168.1.108 这台linux的机器能ping 192.168.1.110 有结果,但是从192.168.1.110 ping   119.119.119.119 没有反应
回复 支持 反对

使用道具 举报

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

本版积分规则

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