Linux网关配置的疑难
一台双网卡的Linux主机,作为网关分别接在局域网和互联网上,现在要用iptables把从SMTP端口进入的Internet连接定向到局域网内的一台windows邮件服务器中。
用下面两条命令:
iptables -t nat -A PREROUTING -d 主机外网地址 -p tcp --dport 25 -j DNAT --to-destination 内网目标地址
iptables -t nat -A POSTROUTING -d 内网目标地址 -p tcp --dport 25 -j SNAT --to-source 主机内网地址
可以成功实现这个目的,但是局域网内的邮件服务器接收到的对端地址总是这台Linux主机的IP地址,不利于邮件系统的IP过滤。
有什么更好的配置方法,可以使内网主机得到真实的对端互联网地址?
我在FreeBSD版块提过一个类似的问题,欢迎大家去看看。
[ 本帖最后由 zvxcv 于 2006-10-19 15:12 编辑 ]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
就算是如此,多个 -s 192.168.0.0/16 这类内部 lan ip 范围就可以了。
==
后一条命令是为了让内网的其它客户端访问这台邮件服务器,
如果不需要,就不要加。
非常感谢,根据你的指正,去掉第二条iptables命令,果然问题迎刃而解。
我之所以画蛇添足,是因为对iptables机制并不理解,只是依葫芦画瓢模仿了人家的例子。
你所引用的iptables命令有误,我已经在主贴作出了更正。
[ 本帖最后由 zvxcv 于 2006-10-19 15:16 编辑 ]
只要你的 linux 设定好提供 nat 功能, 然后 windows 本身的 default gateway 指向 linux 那台主机内部 ip, 这样表示 windows 都可以透过 linux 连上 internet.
后续你也只是需要上面那个 PREROUTING 叙述即可, 这样后续 windows 收到封包来源看到是实际外面的主机, 而不是 linux 自己.
若是你的 windows 的 default gw 没有指向 linux 那主机对内的 ip, 那你只有你提到的方式可以使用, 无可避免的一定会有你说到的问题.
==