iptables实战系列:通过NAT转发实现私网对外发布信息

本文涉及的产品
公网NAT网关,每月750个小时 15CU
简介:

原文请见:http://os.51cto.com/art/201109/289486.htm

 

本文将介绍一个使用iptables实现NAT转发功能的案例。

 

本文案例中,我们假设有一家ISP提供园区Internet接入服务,为了方便管理,该ISP分配给园区用户的IP地址都是私网IP,通过该私网IP用户无法向外发布信息。但是,部分用户要求建立自己的WWW服务器对外发布信息。

我们可以在防火墙的外部网卡上绑定多个合法IP地址,然后通过ip映射使发给其中某一个IP地址的包转发至内部某一用户的WWW服务器上,然后再将该内部WWW服务器响应包伪装成该合法IP发出的包。

具体的IP分配如下: 

(1)该ISP分配给A单位www服务器的IP为:

私网ip:172.168.92.100

公网ip:210.95.33.100

(2)该ISP分配给B单位www服务器的IP为:

私网ip:172.168.92.200

公网ip:210.95.33.200

(3)Linux防火墙的IP地址分别为:

内网接口eth1:172.168.92.10

外网接口eth0:210.95.33.1

然后,我们需要进行如下步骤地操作:

(1)将分配给A、B单位的真实ip绑定到防火墙的外网接口,以root权限执行以下命令:

#ifconfig eth0 add 210.95.33.100 netmask 255.255.255.0
#ifconfig eth0 add 210.95.33.200 netmask 255.255.255.0

(2)成功升级内核后安装iptables,然后执行以下脚本载入相关模块:

modprobe ip_tables
modprobe ip_nat_ftp

(3)对防火墙接收到的目的ip为210.95.33.100和210.95.33.200的所有数据包进行目的NAT(DNAT):

#iptables -A PREROUTING -i eth0 -d 210.95.33.100 -j DNAT --to 172.168.92.100
#iptables -A PREROUTING -i eth0 -d 210.95.33.200 -j DNAT --to 172.168.92.200

(4)对防火墙接收到的源ip地址为172.168.92.100和172.168.92.200的数据包进行源NAT(SNAT):

#iptables -A POSTROUTING -o eth0 -s 172.168.92.100 -j SNAT --to 210.95.33.100
#iptables -A POSTROUTING -o eth0 -s 172.168.92.200 -j SNAT --to 210.95.33.200

这样,所有目的ip为210.95.33.100和210.95.33.200的数据包都将分别被转发给172.168.92.100和172.168.92.200;而所有来自172.168.92.100和172.168.92.200的数据包都将分别被伪装成由210.95.33.100和210.95.33.200,从而也就实现了ip映射。 




















本文转自samsunglinuxl51CTO博客,原文链接: http://blog.51cto.com/patterson/676919,如需转载请自行联系原作者


相关文章
|
6月前
|
负载均衡 应用服务中间件 Linux
企业实战(13)LVS负载均衡NAT(网络地址转换)模式实战详解(一)
企业实战(13)LVS负载均衡NAT(网络地址转换)模式实战详解(一)
|
6月前
|
Linux
centos使用iptables实现nat端口转发
centos使用iptables实现nat端口转发
246 4
|
10月前
|
网络协议 Docker 容器
docker启动报错 (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 9876 -j DNAT --
docker启动报错 (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 9876 -j DNAT --
287 0
|
5月前
|
网络安全 Docker 容器
ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule
ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule
|
8月前
|
运维 网络安全 Docker
docker报错ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule
docker报错ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule
297 0
|
网络协议 Linux
iptables之SNAT与DNAT(二)
iptables之SNAT与DNAT(二)
iptables之SNAT与DNAT(二)
|
网络协议 Linux 网络安全
|
机器学习/深度学习 缓存 负载均衡
LVS 的 NAT 模型实战应用(二)|学习笔记
快速学习 LVS 的 NAT 模型实战应用
97 0
LVS 的 NAT 模型实战应用(二)|学习笔记
|
负载均衡 网络架构 开发者
LVS 的 NAT 模型实战应用(三)|学习笔记
快速学习 LVS 的 NAT 模型实战应用
54 0
LVS 的 NAT 模型实战应用(三)|学习笔记
|
机器学习/深度学习 缓存 负载均衡
LVS的NAT模型实战应用|学习笔记
快速学习LVS的NAT模型实战应用
114 0
LVS的NAT模型实战应用|学习笔记