Linux防火墙-nat表

作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

我们经过上小章节讲了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:处理由本地系统生成的数据包。

  • PREROUTING 链:在数据包进入路由决策之前对其进行操作。主要用于 DNAT(目的网络地址转换),比如将外部网络发往特定公网 IP 和端口的数据包转换到内部服务器的私有 IP 和端口。例如,当有外部请求访问公司的网站服务器时,可在该链将公网 IP 对应端口的请求转发到内部的 Web 服务器的私有 IP 和端口。

  • POSTROUTING 链:在数据包经过路由决策准备离开本机时进行操作。主要用于 SNAT(源网络地址转换),通常用于让内网主机能够使用一个公网 IP 访问外部网络。比如将内网多个设备的私有 IP 地址转换为路由器的公网 IP 地址进行通信。

  • OUTPUT 链:用于处理本机产生的数据包。也可以用于一些特殊的 NAT 场景,例如本机作为一个代理服务器时,对本机发出的数据包进行地址转换操作。但相对前两个链,在 NAT 场景中使用频率稍低一些。

二、规则设置及示例

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.4
DNAT
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表

三、重要性及应用场景

  • 内网访问互联网:企业内部通常拥有大量的计算机、服务器和其他网络设备,这些设备一般使用私有 IP 地址范围(如 192.168.x.x、10.x.x.x 等)。通过在企业的网络出口设备(如路由器、防火墙等)上配置 NAT,将内部设备的私有 IP 地址转换为企业的公网 IP 地址,实现内部设备访问互联网上的各种资源。

  • 服务器对外发布:当企业内部有服务器需要对外提供服务时,如 Web 服务器、邮件服务器等,可以使用 NAT 的 DNAT(Destination Network Address Translation,目的网络地址转换)功能。将外部网络对企业公网 IP 特定端口的访问请求,转发到内部服务器的私有 IP 和相应端口上,使得外部用户能够访问到企业内部的服务器。

总结

1.家庭路由器实际上就是sant最典型的代表,dnat是由于运营商限制,没有对普通用户开放。

2.snat如下,服务器B就可以当成路由器,前提是服务器A需要把网关设置成服务器B。

图片

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

图片

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

运维小路

一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!

关注微信公众号《运维小路》获取更多内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值