iptables之FORWARD转发链

注意:本机路由转发的时候,才配置FORWARD转发链!

#iptables –A FORWARD –s 192.168.0.0/24 –j ACCEPT

#iptables –A FORWARD –d 192.168.0.0/24 –j ACCEPT

上面只是打通了局域网通过此机的Forward的通道,也就是打通了局域网与外网的链路,实际上并起不到任何的作用,因为在内核里面的转发文件并没有打开,因为我们要手工修改/proc/sys/net/ipv4/ip_forward 的值,将默认的0改为1!(1为打开,0为关闭)

例:#10.0.0.241 -----< 202.96.209.5

内网在访问外网的时候,包在到达外网后,外网不知道也没有办法回应此包给内网的主机,从而使得内外网无法实现通信;所以在网关上要在一个地址转换(NAT)将局域网地址翻译成互联网地址,它是通过NAT表(Network Address Trastation)来实现的。

#iptables –t nat –L –n


Prerouting是在routing之前的,在数据包进入routing之前就可以翻译数据包的目标地址,如果目标确定好了,发出去了,这时要经过postrouting链。( Prerouting是routing之前所经过的链,而postrouting是routing之后所经过的链 )

一、SNAT(源地址转换)


一个包如果目标不是自己,在通过Forward的时候,把源翻译成自己的地址。

源地址转换,只是把源的地址换成了自己的地址,它只能发生在postrouting上,不能发生在prerouting上。


二、DNAT(目标地址转换)



当一个包在进入routing之前,也就是在prerouting的时候,转换它的目标地址。

三、SNAT应用

10.0.0.241主机的网关为10.0.0.254,主机241发送的数据包都要经过254进行转换.

#iptables –t nat –A postrouting –s 10.0.0.0/24 –j SNAT --to-source 192.168.0.254

#iptables –t nat –L –n

在10.0.0.241上访问192.168.0.1   #ping 192.168.0.1 通的.

拨号网关: #iptables –t nat –A postrouting –s 10.0.0.0/24 –j MASQUERADE (伪装)


、DNAT应用


DNAT保护局域网

#iptables –t nat –A prerouting –d 10.0.254 –p tcp –dport 80 –j NAT --to-destination 192.168.0.1


总结:SNAT(源地址转换)发生在postrouting的时候;
    DNAT(目标地址转换)发生在prerouting的时候;




posted @ 2017-04-18 14:11  foreverfriends  阅读(5079)  评论(0编辑  收藏  举报