作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

我们经过上小章节讲了Linux的部分进阶命令,我们接下来一章节来讲讲Linux防火墙。由于目前以云服务器为主,而云服务器基本上就不会使用系统自带的防火墙,而是使用安全组来代替了防火墙的功能,可以简单理解安全组就是web版的防火墙,我们主要从以下几个方面来讲解Linux防火墙:
Linux防火墙-什么是防火墙
Linux防火墙-4表5链
Linux防火墙-filter表
Linux防火墙-nat表(本章节)
Linux防火墙-常用命令
Linux防火墙-案例(一)
Linux防火墙-案例(二)
Linux防火墙-小结
上一小节,我们介绍了filter表,主要功能就是作为服务器入口,主要功能就是限制或者屏蔽服务器的端口,确保服务器的安全,今天就来介绍下nat表,实际上nat表和我们家庭的路由器有相似的功能。
nat
NAT (Network Address Translation) 表在 iptables 中用于实现网络地址转换的功能。NAT 表允许您修改 IP 数据包中的源地址或目的地址,这对于私有网络与公共互联网之间的通信非常有用。NAT 表通常用于以下几种场景:
NAT 表包含三个主要链:PREROUTING:处理所有进入接口的数据包,在它们被路由之前。POSTROUTING:处理所有离开接口的数据包,在它们被路由之后。OUTPUT:处理由本地系统生成的数据包。
二、规则设置及示例
1.基本语法
SNAT
iptables -t nat -A POSTROUTING -s 源地址范围 -o 输出网卡接口 --to-source 转换后的源地址假设要将内网 192.168.1.0/24 网段的所有流量的源地址转换为路由器的公网 IP 1.2.3.4,命令如下:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 1.2.3.4DNAT
iptables -t nat -A PREROUTING -d 公网 IP 及端口 -j DNAT --to-destination 内部服务器私有 IP 及端口如果要将外部访问公网 IP 的 8080 端口的流量转发到内网 IP 为 10.0.0.2 的 80 端口,命令如下:
iptables -t nat -A PREROUTING -d 公网 IP -p tcp --dport 8080 -j DNAT --to-destination 10.0.0.2:80-t nat 添加到nat表,如果不输入则是默认filter表
三、重要性及应用场景
总结
1.家庭路由器实际上就是sant最典型的代表,dnat是由于运营商限制,没有对普通用户开放。
2.snat如下,服务器B就可以当成路由器,前提是服务器A需要把网关设置成服务器B。

3.dnat如下,实际访问服务器A的端口,如果命中dnat规则最终请求会转发到服务器B。

4.以上规则都是范例,并不能真实实现snat和dnat,仅仅是方便了解对应的原理。后面的案例部分会对他进行演示。