WEB开发网
开发学院网络安全防火墙 如何用iptables实现NAT 阅读

如何用iptables实现NAT

 2007-03-12 12:42:13 来源:WEB开发网   
核心提示: 还有一个方面的应用就是重定向,也就是当接收到一个包后,如何用iptables实现NAT(2),不是转发这个包,而是将其重定向到系统上的某一个应用程序, 三、操作语法 如前所述,在使用iptables的NAT功能时,最常见的应用就是和squid配合使用成为透明代理,在对http流量进行缓存的

还有一个方面的应用就是重定向,也就是当接收到一个包后,不是转发这个包,而是将其重定向到系统上的某一个应用程序。最常见的应用就是和squid配合使用成为透明代理,在对http流量进行缓存的同时,可以提供对Internet的无缝访问。

3. NAT的类型

在linux2.4的NAT-HOWTO中,作者从原理的角度将NAT分成了两种类型,即源NAT(SNAT)和目的NAT(DNAT),顾名思义,所谓SNAT就是改变转发数据包的源地址,所谓DNAT就是改变转发数据包的目的地址。

二、原理

在“用iptales实现包过虑型防火墙”一文中我们说过,netfilter是Linux 核心中一个通用架构,它提供了一系列的"表"(tables),每个表由若干"链"(chains)组成,而每条链中可以有一条或数条规则(rule)组成。并且系统缺省的表是"filter"。但是在使用NAT的时候,我们所使用的表不再是"filter",而是"nat"表,所以我们必须使用"-t nat"选项来显式地指明这一点。因为系统缺省的表是"filter",所以在使用filter功能时,我们没有必要显式的指明"-t filter"。

同filter表一样,nat表也有三条缺省的"链"(chains),这三条链也是规则的容器,它们分别是:

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

POSTROUTING:可以在这里定义进行源NAT的规则,系统在决定了数据包的路由以后在执行该链中的规则。

OUTPUT:定义对本地产生的数据包的目的NAT规则。

三、操作语法

如前所述,在使用iptables的NAT功能时,我们必须在每一条规则中使用"-t nat"显示的指明使用nat表。然后使用以下的选项:

上一页  1 2 3 4 5  下一页

Tags:如何 iptables 实现

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接