本文主要是介绍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保护局域网
#iptables –t nat –A prerouting –d 10.0.254 –p tcp –dport 80 –j NAT --to-destination 192.168.0.1
这篇关于Iptables之FORWARD转发链的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!