iptables 防火墙(二)SNAT/DNAT

news2024/12/25 9:14:31

目录

一:SNAT原理与应用

1.SNAT介绍

2.SNAT 应用环境

3.SNAT原理

二:SNAT配置

第一步:设置各个端口的网卡

  1.先准备客户机、web服务器、网关服务器

  2.网关服务器设置

(1)添加网卡

(2)修改ens32 为网关服务器的内网网卡

​(3)修改新加网卡ens33为外网网卡

 3.客户机设置

 4.web服务器设置

(1)设置网卡

(2)下载http服务并开启

 第二步:网关服务器设置同意路由转发

第三步:客户机初步访问web服务器httpd服务

(1) 运用Linux的火狐浏览器,直接通过IP进行访问:

(2)查看web服务器的http访问日志: 

 (3)SNAT源地址转换 

(4) 设置DNAT规则

 (5)进行验证

 三:防火墙规则的备份和还原

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

2.导入(还原)规则

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

(1)对文件进行备份

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

 (3) 修改权限

(4)查看规则配置

 (5) 关闭iptables服务(清空iptables)

 (6)重启iptables服务 


一:SNAT原理与应用

1.SNAT介绍

SNAT:内部地址要访问公网上的服务时(如web访问),内部地址会主动发起连接,由路由器或者防火墙上的网关对内部地址做个地址转换,将内部地址的私有IP转换为公网的公有IP,网关的这个地址转换称为SNAT,主要用于内部共享IP访问外部。

2.SNAT 应用环境

SNAT 应用环境:局域网主机共享单个公网IP地址接入Internet(私有不能早Internet中正常路由)

3.SNAT原理

修改数据包的源地址

二:SNAT配置

第一步:设置各个端口的网卡

  1.先准备客户机、web服务器、网关服务器

2.网关服务器设置

(1)添加网卡

(2)修改ens32 为网关服务器的内网网卡

 (3)修改新加网卡ens33为外网网卡

cp ifcfg-ens32 ifcfg-ens33                      #复制网卡配置文件
#注:将UUID删除

 3.客户机设置

#修改网卡配置文件
[root@localhost /]# vim /etc/sysconfig/network-scripts/ifcfg-ens32
#重启网卡
[root@localhost /]# systemctl restart network

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

 4.web服务器设置

(1)设置网卡

 

(2)下载http服务并开启

yum install -y httpd 
 
systemctl restart httpd

  第二步:网关服务器设置同意路由转发

#永久启用
vim /etc/sysctl.conf
 net.ipv4.ip_forward=1 
 
sysctl -p                           #读取修改后的配置
 
#临时开启
 
 echo 1 > /proc/sys/net/ipv4/ip_forward
 或
 sysctl -w net.ipv4.ip_forward=1

第三步:客户机初步访问web服务器httpd服务

(1) 运用Linux的火狐浏览器,直接通过IP进行访问:

(2)查看web服务器的http访问日志: 

#追踪更新访问者访问httpd服务的日志
tail  -f  /var/log/httpd/acces_log   

 (3)SNAT源地址转换 


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

(4) 设置DNAT规则

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											   内网服务器IP
 
iptables -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.1

yum -y install net-tools 		#若没有 ifconfig 命令可提前使用 yum 进行安装
ifconfig ens33

 (5)进行验证

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

 三:防火墙规则的备份和还原

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

iptables-save > /opt/iptables

2.导入(还原)规则

iptables-restore < /opt/ipt.txt

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

将iptables规则文件保存在 /etc/sysconfig/iptables 中,iptables服务启动时会自动还原规则
iptables-save > /etc/sysconfig/iptables
systemctl stop iptables						#停止iptables服务会清空掉所有表的规则
systemctl start iptables					#启动iptables服务会自动还原/etc/sysconfig/iptables 中的规则

(1)对文件进行备份

mv iptables{,.bakj}

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

iptables-save > /etc/sysconfig/iptables

 (3) 修改权限

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

(4)查看规则配置

 (5) 关闭iptables服务(清空iptables)

systemctl stop iptables.service 

 (6)重启iptables服务 

systemctl start iptables.service 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/553575.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

10分钟!Python写一个角色扮演带上下文功能的chatgpt聊天机器人!上篇!

大家都在网页上玩ChatGPT玩的不亦乐乎&#xff0c;但是很多时候我们需要打造个人专属的GPT&#xff0c;比如我是律师&#xff0c;我是医生&#xff0c;我是营养师&#xff0c;我是财会&#xff0c;我是猎头&#xff0c;我需要专属的某个领域的GPT&#xff0c;其实也不难。 今天…

加密解密软件VMProtect教程(八)许可制度之管理许可证

VMProtect是新一代软件保护实用程序。VMProtect支持德尔菲、Borland C Builder、Visual C/C、Visual Basic&#xff08;本机&#xff09;、Virtual Pascal和XCode编译器。 同时&#xff0c;VMProtect有一个内置的反汇编程序&#xff0c;可以与Windows和Mac OS X可执行文件一起…

加密解密软件VMProtect入门使用教程(八)许可制度之许可系统功能

VMProtect是新一代软件保护实用程序。VMProtect支持德尔菲、Borland C Builder、Visual C/C、Visual Basic&#xff08;本机&#xff09;、Virtual Pascal和XCode编译器。 同时&#xff0c;VMProtect有一个内置的反汇编程序&#xff0c;可以与Windows和Mac OS X可执行文件一起…

‘Light轻食初试版’小程序制作到发布过程中遇到的问题

目录 前言技术栈开发经验布局字体问题图片问题协作开发 发布时遇到的问题接口问题分包、图片显示问题小程序与公众号关于测试版本 总结 前言 学完小程序方面的知识后&#xff0c;我花四天时间做了一个简单的微信小程序——轻食Light说。这个小程序目前叫作“Light轻食说初始版…

【R模型】R语言线性回归之简单线性回归模型 (一)

&#x1f482; 个人信息&#xff1a;酷在前行&#x1f44d; 版权: 博文由【酷在前行】原创、需要转载请联系博主&#x1f440; 如果博文对您有帮助&#xff0c;欢迎点赞、关注、收藏 订阅专栏&#x1f516; 本文收录于【R模型】&#xff0c;该专栏主要介绍R语言各类型机器学习…

ORA-01555-快照过旧问题处理

背景 通过监控发现ETL报错 如何处理 ORA-01555 是 Oracle 数据库的一个错误代码&#xff0c;表示出现了“快照太旧”的错误。这个错误通常是由于数据库中的回滚段不够大&#xff0c;导致无法满足当前事务的需&#xff0c;从而导致事务回滚失败。 具体来说&#xff0c;ORA-0…

如何知道调用电商API是否成功返回数据?查看错误码解释

在API调用过程中&#xff0c;系统可能会返回一些错误码。错误码能够帮助开发者快速准确地了解出现的异常情况。错误码的含义通常涉及到请求参数不合法、认证失败、服务器内部错误等各种问题&#xff0c;它们提供了有关API调用失败的信息和上下文&#xff0c;在错误排查和修复时…

【案例教程】环境影响与碳排放生命周期评估应用及案例分析实践技术

生命周期分析是一种分析工具&#xff0c;它可帮助人们进行有关如何改变产品或如何设计替代产品方面的环境决策&#xff0c;即由更清洁的工艺制造更清洁的产品。例如&#xff0c;生命周期分析的结果表明&#xff0c;某种产品能耗低&#xff0c;寿命长&#xff0c;不含有毒化学物…

Java实现识别发票信息

Java实现调用第三方接口识别发票信息 需求&#xff1a;对每个发票图片文件进行重命名&#xff0c;名称为发票号固定信息&#xff0c;主要处理增值税发票 这里需要用到第三方接口&#xff0c;OCR识别功能&#xff0c;这里我用的是百度云接口&#xff0c;所以你需要注册百度云账…

计算机网络:计网体系结构

计网体系结构 1. 基本概念1.0 计算机网络的发展1.0.1 第一阶段1.0.2 第二阶段1.0.3 第三阶段 1.1 计算机网络的概念1.2 计算机网络的功能1.3 计算机网络的组成1.4 计算机网络的分类1.5 标准化工作及相关组织1.6 相关性能指标1.6.1 速率1.6.2 带宽1.6.3 吞吐量1.6.4 时延1.6.5 时…

springboot+vue摄影跟拍预定管理系统(源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的摄影跟拍预定管理系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 &#x1f495;&#x1f495;作者&#xff1…

SSM框架学习-Spring事务管理入门

文章目录 前言六、Spring事务1.Spring事务简介2.入门案例--模拟银行间转账业务3.开启Spring事务的一般步骤4.Spring事务角色5.spring事务属性--rollbackfor6.入门案例进阶--转账业务追加日志7. Spring事务属性--事务传播行为 总结 前言 为了巩固所学的知识&#xff0c;作者尝试…

项目管理:有效的沟通对项目的成功至关重要

为实施有效的沟通&#xff0c;需要建立沟通管理计划同时理解什么是沟通&#xff0c;沟通的对象是谁&#xff0c;沟通的目标是什么&#xff0c;难度在哪里&#xff0c;并选择合适的沟通方式。 项目沟通是确保项目团队的相关信息能及时、正确地产生、收集、发布、储存和最终处理…

77.建立一个Web应用程序的布局第一部分

本次我们需要设计的布局是这样样子&#xff0c;这个很想一个邮件系统的基本布局&#xff1b; ● 首先我们生成基础代码&#xff0c;基础代码很简单&#xff0c;不用过多解释 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-…

MySQL锁应用详解

文章目录 前言MySQL锁的详解1. 表级锁1.1 读锁&#xff08;共享锁&#xff09;对比查询操作更新操作获取写锁获取读锁 1.2 写锁&#xff08;排他锁&#xff09;对比获取写锁对表进行事务操作获取表的读锁对表进行查询操作 2. 行级锁2.1 共享锁2.2 排他锁 锁的应用场景1.1 并发读…

PDF怎么添加水印?简单途径说明

在工作中&#xff0c;我们经常需要对PDF文档进行保护&#xff0c;以确保其不被未经授权的人员查看或修改。其中一种常见的保护方式是在PDF文件中添加水印。水印不仅可以保护文件的安全性&#xff0c;还可以帮助识别文档的来源以及保护版权。在本文中&#xff0c;我们将介绍如何…

如何邀请媒体记者,保证新闻发布会媒体邀约?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 要邀请媒体记者参加新闻发布会并确保他们能够接受邀请&#xff0c;可以按照以下步骤进行&#xff1a; 1.制定计划&#xff1a;确定新闻发布会的日期、时间、地点和主题。确保选择一个方…

【TCP】对TCP三次握手的个人理解

三次握手 TCP 是面向连接的协议&#xff0c;所以使用 TCP 前必须先建立连接&#xff0c;而建立连接是通过三次握手来进行的。三次握手的过程如下图&#xff1a; 一开始&#xff0c;客户端和服务端都处于 CLOSE 状态。先是服务端主动监听某个端口&#xff0c;处于 LISTEN 状态 …

功能上新|内存篇:PSS显存、内存占用、堆内存对象快照

内存管理一直是游戏研发的重中之重&#xff0c;当项目运行时的内存压力较大时&#xff0c;更容易达到设备阈值引起闪退。近年来&#xff0c;当出海成为许多游戏公司新选择的同时&#xff0c;我们也发现海外设备对项目的内存情况有着更严格的要求。 为了帮助开发者更全面地了解…

从内核角度剖析Netty高性能的奥秘IO多路复用模型与Reactor模式

Netty 是Jboos 提供的java开源框架&#xff0c; 是基于非阻塞IO&#xff08;NIO&#xff09;的客户端/服务器编程框架&#xff0c; 它既能快速开发高并发、高可用、高可靠的网络服务器程序&#xff0c;也能开发高可用、高可靠的客户端程序。 Netty 作为异步框架&#xff0c; N…