Linux系统安全:NAT(SNAT、DNAT)

目录

一.NAT

二.SNAT

三.DNAT


一.NAT

NAT: network address translation,支持PREROUTING,INPUT,OUTPUT,POSTROUTING四个链

请求报文:修改源/目标IP,

响应报文:修改源/目标IP,根据跟踪机制自动实现

NAT的实现分为下面几种类型:

SNAT:source NAT ,支持POSTROUTING, INPUT,让本地网络中的主机通过某一特定地址访问外部网络,实现地址伪装,请求报文:修改源IP

DNAT:destination NAT 支持PREROUTING , OUTPUT,把本地网络中的主机上的某服务开放给外部网络访问(发布服务和端口映射),但隐藏真实IP,请求报文:修改目标IP

PNAT: port nat,端口和IP都进行修改

二.SNAT

SNAT:基于nat表的target,适用于固定的公网IP

SNAT选项:

    to-source ipaddr[-ipaddr]]

    random

MASQUERADE:基于nat表的target,适用于动态的公网IP,如:拨号网络

MASQUERADE选项:

    to-ports port[-port]

    random

(1)SNAT实验目的

公司内有2台机器,但是只有一个公网ip,利用SNAT技术实现2台私网地址都可以访问公网。

(2)SNAT实操环境准备

环境:

centos7-1(内网服务器)  IP地址 192.168.47.100
centos7-2(网关服务器)  ens33IP地址(nat):192.168.47.3   ens36IP地址(仅主机):12.0.0.1
centos7-3(外网服务器)  ens33IP地址(仅主机):12.0.0.12

目的:内网服务器能够ping通外网服务器

步骤:

①网关服务器添加网卡

②设置外网服务器的网卡模式

③修改外网服务器的IP地址,并重启network服务

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

[root@localhost ~]# systemctl restart network

[root@localhost ~]# ifconfig ens33

把ip改成12.0.0.12,子网掩码为255.255.255.0

④修改内网服务器的网关,并重启network服务

[root@zrsb ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33


[root@zrsb ~]# systemctl restart network

[root@zrsb ~]# route -n

⑤为网关服务器的外网网卡配置IP地址,并重启network服务

#复制ens33配置文件给ens36网卡,新增网卡不会有配置文件

[root@xzq ~]# cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens36

ens36配置文件修改:将UUID此行删除,修改ip

⑥使用内网服务器ping外网服务器地址,作为SNAT配之前的参照

⑦在网关服务器上配置SNAT

⑨网关服务器开启路由转发功能,编辑/etc/sysctl.conf文件

vim /etc/sysctl.conf

 

⑨使用内网服务器ping外网服务器,测试连通性

实验结果:

不经过nat的地址为内网服务器的地址,使用虚拟机环境才会出现这种情况,生成环境是不通的。经过nat之后的地址是公司的公网ip地址,由网关服务器iptables规则SNAT实现。

三.DNAT

DNAT原理与应用:
DNAT应用环境:在Internet中发布位于局域网内的服务器
DNAT原理:目的地址转换,根据指定条件修改数据包的目的IP地址,保证了内网服务器的安全,通常被叫做目的映谢。

DNAT转换前提条件:
1.局域网的服务器能够访问Internet
2.网关的外网地址有正确的DNS解析记录
3. Linux网关开启IP路由转发
 

DNAT实际操作:

步骤思路:

①首先给三台机器做一个SNAT,原因是做DNAT之后内网服务器(7-1)需要通过SNAT给公网的用户返回数据包。

②在内网服务器(7-1)上安装一个httpd服务并开启,作为内网的业务服务器。

③网关服务器(7-2)上配置DNAT规则。

(1)在内网服务器上搭建httpd服务,并撰写index.html初始网页,然后启动httpd服务

[root@zrsb ~]# vim /var/www/html/index.html
[root@zrsb ~]# systemctl start httpd.service
[root@zrsb ~]# systemctl status httpd.service

(2)在网关服务器上设置DNAT规则

(3)使用外网服务器访问内网的httpd服务

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

测试框架pytest教程(11)-pytestAPI

常量 pytest.__version__ #输出pytest版本 pytest.version_tuple #输出版本的元组形式 功能 pytest.approx pytest.approx 是一个用于进行数值近似比较的 pytest 断言工具。 在测试中,有时候需要对浮点数或其他具有小数部分的数值进行比较。然而,由于…

Linux面试笔试题(6)

91、6块300G的硬盘做raid5,新的设备容量是多大(C) A 900G B 1800G C 1500G D 300G 6300G−300G 1500G 由于一块硬盘用于奇偶校验,所以设备容量将是1500G. Raid 5是一种磁盘阵列,将数据分散到多个硬盘上以提高性能和可…

【⑬MySQL | 数据类型(一)】简介 | 整数 | 浮点 | 定点类型

前言 ✨欢迎来到小K的MySQL专栏,本节将为大家带来MySQL数据类型简介 | 整数 | 浮点 | 定点类型的分享✨ 目录 前言0.数据类型简介1 整数类型2 浮点类型3 定点类型4 日期/时间类型总结 0.数据类型简介 数据类型(data_type)是指系统中所允许的…

LeetCode算法递归类—二叉树中的最大路径和

目录 124. 二叉树中的最大路径和 - 力扣(LeetCode) 题解: 代码: 运行结果: 二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该…

【图论】拓扑排序

一.定义 拓扑排序是一种对有向无环图(DAG)进行排序的算法,使得图中的每个顶点在排序中都位于其依赖的顶点之后。它通常用于表示一些任务之间的依赖关系,例如在一个项目中,某些任务必须在其他任务之前完成。 拓扑排序的…

SQL注入之延时注入

文章目录 延时注入是什么?延时注入获取数据库版本号 延时注入是什么? 延时注入就是利用sleep()函数通过if语句判断所写的语句真假,如果为真返回我们想要的东西(例如:数据库的长度,数据库的名字等&#xff0…

认识负载均衡||WEBSHELL

目录 一、负载均衡 1.nginx负载均衡算法 2.nginx反向代理-负载均衡 二、webshell 1.构造不含数字和字母的webshell 2.如何绕过 一、负载均衡 1.nginx负载均衡算法 (1)轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务&…

达梦数据库读写分离集群原理

概述 本文就达梦数据库读写分离原理进行介绍。 达梦读写分离集群特点: 可以配置8个即时备库或8个实时备库;读写操作自动分离、负载均衡;提供数据同步;备库故障自动处理,故障恢复自动数据同步等功能,也支持…

无涯教程-TensorFlow - Keras

Keras易于学习的高级Python库,可在TensorFlow框架上运行,它的重点是理解深度学习技术,如为神经网络创建层,以维护形状和数学细节的概念。框架的创建可以分为以下两种类型- 顺序API功能API 无涯教程将使用Jupyter Notebook执行和…

会计如何使用ChatGPT提高工作效率

文章目录 ChatGPT改变了会计行业微软重新定义了PC交互应对ChatGPT带来的冲击给财务人员的建议总结 ✍创作者:全栈弄潮儿 🏡 个人主页: 全栈弄潮儿的个人主页 🏙️ 个人社区,欢迎你的加入:全栈弄潮儿的个人社…

LInux之例行工作

目录 场景 单一执行例行任务 --- at(一次性) 安装 命令详解 语法格式 参数及作用 时间格式 案例 at命令执行过程分析 循环执行的例行性任务--crontab(周期性) crontd服务安装 linux 任务调度的工分类 crontab工作过程…

js案例:小球碰壁反弹

目录 一.效果预览图​编辑 解析 二.完整代码 代码讲解 html部分 js部分 一.效果预览图 解析 这个效果是为了以后(过段时间会发的一个小游戏)做js小游戏做准备的,基本结构是,定义两个div盒子,小盒子设置成圆球形状…

代码pytorch-adda-master跑通记录

前言 最近在学习迁移学习,ADDA算法,由于嫌自己写麻烦,准备先跑通别人的代码。 代码名称:pytorch-adda-master 博客:https://www.cnblogs.com/BlairGrowing/p/17020378.html github地址:https://github.com…

关于Springboot项目打包的配置问题

一、打包方式的不同致使jar包运行性能及docker部署的效率问题 1.1方式一 <build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source&…

Flash 空间大小的选择以及8MB和8M bit单位与转换关系

他V hezkz17进数字音频系统研究开发交流答疑群(课题组) log打印 [09:54:27.565] FLASH_SIZE0x800000 这个是 8MB 字节 芯片手册Flash是以字节为单位 注意单位与转换关系 ifeq ($(FLASH_SIZE),0x100000) # 8M bits LOG_DUMP_SECTION_SIZE ? 0x10000 endif 0x1000001MB为 …

C# 观察者模式

一、概述 观察者模式是一种常用的设计模式&#xff0c;它属于行为型模式。在C#中&#xff0c;观察者模式通过定义一种一对多的依赖关系&#xff0c;使得当一个对象的状态发生变化时&#xff0c;所有依赖于它的对象都会得到通知并自动更新。这种模式可以实现松耦合&#xff0c;…

精密图纸被窃,知名手表品牌Seiko遭BlackCat勒索软件攻击

据BleepingComputer消息&#xff0c;日本著名手表制造商Seiko在7月末遭到了网络攻击&#xff0c;8月21日&#xff0c;BlackCat&#xff08;又名ALPHV&#xff09;勒索软件组织在其网站上宣布对这起攻击事件负责。 8 月 10 日&#xff0c;Seiko发布了一份数据泄露通知&#xff0…

机器学习---常见的距离公式(欧氏距离、曼哈顿距离、标准化欧式距离、余弦距离、杰卡德距离、马氏距离、切比雪夫距离、闵可夫斯基距离、K-L散度)

1. 欧氏距离 欧几里得度量&#xff08;euclidean metric&#xff09;&#xff08;也称欧氏距离&#xff09;是一个通常采用的距离定义&#xff0c;指在m维空 间中两个点之间的真实距离&#xff0c;或者向量的自然长度&#xff08;即该点到原点的距离&#xff09;。在二维和三维…

【雷达】接收和去噪L波段雷达接收到的信号研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…