免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1288 | 回复: 2
打印 上一主题 下一主题

求助:屡次试验内网地址影射,就是不成功 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-11-30 17:19 |只看该作者 |倒序浏览
屡次试验内网地址影射,就是不成功
我用的是iptable中的nat 表作的内网地址转达换,
代码是:
$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -d $INET_IP -p tcp --dport 80 -j DNAT --to-destination 192.168.0.101:80

我在内网中输入192.168.0.101就能打开我的网面,可是直接输入外网地址,通过端口影射就无法显示,一般会是哪里出了问题? 内网中上网没有问题

论坛徽章:
0
2 [报告]
发表于 2005-11-30 17:59 |只看该作者
现在在外网中访问你的网站应该正常了,
但,如果从内网中访问网站,还需要一个snat语句,将从内网中出发的访问包snat到外网地址中去(也就是你的inet_IP)。

其中原因是,内网出发的访问返回包直接就路由到内网卡上出去了,但源地址不是原来的inet_ip,所以这台内网中的工作站就将回应包丢掉了。

[ 本帖最后由 woooo_111 于 2005-11-30 18:01 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2005-12-01 16:01 |只看该作者
已经有一编文章说过此问题,是合理现象。原文:http://www.i170.com/article/6919

在内网设一个dns 服务器吧.

摘:
#iptables –t nat –A PREROUTING –d 1.1.1.1 –j DNAT --to-destination 192.168.1.24
上面的例子说明凡是访问1.1.1.1的数据包都转给内网的192.168.1.24,这样内部的服务器就可以发布出去了。现在问题来了,如果仅仅这样配置还是存在一点问题的,假设内部网络的其他用户也访问这个经过映射后的地址会怎样?当然他们完全可以直接访问服务器的真实地址,但在一些具体的情况下,比如 dns的解析就是指向了映射后的地址。可以加一条这样的语句:
#iptables –t nat –A POSTROUTING –d 1.1.1.1 –j SNAT –to-source 192.168.1.254
在这里,假设防火墙的内网地址是192.168.1.254,通过这样的配置,问题解决了,想一想为什么会这样?看看下面的示意图:也许你就明白了:

知道问题出在哪里了吗?很明显,当客户机192.168.1.23发起一个访问请求给映射后的地址1.1.1.1,防火墙收到这个请求后根据策略表匹配发现是一个对内部服务器192.168.1.24的映射,如果不加上面的那一行语句,防火墙会通过纯路由的方式将数据包转发给服务器 192.168.1.24,服务器收到请求后,发现源地址为192.168.1.23的客户机发来了一个请求,并且这台主机与自己在同一个网段内,于是直接将回应包SYN+ACK发送给主机192.168.1.23,主机收到这个包后会感觉很奇怪,因为它从来就没有给192.168.1.24发送过连接请求报文,所以就会将回应报文丢弃,现在,我们对内网主机通过映射后地址访问内网服务器的需求进行一些修改,如上面的哪条命令,我们对所有到1.1.1.1 的连接都做一个原地址路由,将连接的原地址改变成防火墙的内网接口地址,于是问题解决了。
当然,问题总有两面性,对于服务器而言,所有访问者这时都变成了防火墙内网的接口地址,这对于服务器的审计是有影响的,在具体的配置过程中,使用者需要权衡利弊,在做配置决定。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP