iptables中SNAT、DNAT及iptables服务启动时会自动还原规则

news/2024/10/31 7:30:14/

目录

SNAT原理与应用​编辑

SNAT转换前提条件

临时打开:

永久打开:

示例​编辑

DNAT原理与应用​编辑

DNAT转换前提条件

示例​编辑

防火墙规则的备份和还原

导出(备份)所有表的规则

 清空规则​编辑

导入(还原)规则

iptables服务启动时会自动还原规则


SNAT原理与应用

SNAT 应用环境:局域网主机共享单个公网IP地址接入Internet(私有不能早Internet中正常路由)
SNAT原理:修改数据包的源地址。

SNAT转换前提条件

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

2.Linux网关开启IP路由转发

临时打开:

echo 1 > /proc/sys/net/ipv4/ip_forward

sysctl -w net.ipv4.ip_forward=1

永久打开:

vim /etc/sysctl.conf
net.ipv4.ip_forward = 1         #将此行写入配置文件

sysctl -p                                #读取修改后的配置


SNAT转换1:固定的公网IP地址

iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -o ens33 -j SNAT --to 12.0.0.1
或
iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -o ens33 -j SNAT --to-source 12.0.0.1-12.0.0.10内网IP         出站 外网网卡                 外网IP或地址池     

   SNAT转换2:非固定的公网IP地址(共享动态IP地址)

iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -o ens33 -j MASQUERADE

小知识扩展:

一个IP地址做SNAT转换,一般可以让内网 100到200 台主机实现上网。

示例

服务端

挂载光盘

下载httpd服务

 开启httpd服务,并关闭防火墙

修改网卡

网关服务器

设置两个网卡,一个外网网关IP12.0.0.30,一个内网网关IP192.168.80.30,并重启网络服务

关闭防火墙 

把iptables中关系表全部清空

 修改内核配置文件

 重新加载内核配置文件

 添加规则,允许数据包转换

但是内网连接外网不通,这时候修改配置文件

 客户端

 关闭防火墙,修改内网IP

 在/var/www/html目录下的重定向输出this is test web!到test.html文件中

 在应用程序中浏览器中输入http://12.0.0.200/test.html

 查看日志

DNAT原理与应用

DNAT 应用环境:在Internet中发布位于局域网内的服务器
DNAT原理:修改数据包的目的地址。

DNAT转换前提条件

1.局域网的服务器能够访问Internet
2.网关的外网地址有正确的DNS解析记录
3.Linux网关开启IP路由转发
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1     

sysctl -p             

DNAT转换1:发布内网的Web服务

#把从ens33进来的要访问web服务的数据包目的地址转换为 192.168.80.10
iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.1 -p tcp --dport 80 -j DNAT --to 192.168.80.10
或
iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.80.10入站 外网网卡  外网IP                                               内网服务器IPiptables -t nat -A PREROUTING -i ens33 -p tcp --dport 80 -j DNAT --to 192.168.80.10-192.168.80.20

DNAT转换2:发布时修改目标端口            

#发布局域网内部的OpenSSH服务器,外网主机需使用250端口进行连接
iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.1 -p tcp --dport 250 -j DNAT --to 192.168.80.10:22#在外网环境中使用SSH测试
ssh -p 250 root@12.0.0.1yum -y install net-tools         #若没有 ifconfig 命令可提前使用 yum 进行安装
ifconfig ens33


注意:使用DNAT时,同时还有配合SNAT使用,才能实现响应数据包的正确返回

小知识扩展:
主机型防火墙 主要使用 INPUT、OUTPUT 链,设置规则时一般要详细的指定到端口
网络型防火墙 主要使用 FORWARD 链,设置规则时很少去指定到端口,一般指定到IP地址或者到网段即可

示例

把服务端、客户端还有网关服务器的防火墙全部关掉

systemctl stop firewalld
setenforce 0

客户端设置IP地址

下载httpd服务

 服务端设置IP地址

在/var/log/html/目录中重定向输出hello world!在test.html文件中

 网关服务器

在网关服务器中设置网关IP地址

 修改内核配置文件

 清空iptables关系表

 设置DNAT规则

 设置SNAT规则

 客户端输入私网网址192.168.80.128/test.html

防火墙规则的备份和还原

导出(备份)所有表的规则

iptables-save > /opt/iptables

 清空规则

导入(还原)规则

iptables-restore < /opt/ipt.txt

iptables服务启动时会自动还原规则

将iptables规则文件保存在 /etc/sysconfig/iptables 中,iptables服务启动时会自动还原规则

iptables-save > /etc/sysconfig/iptables
systemctl stop iptables                        #停止iptables服务会清空掉所有表的规则
systemctl start iptables                       #启动iptables服务会自动还原/etc/sysconfig/iptables 中的规则

在/etc/sysconfig/目录下有iptables文件

 把他移动到iptables.bakj

mv iptables{,.bakj}

把iptables-save保存过的文件放在/etc/sysconfig/目录下的iptables文件中 

iptables-save > /etc/sysconfig/iptables

 修改权限,之前的移动的iptables文件权限是600,所以我们也要改为600

 chmod 600 iptables

 

 现在的iptables中配置的规则

 关闭iptables服务(清空iptables)

systemctl stop iptables.service 

重启iptables服务 

systemctl start iptables.service 


http://www.ppmy.cn/news/78418.html

相关文章

在git中如何撤销分支合并

背景 一个项目&#xff0c;主要开发在dev分支&#xff0c;目前dev分支有需求A&#xff0c;在别的菜单页面也有一个需求B&#xff0c;于是在dev分支下新建了一个分支dev_b&#xff0c;打算等A需求上线&#xff0c;再合并dev_b分支到dev。 具体的操作步骤&#xff1a; 在本地切换…

linux(软硬链接)

目录&#xff1a; 1.软连接 2.硬链接 ----------------------------------------------------------------------------------------------------------------------------- 1.软连接 linux当中有两个概念&#xff0c;一个是软连接&#xff0c;一个是硬链接&#xff0c;在学习…

YOLOV5使用(一): docker跑通,详解TensorRT下plugin的onnx

yolov5的工程使用(以人员检测为案例) 使用ubuntu为案例 docker run --gpus all -it -p 6007:6006 -p 8889:8888 --name my_torch -v $(pwd):/app easonbob/my_torch1-pytorch:22.03-py3-yolov5-6.0使用端口映射功能也就是说打开jupyter lab的指令是 http://localhost:8889/l…

小猫踩球-第14届蓝桥杯省赛Scratch中级组真题第2题

[导读]&#xff1a;超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成&#xff0c;后续会不定期解读蓝桥杯真题&#xff0c;这是Scratch蓝桥杯真题解析第137讲。 小猫踩球&#xff0c;本题是2023年5月7日举行的第14届蓝桥杯省赛Scratch图形化编程中级组真题第2题&#xf…

形态学图像处理和图像分割MATLAB实验

文章目录 一、实验目的二、实验内容1. 开运算和闭运算实验。2. 用形态学处理提取边界。4. 全局阈值处理。 一、实验目的 理解腐蚀和膨胀的原理&#xff0c;掌握开运算、闭运算及形态学的边界提取。掌握孤立点检测、线检测和边缘检测的方法。掌握全局阈值处理的方法。 二、实验…

Node.js--》深入理解 PM2:Node.js 应用部署和管理利器

目录 pm2&#xff1a;进程自动化管理工具 pm2的安装与使用 pm2&#xff1a;进程自动化管理工具 PM2&#xff1a;是一个流行的Node.js进程管理器&#xff0c;它可以帮助您在生产环境中管理和保持Node.js应用程序运行。PM2的功能包括监视您的应用程序、自动重启您的应用程序、…

【Java-Crawler】爬取动态页面(WebMagic、Selenium、ChromeDriver)

WebMagicSeleniumChromeDriverMaven 爬取动态页面 一、需要下载的资源和引入的依赖资源依赖 二、实战代码测试效果 在上一篇说WebMagic框架的时候&#xff08; 一文学会WebMagic爬虫框架&#xff09;&#xff0c;提到了WebMagic仅能解析静态页面&#xff0c;满足不了小编的爬虫…

HackTheBox-关卡Fawn

1. 连接靶场&#xff0c;打开FAWN实例场景&#xff0c;检查是否互通 TASK1 3 个字母的首字母缩写词 FTP 代表什么&#xff1f; 答案是&#xff1a;File Transfer Protocol TASK2 问题是&#xff1a;FTP服务通常监听哪个端口&#xff1f; FTP监听的TCP端口号为21,监听的数据端…