来自书籍:防线-企业Linux安全运维理念和实战

iptables 必须使用-t选项指定表并进行规则添加;

iptablesNAT 表有3个链,PREROUTING,POSTROUTING,OUTPUT

  • NAT的具体使用

1、源地址NAT

标准NAT:

#iptables –t nat –A POSTROUTING –o < outgoing interface > -j SNAT –to-source

2、MASQUERADENAT

不需要指定源IP地址,使用的源地址就是出站接口的地址。

# iptables–t nat –A POSTROUGING –o < outgoing interface > -j MASQUERADE

在拨号上网时可以使用。

3、目的地址NAT

目的地址有DNATREDIRECT两种形式。

应用于NAT表的PREROUTING链和OUTPUT链。

REDIRECT是一种的特殊的目的地址转换形式,将数据包重定向到NAT设备的输入或回环接口。

PREROUTING中,DNATREDIRECT规则和用来接收通过本地路由转发或送到主机的入站接口的数据包的入站接口有关。也就是说:和iptables-nat所在机器的input网络接口有关。

OUTPUT中,DNATREDIRECT规则用来处理来自NAT主机本身生成的出站数据包。

即:PREROUTING链负责进入nat之前和进入nat时的规则,OUTPUT负责从nat到目的主机。

标准DNAT

#iptables –t nat –A PREROUTING –I 
 -d < destinationaddress > -j DNAT –to-destination < address >#iptables –t nat –A OUTPUT –o < outgoing interface >  -d < destination address > -j DNAT –to-destination< address >

REDIRECTDNAT:

#iptables –t nat –A PREROUTING –I < incomming interface > -d 
 [ --dport port number ] –j REDIRECT [ -d address] [ –dport]#iptables –t nat –AOUTPUT –I 
 -d < destination address > [ --dport port number]–j REDIRECT [ -d address ] [ --dport ]

举例:

#iptables –t nat –A PREROUTING –s 192.168.1.0/24 –I eth1 –j DNAT –to 1.2.3.4#iptables –t nat –A PREROUTING –I eth1 –p tcp –s 192.168.1.0/24 –dport 80 –j REDIRECT–to-port 8880