|
发表于 2005-11-8 22:15:41
|
显示全部楼层
# eth0 = 10.168.172.254 (内网)
# eth1 = 61.143.A.B (互联网IP)
# eth1:0 = 61.143.A.C (互联网IP)(跟上面的eth1同一个网卡)
# 上述已经设置好,可用。
#
# 操作目标:
# 1.使得内网的计算机的网关用 10.168.172.254 就能访问互联网,浏览网页、上QQ等;
# 2.使得互联网上的用户输入 61.143.A.C 或 www.xxxxxx.com (指向61.143.A.C) 就能访问内网的OA服务器,并且被web识别真实IP(即通过互联网访问时候,web服务器得到客户端的IP不是10.168.172.254而是客户端的互联网IP
# 允许转发
echo 1 > /proc/sys/net/ipv4/ip_forward
============================
分析:
10.168.172.242是内网的OA服务器(需要对外提供服务,以61.143.A.C的地址)
10.168.172.0/24是内网
首先必须对OA服务器进行SNAT
iptables -t nat -A POSTROUTING -s 10.168.172.242 -j SNAT --to-source 61.143.A.C
然后对OA服务器进行DNAT
iptables -t nat -A PREROUTING -d 61.143.A.C -p tcp --dport 80 -j DNAT --to- destination 10.168.172.242
这样做,保证OA服务器对外时以61.143.A.C的身份出现,而外网访问61.143.A.C的80端口时将定向到OA服务器
# 共享一个Internet连接 针对 61.143.A.B
iptables -t nat -A POSTROUTING -s 10.168.172.0/24 -j SNAT --to-source 61.143.A.B
因为netfilter执行时是按照顺序执行的,所以必须先对OA服务器做SNAT,然后再对其他的机器做SNAT
这么设置规则后,内网用户将不能以61.143.A.C的地址访问OA服务器。 |
|