linux下的软件防火墙iptables——nat表法则的设置-linux运维
1.经过NAT表的PREROUTING链
2.经过路由推断该数据包可否要进入本机,若不进入,则施行下一步操纵
3.经过Filter的FORWARD链
4.经过NAT表的POSTROUTING链,最后传送出去
和NAT相干的是首先步和最后一步,也就是PREROUTING链和POSTROUTING链。
PREROUTING链修改的是目的IP,简称DNAT
POSTROUTING链修改的是源IP,简称SNAT
DNAT
那么哪些场景需要用到DNAT,关于SNAT常见的利用是什么呢?关于DNAT,最常见的是将内网的端口映照到外网中,让其他会员可以拜访。这样做内网的平安性大大提拔,由于外网是不克不及直接和内网进行数据传输的。
场景:内网有一台主机A(192.168.1.111)上面架设了一个网站,内网中还有一台主机B(192.168.1.2)拥有公网ip(39.100.92.12),那么怎样让外网的会员拜访到A上面的网站。
这个时候,就需要对B主机上做DNAT操纵,让目的地址从公网ip39.100.92.12修改为内网地址192.168.1.111。操纵如下:
# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 \ > -j DNAT --to-destination 192.168.1.111:80
PREROUTING链中除了能够对ip做修改,还能对端口进行修改。比方将80端口映照为8080端口,但操纵名已经不叫DNAT,而是REDIRECT。
# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 \ > -j REDIRECT --to-ports 8080
SNAT
关于SNAT,我们最常见的利用是内网机器通过代理办事器上网,内网的主机没有公网IP,那么内网的主机数据包通过代理办事器后,代理办事器就需要将该数据包的源地址修改为该代理办事器的公网ip。
场景:内网有一台主机A(192.168.1.111),内网中还有一台主机B(192.168.1.2)拥有公网ip(39.100.92.12),那么关于主机A怎么操纵可以连贯到公网。
# iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 \ > -j SNAT --to-source 39.100.92.12
关于DNAT以及SNAT的操纵不是很复杂,主如果要了解DNAT以及SNAT的利用场景,刚开端学的时候容易弄混同,但愿大家能主要到它们的区别。