Linux内网数据代理与数据映射实验

news2024/9/22 19:41:06

背景介绍

有两台主机,其中一台可以联网,而另一台只能与联网主机,尝试通过配置,使该主机也能正常上网,这常应用于企业内部不联网的服务器,需要安全可靠或临时上网的场景,借助另一台可以上网的内部主机实现。

实验环境

借助两个克隆的虚拟机实现,其中一个可以联网,也有仅主机的网卡,另一个网络设置为仅主机模式,用于模拟内网环境,在设置网络之前为了测试效果,我们先给客户机安装上httpd服务,并关闭firewalld服务避免干扰,再检查网络情况,确认80端口是否使用,代码如下:

yum install -y httpd
systemctl start httpd # 开启httpd服务
systemctl stop firewalld # 关闭firewalld
ss -nlt # 检查端口情况

主机设置
客户机设置
关于虚拟机三种网络模式解释如下:

vmware0 桥接模式:虚拟机与物理网卡直接相连,虚拟机将占用局域网中的一个IP地址,并且可以与其他终端进行相互访问
vmware1 仅主机模式:仅允许虚拟机与主机之间进行通信,而无法与外部网络通信
vmware8 NAT模式:虚拟机将获得一个由主机提供的虚拟IP地址,并通过主机进行网络地址转换(NAT)来与外部网络进行通信,这种方式可以保护虚拟机不受外界攻击

此时客户机是无法访问外部网络的
访问外网失败
服务器的网络配置如图:
服务器配置
上网网卡ens33的IP为192.168.119.128,仅主机网卡ens36的IP为192.168.101.129,查看二者可否正常通信:
服务器和主机可通信

实验过程

配置IP

为了方便操作,两张仅主机的网卡分别将IP配置为192.168.12.1192.169.12.2,然后将客户机的网关设置为主机仅上网的网卡,配置如图:
客户机IP配置
操作完成后需systemctl restart network重启网络使之生效,并使用systemctl stop firewalld关闭防火墙,避免后续对实验的干扰。

数据转发

因为Linux系统中默认禁用数据转发功能,即主机有多张网卡时,可以根据数据包的目的IP将其转发到其他网卡,这本来应该是路由器完成的工作,所以我们需要在Linux系统中开启数据转发功能,通过修改Linux内核中的net.ipv4.ip_forward参数实现,具体方法为echo 1 > /proc/sys/net/ipv4/ip_forward,该方法为临时生效,永久化需要修改/etc/sysctl.conf 文件。

此时客户机还是无法访问外网的,因为我们只是开启了服务器的转发功能,现在需要将ens36仅主机上网卡收到的数据转发至可上网的ens33网卡上,借助该网卡对外通信,该功能可以使用我们学过的IP tables实现,具体命令为iptables -t nat -A POSTROUTING -s 192.168.12.0/24 -j SNAT --to-source 上网卡IP

此时客户机可对外通信,命令解释如下:
对负责修改数据包中的源、目标IP地址或端口的nat表中的负责路由判断后进行的规则POSTROUTING链添加新规则,所有来自192.168.12的数据包设置处理策略为SNAT,即将源地址转换为上网卡的IP地址,相对应的,如果策略为DNAT则是对目的地址进行转换。

实验原理

利用NAT网络地址转换协议实现,该协议是将IP数据包头中的IP 地址转换为另一个IP地址的过程,创建之初是为了缓解公有IP不足,实现私有IP借助网关访问公网的操作,我们在实验中也是利用该协议,实现内部主机通过可上网主机的NAT协议实现数据包的转发。再简便来说,就是让主机充当路由器

同样的,如果是外部主机要访问内网,只需将策略调整为DNAT,并将目的地址转换为内网地址即可。

该方案和我们日常使用直接访问网络的方式到底有什么不同呢?
最主要的差别就是使用这种方法对外部网络的访问是有限制的,只有配置了转发协议的数据包或者端口和地址才能访问外部网络,能接外网的主机一定程度来说像是一个硬件防火墙,作为整个内网的出入口可以很方便地进行筛选过滤。

总结思考

本次实验尝试了借助NAT协议实现主机间的数据代理功能,额外要注意的点有:
1,虚拟机三种网络模式的区别,物理直连,模拟网卡和仅内部主机
2,Linux系统数据转发的内核状态切换
3,iptables功能使用,修改添加指定表指定链的规则
4,NAT协议理解,本质是修改包头源、目的地址,但返回接收的数据包还能转换回原本地址并进行转发,具体实现方式有静态动态和复用啥的,涉及太底层暂时不做了解

此外

实践是检验真理的唯一标准,做实验之前感觉轻轻松松,修改几个IP,搞点配置,写写规则,简简单单,但做起来其实也折腾了小半天,实验配置过程不流畅不同步,加上理论知识不扎实,做着总有疑问,导致很不顺利。
但最后到现在再回头来看其实并不难,要避免眼高手低和做事畏手畏脚,只有多做,真正了解清楚自己的能力和实践的差距,才能更好地判断和选择,能力也会逐步在实践中成长,当真是实践决定认识,认识指导实践

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

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

相关文章

Docker:认识Bind Mounts绑定卷

文章目录 绑定卷bind mount创建卷操作案例使用mount创建绑定卷 使用场景管理卷和绑定卷的区别? 绑定卷bind mount -v和-mount都可以进行绑定卷的创建 创建卷 功能:完成卷映射 语法: docker run -v name:directory[:options]...参数&…

python数据分析--- ch1-2 python初识入门

python数据分析--- ch1-2 python初识入门 1. 安装并启动jupyter2. 打印变量print()练一练 3. 变量与赋值 input()3.1 示例--饮料交换3.2 饮料交换完整code3.3 jupyter中写入code到py文件中3.4 在终端运行.py文件 : python 文件名3.5练一练1:简易版2&…

[leetcode]删除链表中倒数第k个结点

. - 力扣(LeetCode) class Solution { public:ListNode* trainningPlan(ListNode* head, int cnt) {int n 0;ListNode* node nullptr;for (node head; node; node node->next) {n;}for (node head; n > cnt; n--) {node node->next;}retu…

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第38课-密室逃脱-3D互动剧情

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第38课-密室逃脱 使用dtns.network德塔世界(开源的智体世界引擎),策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引擎&…

基于VLC可见光通信的室内光通信信道信噪比分析matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ..................................................................... % 接收功率计算Pr …

周一美股集体低开后转涨,早盘仅道指小幅下跌,英伟达跌超3%后转涨超1%

美国非农就业报告发布“次日”,三大股指低开,但早盘均成功转涨。美股七姐妹涨跌各异,苹果WWDC大会今晚开幕,但早盘转跌,一度跌超1%;1拆10股正式生效的英伟达盘初曾跌超3.2%,开盘1.5小时内首次转…

纷享销客常见问题FAQ

运维和安全职责边界 应用专属是部署在客户私有云或者客户公有云租户的IT环境中的,由纷享销客与客户共同维护系统的稳定性。一般来说客户主要负责维护IT基础环境和账号权限的管理而纷享销客则负责在客户环境中进行应用系统的部署、优化和日常运维工作。在安全方面&am…

如何实现办公终端安全

在网络安全日益严峻的当下,可信白名单作为一种高效的终端安全防护手段,正在逐渐受到业界的广泛关注和应用。本文将简要探讨可信白名单如何实现终端安全的原理、方法及其在实际应用中的优势与挑战。 首先,我们需要了解可信白名单的基本原理。可…

深度探讨:为何训练精度不高却在测试中表现优异?

深度探讨:为何训练精度不高却在测试中表现优异? 在深度学习领域,我们经常遇到这样一个看似矛盾的现象:模型在训练集上的精度不是特别高,但在测试集上却能达到出色的表现。这种情况虽然不是常规,但其背后的…

2024第十六届亚洲水技术展览会Aquatech China

Aquatech China 2024第十六届亚洲水技术展览会 专注水行业覆盖全领域—荷兰阿姆斯特丹水展中国展 2024.12.11-13 上海新国际博览中心 展会背景 Aquatech品牌创立于1968年。作为水处理行业历史悠久 的展览会,荷兰国际水处理展览会(Aquatech Amsterdam)至今已有近55…

机器学习实验------PCA

目录 一、介绍 二、算法流程 (1)数据中心化 (2)计算协方差矩阵 (3)特征值分解 (4)选择特征 三、运行结果展示 四、实验中遇到的问题 五、PCA的优缺点 优点: 缺点…

基于MDS的波士顿房价数据集降维

文章目录 1. 作者介绍2. 多维尺度分析(Multi-Dimensional Scaling, MDS)介绍2.1 MDS介绍2.2 MDS的类别2.2.1度量MDS2.2.2非度量MDS 2.3 目标函数2.4 MDS降维计算步骤2.4.1计算流程2.4.2 算法示例 3.实验过程3.1数据集介绍3.2算法思路3.3算法评…

【LLM】快速了解Dify 0.6.10的核心功能:知识库检索、Agent创建和工作流编排(二)

【LLM】快速了解Dify 0.6.10的核心功能:知识库检索、Agent创建和工作流编排(二) 文章目录 【LLM】快速了解Dify 0.6.10的核心功能:知识库检索、Agent创建和工作流编排(二)一、创建一个简单的聊天助手&#…

奥英特技公园开业盛典 点燃文旅商业融合新引擎

(通讯员 赵霞)2024年6月9日,奥英汽车特技表演公园盛大开幕。这座集汽车特技、文化艺术、旅游体验于一体的全新综合性主题公园,不仅为游客带来了精彩刺激的视觉盛宴,更通过“以体促旅、以旅带文”的深度融合,助推了文旅产业与商业经济的深度融…

Redis集群(5)

集群原理 节点通信 通信流程 在分布式存储系统中,维护节点元数据(如节点负责的数据、节点的故障状态等)是关键任务。常见的元数据维护方式分为集中式和P2P方式。Redis集群采用P2P的Gossip协议,这种协议的工作原理是节点之间不断…

使用lombok帮我们生成 getter、setter、无参构造器、全参构造器、equals、hashcode

文章目录 为什么要使用lombok?lombok的使用步骤1.检查 idea 是否安装 lombok 插件2.检查是否勾选了 enable annotation processing3.导入 lombok.jar 并加入到模块中4.在实体类添加注解 测试 为什么要使用lombok? lombok可以帮我们生成 getter、setter、…

独立游戏之路:Tap篇 -- 获取OAID提升广告收益

Unity 之 获取手机:OAID、ClientId、GUID 前言一、Oaid 介绍1.1 Oaid 说明1.2 移动安全联盟(MSA)二、站在巨人的肩膀上2.1 本文实现参考2.2 本文实现效果2.3 本文相关插件三、Unity 中获取Oaid3.1 查看实现源码3.2 工程配置3.3 代码实现3.4 场景搭建四、总结前言 在当今的移动…

SpringCloud 网关Gateway配置并使用

目录 1 什么是网关? 2 Gateway的使用 2.1 在其pom文件中引入依赖 2.2 然后gateway配置文件中配置信息 2.3 启动网关微服务 3 网关处理流程 4 前端-网关-微服务-微服务间实现信息共享传递 1 什么是网关? 网关:就是网络的关口&#xff…

vue+element el-select动态加减框数量及验证下拉框选项动态置灰(选中行的下拉框换个值后,原值没办法监控这个问题也解决了)

1效果: 2部分主要(HTML): 1:这个位置主要就是看看方法什么的吧,还有大概的结构 2:change"sort_Change(item,tablelists.orderbyList)这两个参数(都有大用): (1)item:代表每次你操作的这个数据 (2)tablelists.orderbyList:代表你这一共有几行数据(上边这个例子就会得到一个…

详解Base64编解码原理以及Base64编解码接口实现(附源码)

Base64编码已广泛地应用于各式各样的应用程序中,这些软件都在享受着Base64编码带来的便捷,但对于Base64编码相关概念及原理又了解多少呢?本文就来讲述一下Base64编码相关的内容。 1、Base64编码帮我们解决的实际问题 我们在使用libjingle(客户端)和XMPP服务器实现IM聊天功…