防火墙——SNAT和DNAT策略的原理及应用、防火墙规则的备份、还原和抓包

防火墙——SNAT和DNAT策略的原理及应用、防火墙规则的备份、还原和抓包

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。


推荐:Linux运维老纪的首页,持续学习,不断总结,共同进步,活到老学到老
导航剑指大厂系列:全面总结 运维核心技术:系统基础、数据库、网路技术、系统安全、自动化运维、容器技术、监控工具、脚本编程、云服务等。
常用运维工具系列:常用的运维开发工具, zabbix、nagios、docker、k8s、puppet、ansible等
数据库系列:详细总结了常用数据库 mysql、Redis、MongoDB、oracle 技术点,以及工作中遇到的 mysql 问题等
懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂
非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

目录

1、SNAT策略及应用

1.1、SNAT 策略概述 

1.2、SNAT 策略的应用

2、DNAT 策略及应用 

2.1、DNAT 策略概述 

2.2、DNAT 策略的应用 

3、规则的导出、导入 

3.1、规则的备份及还原 

3.2、使用 iptables 服务 

4、使用防火墙脚本 

4.1、防火墙脚本的构成 

(4.2)防火墙脚本示例 

1、SNAT策略及应用

Linux 防火墙在很多时候承担着连接企业内、外网的重任,除了提供数据包过滤功能以外,还提供一些基本的网关应用。本章将学习 Linux 防火墙的SNAT和DNAT 策略,分别掌握两个典型的应用:局域网共享一个公网 IP 地址接入 Internet;向 Internet 发布位于内网的应用服务器。本章还将学习防火墙脚本的使用。首先介绍的是 SNAT 策略及应用 。

SNAT(Source Network Address Translation,源地址转换)是 Linux 防火墙的一种地址转换操作,也是 iptables 命令中的一种数据包控制类型,其作用是根据指定条件修改数据包的源 IP 地址。
1.1、SNAT 策略概述 

随着 Internet 网络在全世界范围内的快速发展,IPv4 协议支持的可用 IP 地址资源逐渐变少,资源匮乏使得许多企业难以申请更多的公网 IP 地址,或者只能承受一个或者少数几个公网 IP 地址的费用。而与此同时,大部分企业面临着将局域网内的主机接入 Internet 的 需求。 

通过在网关中应用 SNAT 策略,可以解决局域网共享上网的问题。下面以一个小型的企业网络为例。Linux 网关服务器通过两块网卡 ens33、ens37 分别连接 Internet 和局域网, 如下图所示,分析局域网主机访问 Internet 的情况。 

 局域网共享接入 Internet

(1)只开启路由转发,未设置地址转换的情况

正常情况下,作为网关的 Linux 服务器必须打开路由转发,才能沟通多个网络。未使用地址转换策略时,从局域网 PC(如 192.168.1.234)访问 Internet 的数据包经过网关转发后其源 IP 地址保持不变,当 Internet 中的主机收到这样的请求数据包后,响应数据包将无法正确返回(私有地址不能在 Internet 中正常路由),从而导致访问失败,如下图所示 。

 未设置 SNAT 转换时的访问情况 

(2)开启路由转发,并设置 SNAT 转换的情况

如果在网关服务器中正确应用 SNAT 策略,数据包转发情况就不一样了。当局域网 PC 访问 Internet 的数据包到达网关服务器时,会先进行路由选择,若发现该数据包需要从外网接口(如 ens33)向外转发,则将其源 IP 地址(如 192.168.1.234)修改为网关的外网接口地址(如 218.29.30.31),然后才发送给目标主机(如 58.63.236.45)。相当于从网关服务器的公网 IP 地址提交数据访问请求,目标主机也可以正确返回响应数据包,如下图所示。最终实现局域网PC 共享同一个公网 IP 地址接入 Internet。

在上述 SNAT 转换地址的过程中,网关服务器会根据之前建立的 SNAT 映射,将响应数据包正确返回局域网中的源主机。因此,只要连接的第一个包被 SNAT 处理了,那么这个连接及对应数据流的其他包也会自动地被进行 SNAT 处理。另一方面,Internet 中的服务器并不知道局域网 PC 的实际 IP 地址,中间的转换完全由网关主机完成,一定程度上也起 到了保护内部网络的作用。

 已设置 SNAT 转换时的访问情况 
1.2、SNAT 策略的应用

从上一小节的介绍中,我们大致可以了解,SNAT 的典型应用是为局域网共享上网提供接入策略,处理数据包的切入时机是在路由选择之后(POSTROUTING)进行。关键操作是将局域网外发数据包的源 IP 地址(私有地址)修改为网关服务器的外网接口 IP 地址(公有地址)。 

SNAT 策略只能用在 nat 表的 POSTROUTING 链,使用 iptables 命令编写 SNAT 策略 时,需要结合“--to-source IP 地址”选项来指定修改后的源 IP 地址(如-j SNAT --to-source 218.29.30.31)。下面通过两个实例来说明 SNAT 策略的具体用法。 

(1)共享固定 IP 地址上网 

案例需求描述如下。

    Linux 网关服务器通过两块网卡 ens224、ens160 分别连接 Internet 和局域网,其中 ens224的 IP 地址为 192.168.119.1,ens160的 IP 地址为 192.168.23.31。 
    所有局域网 PC 的默认网关设为 192.168.23.31,且已经设置了正确的 DNS 服务器。
    要求 192.168.23.0/24 网段的 PC 能够通过共享方式正常访问 Internet。 根据上述环境,推荐的操作步骤如下。 

(1.1)打开网关的路由转发。 

对于 Linux 服务器,IP 转发是实现路由功能的关键所在,对应为/proc文件系统中的 ip_forward 设置,当值为 1 时表示开启,为 0 时表示关闭。若要使用 Linux 主机作为网关设 备,必然需要开启路由转发。例如,可以修改 sysctl.conf 配置文件,永久打开路由转发功能。 

    [root@rhel01 ~]# vim /etc/sysctl.conf 
    ......  //省略部分内容
    net.ipv4.ip_forward = 1  //将此行写入配置文件
     
    [root@rhel01 ~]# sysctl -p  //读取修改后的配置
    net.ipv4.ip_forward = 1

在测试过程中,若只希望临时开启路由转发,也可以执行以下操作。

[root@rhel01 ~]# echo 1 > /proc/sys/net/ipv4/ip_forward

或者

    [root@rhel01 ~]# sysctl -w net.ipv4.ip_forward=1
    net.ipv4.ip_forward = 1

(1.2)正确设置 SNAT 策略。

通过分析得知,需要针对局域网 PC 访问 Internet 的数据包采取 SNAT 策略,将源地址更改为网关的公网 IP 地址,参考以下操作在网关中设置防火墙规则。若要保持 SNAT 策略长期有效,应将相关命令写入到 rc.local 配置文件,以便开机后自动设置 。

[root@rhel01 ~]# iptables -t nat -A POSTROUTING -s 192.168.23.0/24 -o ens224 -j SNAT --to-source 192.16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linux运维老纪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值