linux防火墙NAT表原理及实操

目录

一、iptables保存规则

1、持久保存iptables规则

2、加载规则

3、开机自动重载规则

二、自定义链

1、创建自定义链

2、修改自定义链名

3、创建规则

4、删除自定义链

三、NAT表

1、SNAT

2、DNAT


一、iptables保存规则

使用iptables命令定义的规则,都是临时性的,其生效期限为kernel存活期限,一旦系统重启,之前定义的规则都会丢失。

1、持久保存 iptables规则

iptables-save > 文件

将设置的规则重定向放置到一个备份文件中,文件名和路径自定义

2、加载规则

iptables-restore < 文件

将备份文件中的规则重定向导入

3、开机自动重载规则

将加载规则写入 /etc/rc.d/rc.local 的配置文件中,可以让系统重启即可生效。注意要给文件执行权限!

二、自定义链

自定义链类似于函数,将类型相同的规则放入一个自定义链中,然后再调用整个规则

1、创建自定义链

iptables -N 链名

2、修改自定义链名

iptables -E 旧链名 新链名

3、创建规则

创建好自定义链后在链中创建规则,但自定义链中的规则并不可以可以直接使用,因为自定义链中没有对应的钩子函数,所以需要把自定义链放到系统自带的五个链中使用。

4、删除自定义链

删除自定义链需要先使用iptables -F清空规则,再使用iptables -X +自定义链名删除

三、NAT表

NAT表的作用是地址转换规则表,可以修改数据包中的源、目标ip或端口,支持PREROUTING,INPUT,OUTPUT,POSTROUTING四个链,分为SNAT和DNAT。

1、SNAT

SNAT的作用是让内网设备可以访问外网。私网地址不能在Internet中正常路由,通过SNAT将私网源地址转换为公网ip,从而访问公网上的设备。

SNAT转换前提条件:

①局域网各主机已正确设置IP地址、子网掩码、默认网关地址

②Linux网关开启IP路由转发

SNAT实验:

①关闭三台设备的firewalld和安全机制 ,在test1外网服务器上yum安装httpd软件

②开启网关服务器test2的路由转发功能

③给网关服务器test2添加网卡,并更改网卡的配置文件,重启网络服务

④配置内网服务器test3的网卡,重启网络服务

⑤配置外网服务器test1的网卡,重启网络服务

⑥在网关服务器test2上设置SNAT

⑦在内网服务器test3上使用curl检测

2、DNAT

DNAT的作用是让外网设备访问到内网的机器,改变目的地址,保证了内网服务器的安全,通常被叫做目的映谢。

DNAT转换前提条件:

①局域网的服务器能够访问Internet

②网关的外网地址有正确的DNS解析记录

③ Linux网关开启IP路由转发

DNAT实验:

①关闭三台设备的firewalld和安全机制 ,在test3内网服务器上yum安装httpd软件

②开启网关服务器test2的路由转发功能

③给网关服务器test2添加网卡,并更改网卡的配置文件,重启网络服务

④配置内网服务器test3的网卡,重启网络服务

⑤配置外网服务器test1的网卡,重启网络服务

⑥在网关服务器test2上设置DNAT

⑦在外网服务器test1上使用curl检测

相关推荐
NailiConveyor7 小时前
柔性物流方案如何适配工厂升级?自动化输送流水线定制要点
大数据·运维·自动化·制造·业界资讯
Lsetea7 小时前
Certbot webroot申请SSL证书总是404:Nginx挑战目录与路径映射检查
运维·nginx·https·ssl证书·certbot
如若1237 小时前
Windows SSH + Headscale/Tailscale 组网及免密登录完整配置教程
运维·windows·ubuntu·ssh·内网穿透
开开心心就好7 小时前
音频降噪剪辑工具,音量裁剪一键处理
运维·服务器·前端·spring·ocr·音视频·1024程序员节
一枕槐安4877 小时前
大模型限流、重试、超时处理:API 调用健壮性方案
linux·服务器·php·大模型api·指数退避·限流控制·超时预算
黑十7 小时前
PyTorch 报 “no CUDA GPUs are available“ 怎么办?3 步排查
服务器·网络·人工智能·pytorch·python
西索斯coding7 小时前
gpt-image-2.5-sunburst 和 gemini-3.1-flash-image 差多少?60 组项目素材的成功成本评测框架
java·linux·gpt·ai
箓维8 小时前
应用层协议基础_序列化与反序列化
linux
李纲明8 小时前
WordPress 白屏或提示「出现了严重错误」:先开 WP_DEBUG 抓致命错误,再二分插件与主题
运维·php·debug·wordpress·白屏·插件冲突·devdiy
wuminyu8 小时前
Java字节码学习总结:字节码如何加载、解析和执行
java·linux·c语言·jvm·c++