PREROUTING AND POSTROUTING

来源:互联网 发布:视频会议 矩阵音频 编辑:程序博客网 时间:2024/06/08 09:10

Prerouting的作用是数据包刚刚到达防火墙时,改变其目的地址

Postrouting的作用是数据包就要离开防火前之前改变其源地址

PREROUTING:可以在这里定义进行目的NAT的规则,因为路由器进行路由时只检查数据包的目的ip地址,所以为了使数据包得以正确路由,我们必须在路由之前就进行目的NAT
POSTROUTING:可以在这里定义进行源NAT的规则,系统在决定了数据包的路由以后在执行该链中的规则

网络接口:
可以使用--in-interface/-i或--out-interface/-o来指定网络接口。从NAT的原理可以看出,对于PREROUTING链,我们只能用-i指定进来的网络接口;而对于POSTROUTING和OUTPUT我们只能用-o指定出去的网络接口

ip映射
假设有一家ISP提供园区Internet接入服务,为了方便管理,该ISP分配给园区用户的IP地址都是伪IP,但是部分用户要求建立自己的WWW服务器对外发布信息。我们可以再防火墙的外部网卡上绑定多个合法IP地址,然后通过ip映射使发给其中某一 个IP地址的包转发至内部某一用户的WWW服务器上,然后再将该内部WWW服务器响应包伪装成该合法IP发出的包。
此IP映射可以通过TPlink路由器实现 具体修改路由转发即可

实例:

假设有一家ISP提供园区Internet接入服务,为了方便管理,该ISP分配给园区用户的IP地址都是伪IP,但是部分用户要求建立自己的WWW服务器对外发布信息。我们可以再防火墙的外部网卡上绑定多个合法IP地址,然后通过ip映射使发给其中某一 个IP地址的包转发至内部某一用户的WWW服务器上,然后再将该内部WWW服务器响应包伪装成该合法IP发出的包。

 

  我们假设以下情景:

 

  该ISP分配给A单位www服务器的ip为:

 

  伪ip:192.168.1.100

 

  真实ip:202.110.123.100

 

  该ISP分配给B单位www服务器的ip为:

 

  伪ip:192.168.1.200

 

  真实ip:202.110.123.200

 

  linux防火墙的ip地址分别为:

 

  内网接口eth1:192.168.1.1

 

  外网接口eth0:202.110.123.1

 

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

 

  ifconfig eth0 add 202.110.123.100 netmask 255.255.255.0

 

  ifconfig eth0 add 202.110.123.200 netmask 255.255.255.0

 

  成功升级内核后安装iptables,然后执行以下脚本:

 

  #载入相关模块

 

  modprobe ip_tables

 

  modprobe ip_nat_ftp

 

  首先,对防火墙接收到的目的ip为202.110.123.100和202.110.123.200的所有数据包进行目的NAT(DNAT):

 

  iptables -A PREROUTING -i eth0 -d 202.110.123.100 -j DNAT --to 192.168.1.100

 

  iptables -A PREROUTING -i eth0 -d 202.110.123.200 -j DNAT --to 192.168.1.200

 

  其次,对防火墙接收到的源ip地址为192.168.1.100和192.168.1.200的数据包进行源NAT(SNAT):

 

  iptables -A POSTROUTING -o eth0 -s 192.168.1.100 -j SNAT --to 202.110.123.100

 

  iptables -A POSTROUTING -o eth0 -s 192.168.1.200 -j SNAT --to 202.110.123.200

 

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

原创粉丝点击