计算机网络 day10 DNAT问题 - 堡垒机 - WLAN

news2025/1/18 9:10:36

目录

DNAT策略拓扑图: 

问题一:当我们访问内网的Web服务的时候,我们防火墙服务器的80端口和Web服务器的8000端口是否需要一直调用程序监控呢?

DNAT的作用就是可以帮助我们进行路由转发功能

问题二:当我们在继续DNAT实验的时候,Web服务器和firewall网关服务器的LAN口都采用的是hostonly模式,我们如何在不使用Windows的Vmnet1网卡(hostonly模式)而使Windows上的Xshell连接上Web服务器呢?

因此我们可以得知,我们可以通过不同的端口号发布内网不同的服务器(如Mysql、redis、nginx等)

DNAT策略配置文件:

问题三:为什么当我们完成DNAT实验后,外网的机器能通过firewall网关服务器访问我们的Web服务器的网页,但是我们自己的firewall网关服务器不能访问Web客户机的网页呢?

问题四:配置完SNAT和DNST规则后,如果我们对firewall网关服务器进行重启,SNAT和DNST策略会失效,我们应该如何解决呢?

步骤:

堡垒机和跳板机

堡垒机和跳板机的作用:

推荐使用:JumpServer - 开源堡垒机 - 官网

堡垒机/跳转机策略拓扑图:

MASQUERADE(与SNAT同等效果的MASQUERADE策略(伪装))

MASQUERADE策略的配置:

查看配置:

无线信号弱 --》导致传输的速度会减慢 --》网速变慢

三创无线网络部署拓扑图:


DNAT策略拓扑图: 

问题一:当我们访问内网的Web服务的时候,我们防火墙服务器的80端口和Web服务器的8000端口是否需要一直调用程序监控呢?

当我们使用A机器访问Web服务器的时候,访问的网址是http://192.168.1.254:80,它(A)访问的是我们防火墙服务器WAN口网卡的80端口,防火墙服务器会帮助我们将它的访问映射到我们Web服务器(内网)的8000端口,防火墙服务器采取的是DNAT策略,它会帮助我们将数据映射到192.168.2.80:8000去,因此我们内网的机器(Web服务器)必须监听8000端口,但是我们的防火墙服务器不需要去监听80端口,因为当A机器发送数据包的时候,我们的防火墙服务器会去检查它发送的数据包内TCP的封装,了解它的目的端口是多少防火墙服务器并不会提供一个服务去监听80端口,它只需要知道目的端口是80就可以了),如果是80,它就会自动启用iptables内设定的DNAT策略去转发数据包给Web服务器的8000端口。

DNAT的作用就是可以帮助我们进行路由转发功能

问题二:当我们在继续DNAT实验的时候,Web服务器和firewall网关服务器的LAN口都采用的是hostonly模式,我们如何在不使用Windows的Vmnet1网卡(hostonly模式)而使Windows上的Xshell连接上Web服务器呢?

Web服务器不使用Windows的vmnet1网卡(hostonly模式),如何才能连接到内网使Windows上的Xshell连接上Web服务器呢?也许我们可以通过设置firewall网关服务器DNAT策略实现,我们通过在firewall网关服务器上配置端口2234(随机端口)Web服务器的22号端口产生映射关系(DNAT策略),我们通过Windows访问firewall的2234端口即可访问Web服务器的22号端口(SSH协议),就能通过Xshell连接上Web服务器。

因此我们可以得知,我们可以通过不同的端口号发布内网不同的服务器(如Mysql、redis、nginx等)

DNAT策略配置文件:

[root@router nat]# cat snat_dnat.sh 
#!/bin/bash

#enable  routing
echo 1 >/proc/sys/net/ipv4/ip_forward

############# stop firewall and clear iptables rule
service firewalld  stop

iptables -F
iptables -t nat -F

###########enable snat
iptables -t nat  -A POSTROUTING  -s 192.168.91.0/24  -o ens33  -j SNAT  --to-source  192.168.2.138
###########enable dnat
iptables -t nat  -A PREROUTING   -d 192.168.2.138 -i ens33  -p tcp  --dport 80  -j DNAT  --to-destination 192.168.91.80:8000

#open ssh 2233 --->192.168.91.80 22
iptables  -t nat -A PREROUTING   -d  192.168.2.138  -i ens33  -p tcp  --dport 2233 -j DNAT  --to-destination 192.168.91.80:22

# expose  mysql
iptables  -t nat -A PREROUTING   -d  192.168.2.138  -i ens33  -p tcp  --dport 33060 -j DNAT  --to-destination 192.168.91.81:3306

#EXPOSE  redis
iptables  -t nat -A PREROUTING   -d  192.168.2.138  -i ens33  -p tcp  --dport 6397 -j DNAT  --to-destination 192.168.91.83:6397

[root@router nat]# 

问题三:为什么当我们完成DNAT实验后,外网的机器能通过firewall网关服务器访问我们的Web服务器的网页,但是我们自己的firewall网关服务器不能访问Web客户机的网页呢?

其实原因很简单,这个问题有关于我们的iptables防护机制了(四表五链)

当我们转发外网机器的数据的时候,我们通过的是FORWARD链来进行数据的转发(只是对数据进行了路由转发)(FORWARD链有效通过需要我们打开firewall网关服务器的路由转发功能),因此数据不会经过网关服务器内核(下图为皇宫)的处理,只是经过路由转发,因此自然可以访问到我们的Web服务器上去。

但是当我们自己的firewall网关服务器想要访问Web服务器的时候,我们必须通过内核去访问自己的路由表(需要访问皇宫)才能去访问Web服务器(数据本来就已经在firewall网关服务器了,所以数据不会通过PREROUTING链,而是本来就在皇城之内),但是我们的DNAT策略是配置在PREROUTING链上的,导致数据无法进行DNAT策略改变目的IP,而且我们需要使用内核(需要通过INPUT链和OUTPUT链),因此数据无法通过iptables的防护机制,最后便无法访问上我们的Web服务器的网页了

路由表也是linux内核维护的

问题四:配置完SNAT和DNST规则后,如果我们对firewall网关服务器进行重启,SNAT和DNST策略会失效,我们应该如何解决呢?

原因snat和dnat策略(规则) 存放在linux系统的内核里的,内核里的信息是存放在内存里,内存里的数据停电不保存就会丢失

步骤:

  1. 自动加载配置:设备上通常提供有自动加载配置文件的功能。将您的SNAT和DNAT规则保存在一个配置文件中,并配置设备在重启时自动加载该文件,以确保在重启后规则能够生效。

  2. 开机启动 这个snat_dnat.sh脚本(用于配置SNAT和DNAT策略的脚本)

  3. /etc/rc.local文件在linux系统开机启动的时候会自动执行里面的命令

  4. [root@router ~]# vim /etc/rc.local
    bash /nat/snat_dnat.sh
    
    [root@router nat]# chmod +x /etc/rc.d/rc.local  授予/etc/rc.d/rc.local可执行权限
    路由表 是存放在内存里的
    路由表也是linux内核维护的
    
    [root@router network-scripts]# cat /etc/rc.local 
    #!/bin/bash
    # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
    #
    # It is highly advisable to create own systemd services or udev rules
    # to run scripts during boot instead of using this file.
    #
    # In contrast to previous versions due to parallel execution during boot
    # this script will NOT be run after all other services.
    #
    # Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
    # that this script will be executed during boot.
    
    touch /var/lock/subsys/local
    bash /nat/snat_dnat.sh                 #开机运行snat_dnat.sh脚本打开DNAT和SNAT功能
    ip route add 192.168.100.0/24 via 192.168.91.123   #添加静态路由
    ip route add 192.168.200.0/24 via 192.168.91.123
    echo  1 >/proc/sys/net/ipv4/ip_forward    #打开linux的路由器功能
    [root@router network-scripts]# 
    
    路由功能开机是否会开启?
    	echo  1 >/proc/sys/net/ipv4/ip_forward

堡垒机和跳板机

堡垒机的作用主要是提供安全的远程访问和管理内部网络资源的方式,以保护内部网络免受未经授权的访问和攻击

堡垒机和跳板机的作用:

  1. 访问控制与权限管理:堡垒机作为入口点,对远程用户进行身份验证、授权和访问控制。只有经过验证和授权的用户才能连接到内部网络资源,从而防止未经授权的访问。

  2. 安全隧道:堡垒机通过建立加密的通信隧道(如SSH)来确保远程连接的安全性。它可以防止攻击者监听、窃取或篡改数据传输。

推荐使用:JumpServer - 开源堡垒机 - 官网

堡垒机/跳转机策略拓扑图:

MASQUERADE(与SNAT同等效果的MASQUERADE策略(伪装))

MASQUERADE策略的配置:

[root@router nat]# cat snat_dnat.sh 
#!/bin/bash

#enable  routing
echo 1 >/proc/sys/net/ipv4/ip_forward

############# stop firewall and clear iptables rule
service firewalld  stop

iptables -F
iptables -t nat -F

###########enable snat
#iptables -t nat  -A POSTROUTING  -s 192.168.91.0/24  -o ens33  -j SNAT  --to-source  192.168.2.138
iptables -t nat  -A POSTROUTING  -s 192.168.91.0/24  -o ens33  -j MASQUERADE
#内网来的192.168.91.0网段过来的ip地址全部伪装(替换)为ens33接口的公网ip地址,好处就是不需要考虑ens33接口的ip地址是多少,你是哪个ip地址,我就伪装成哪个ip地址
###########enable dnat
iptables -t nat  -A PREROUTING   -d 192.168.2.138 -i ens33  -p tcp  --dport 80  -j DNAT  --to-destination 192.168.91.80:8000

#open ssh 2233 --->192.168.91.80 22
iptables  -t nat -A PREROUTING   -d  192.168.2.138  -i ens33  -p tcp  --dport 2233 -j DNAT  --to-destination 192.168.91.80:22

# expose  mysql
iptables  -t nat -A PREROUTING   -d  192.168.2.138  -i ens33  -p tcp  --dport 33060 -j DNAT  --to-destination 192.168.91.81:3306

#EXPOSE  redis
iptables  -t nat -A PREROUTING   -d  192.168.2.138  -i ens33  -p tcp  --dport 6397 -j DNAT  --to-destination 192.168.91.83:6397

[root@router nat]# 

内网来的192.168.91.0网段过来的ip地址全部伪装(替换)为ens33接口的公网ip地址,好处就是不需要考虑ens33接口的ip地址是多少,你是哪个ip地址,我就伪装成哪个ip地址

查看配置:

[root@router nat]# iptables -t nat -L -n
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  0.0.0.0/0            192.168.2.138        tcp dpt:80 to:192.168.91.80:8000
DNAT       tcp  --  0.0.0.0/0            192.168.2.138        tcp dpt:2233 to:192.168.91.80:22
DNAT       tcp  --  0.0.0.0/0            192.168.2.138        tcp dpt:33060 to:192.168.91.81:3306
DNAT       tcp  --  0.0.0.0/0            192.168.2.138        tcp dpt:6397 to:192.168.91.83:6397

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  192.168.91.0/24      0.0.0.0/0           
[root@router nat]# 

WLAN(无线局域网):

它是一种使用无线通信技术连接设备并建立本地网络的技术与传统的有线局域网相比,WLAN通过无线信号传输数据,而不需要使用物理的有线连接。这使得用户可以在范围内自由移动并连接到网络。

它具有以下几个优点

  1. 便捷性:WLAN允许无线连接,不需要使用有线电缆,使得用户可以在范围内自由移动,方便进行移动办公或者设备之间的无线连接。用户可以随时随地接入网络,提高工作效率和灵活性。

  2. 灵活性:通过WLAN,用户可以在覆盖范围内的任何位置连接到网络,无需受限于有线连接的位置和距离限制。这使得WLAN适用于各种场景,如家庭、办公室、公共场所等。

  3. 扩展性:WLAN可以轻松扩展网络的覆盖范围,通过添加额外的访问点(AP)来实现。对于大型场所或需要覆盖较大面积的环境,如企业办公楼、酒店、校园等,WLAN提供了方便的解决方案。

  4. 节省成本:相比传统布线网络,WLAN的部署和维护成本相对较低。WLAN不需要拉设复杂的有线网络,减少了布线成本和劳动力成本。此外,WLAN的灵活性和扩展性还可以降低网络设备的采购成本。

  5. 共享资源:WLAN允许多个用户同时连接到同一个网络,共享网络资源。这方面的典型例子是无线路由器在家庭或办公室中提供共享互联网连接。

  6. 移动性:WLAN对于移动设备非常友好,如智能手机、平板电脑和笔记本电脑等。它们可以在覆盖范围内自动切换访问点,同时保持网络连接。这对于需要移动工作的用户来说非常有用。

缺点:

无线信号其他人也可以搜索到,还可以破解,蹭网
有安全上的缺陷,容易获取整个局域网里的其他电脑的信息

  1. 信号受干扰影响:WLAN使用无线信号进行通信,而无线信号容易受到物理障碍物、其他电子设备的干扰以及高噪声环境的影响。这可能导致信号质量下降、连接不稳定或速度变慢。

  2. 有限的覆盖范围:WLAN的覆盖范围受限于无线访问点(AP)的发射范围和信号传播特性。相比有线网络,WLAN的覆盖范围较小,需要在目标区域内安装多个AP来提供全面的覆盖。

  3. 安全性问题:WLAN通信是通过无线信号传输的,因此更容易受到安全威胁,如未经授权的访问、数据窃取、黑客入侵等。为确保数据的机密性和网络的安全性,必须采取适当的加密和安全措施。

  4. 性能受限:与有线网络相比,WLAN的带宽和传输速度可能受到限制。由于无线信号在传输过程中可能面临干扰和传输损耗,WLAN的性能可能不如有线网络稳定和高效。

  5. 设备兼容性:WLAN依赖于无线技术标准,如WiFi标准。不同设备可能支持不同的WiFi协议或频段,缺乏设备之间的兼容性可能导致连接问题或性能下降。

  6. 电池消耗:使用WLAN连接的移动设备(如智能手机、平板电脑等)在无线通信过程中消耗更多的电池电量,相比于使用有线连接的设备。

无线网络: 房间比较多,面积比较大,无线信号不好,如何解决?
可以使用母子路由器,能扩大Wifi覆盖的面积。

无线信号弱 --》导致传输的速度会减慢 --》网速变慢

WiFi: 无线技术
蓝牙: Bluetooth   

三创无线网络部署拓扑图:

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

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

相关文章

wpf RadioButton自定义样式 圆角/直角变化 背景色渐变

样式部分 <LinearGradientBrush x:Key"GradientBrush_1" EndPoint"0.5,1" StartPoint"0.5,0"><GradientStop Offset"1" Color"#CEE5D1" /><GradientStop Offset"0" Color"#FAFAFA" /&…

全志F1C200S嵌入式驱动开发(u盘写读)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 f1c200s本身也支持usb接口。并且它的接口和v3s一样,有两个用途。第一个用途是在f1c200s进入fel状态之后,可以用sunxi-fel等工具完成norflash、nandflash的烧写;第二个用途,就是…

MySQL八股学习记录5MySQL锁from小林coding

MySQL八股学习记录5MySQL锁from小林coding 锁的总览全局锁表级锁表锁元数据锁意向锁AUTO-INC锁 行级锁Record LockGap LockNext-Key-Lock插入意向锁行级锁是如何作用的唯一索引等值查询 唯一索引范围查询非唯一索引等值查询 锁的总览 MySQL锁分为三种,分别是全局锁,表级锁,行级…

模拟行走机器人-python

leetcode第874题 链接https://leetcode.cn/problems/walking-robot-simulation 机器人在一个无限大小的 XY 网格平面上行走&#xff0c;从点 (0, 0) 处开始出发&#xff0c;面向北方。该机器人可以接收以下三种类型的命令 commands &#xff1a; -2 &#xff1a;向左转 90 度…

文本挖掘 day4 基于PMC知识框架文本挖掘的新能源汽车政策动态评价

基于PMC知识框架文本挖掘的新能源汽车政策动态评价 2. 研究设计2.1 研究技术路线2.2 数据采集2.3 动态分相 3. 基于PMC知识框架的策略动态挖掘3.1 PMC知识框架的建立3.2 基于PMC知识框架的策略挖掘字典3.2.1 字典建立步骤3.2.2 建立经验证据的词典 3.3 策略动态挖掘分析3.3.1 发…

python实现接口压力测试

python实现接口压力测试 直接上代码&#xff1a; # -*- coding: utf-8 -*-import json import requests import logginglogging.basicConfig(levellogging.INFO, format%(asctime)s - %(name)s - %(levelname)s - %(message)s) logger logging.getLogger(__name__)restime …

linux sed命令巨好用

sed命令介绍 find ./ -type d | grep rtos-kitfind ./ -type d 是一个在Linux终端中使用find命令的示例。让我们逐步解释这个命令&#xff1a; find: 这是用于在文件系统中查找文件和目录的Linux命令。 ./: 这是指当前目录&#xff08;工作目录&#xff09;&#xff0c;fin…

Java - List

List 接口基本介绍 1、List集合类中的元素是有序的&#xff0c;即添加顺序和取出顺序一致&#xff0c;先进先出。List中的元素可重复 2、List集合中的每个元素都有其对应的顺序索引&#xff0c;即支持索引 3、List容器中的元素都对应一个整数型的序号&#xff0c;记载其在容…

全国首个!武大又一新地标,有大势智慧的身影...

本文转载自武汉大学 数字缔造平行时空 古今交汇&#xff0c;千里相约 在武汉大学月湖旁的文科大楼里 藏着一个神秘的剧场 历史厚重的“文化遗产” 性能卓越的“智能计算” 据说这里有很多“新奇”剧目 见你所未见 闻你所未闻 快和珞珞珈珈一起去看看&#xff01; 珞珈…

重新设置mysql的root用户密码

创建一个txt文档&#xff0c;定义修改密码的SQL语句 ALTER USER rootlocalhost IDENTIFIED BY 1234567; 这里的localhost 表示只允许本地登录&#xff0c;如果改成%表示允许本地登录&#xff0c;也允许远程登录。 1234567就是新密码 管理员身份打开Windows PowerShell&#x…

【重温篇】八大排序——堆排序

完全二叉树 首先复习一下完全二叉树&#xff1a;数据从上到下&#xff0c;从左到右依次进行排列 堆排序 第一步 利用完全二叉树构建大顶堆 大顶堆&#xff1a;父节点的值大于或等于其左右孩子的值&#xff08;构建方法如下&#xff09; 1.定义一个parent游标&#xff0c;…

MyBatisPlus数据自动加解密存取和字段防篡改有效性校验码自动生成存储处理器

整体原理&#xff1a;用Mybatis拦截器拦截ResultSetHandler&#xff0c;做属性解密和完整性校奏。替换默认的ParameterHandler处理器。做属性加密存储和完整性加密存储。 代码结构如下&#xff1a; 各功能类解释&#xff1a; 1、EntityClassResolver&#xff1a;用于解析当前M…

Spring创建Ajax和接受Ajax数据-spring20

建一个AJAX.jsp页面 发送Ajax请求一般用jQuery 引入jQuery 引入文件&#xff1a; 弄一个请求 获得集合参数第二种应用场景 requestBody 的意思请求体 为什么找不到JQuery文件&#xff0c;原因是&#xff1a;前端控制器的配置&#xff1a;缺省&#xff0c;客户端发送请求&…

postgresql 数据库 面试题整理

postgresql 数据库 面试题整理 文章目录 postgresql 数据库 面试题整理前言pg数据库的特点&#xff1a;pg的优点pg的核心优势pg数据库的一些缺点PostgreSQL支持的各种数据类型pg的模式pg的多版本并发控制pg多版本并发控制&#xff08;MVCC&#xff09;介绍pg如何提供安全性Post…

vue3+vite配置 unplugin-vue-component 找不到 Vant 组件的问题

使用 vue3 vite Vant 搭建移动端项目&#xff0c;为了避免全量引入 vant 导致打包体积过大&#xff0c;又不想一个一个组件手动导入&#xff0c;所以就选择了 vant 官方推荐的方法&#xff0c;使用 unplugin-vue-components 插件自动引入组件&#xff0c;并按需引入组件的样式…

需求条目化与自动估算强强联合 助力软件估算自动化

痛点&#xff1a; 需求是产品的源头&#xff0c;是项目规模估算的基石。而传统的软件规模估算是由项目成员手工进行&#xff0c;对人员能力、经验、方法都有一定的要求&#xff0c;但是效果不好而且耗时费力&#xff0c;不能保持规模估算的一致性。 而导致这些问题的原因&#…

A plugin must either be a function or an object with an “install“ function

前言&#xff1a; 最近一个项目使用了vue3tsvite模型框架&#xff0c;在框架的基础之上进行的开发&#xff0c;开发过程中遇到一个问题&#xff0c;控制台有提示信息&#xff0c;如下图&#xff1a; 小小一行黄字&#xff0c;恶心人呀。。。 这话的意思大概是&#xff1a;插件…

中国人民大学与加拿大女王大学金融硕士--中外合作办学硕士领域的宝藏项目

大多数读研人都知道&#xff0c;从办学方式来看&#xff0c;中外合作办学硕士可以分为两种&#xff1a; 一是双学位教育项目&#xff0c;颁发的是外方高校硕士学位证书&#xff0c;同时还可以申请国内高校的硕士学位证书&#xff0c;同时教育部中留服还可以做学历学位认证。 二…

有哪些屏幕录制软件?这几种录屏工具了解一下

有哪些好用的屏幕录制软件呢&#xff1f;如果我们需要教别人如何使用某个软件或者如何完成某个任务&#xff0c;录屏也是非常有用的。可以通过录屏记录下整个过程&#xff0c;然后用于制作教程视频。也有小伙伴在打游戏时&#xff0c;遇到精彩操作有录屏的习惯&#xff0c;那么…

一文解惑mybatis中的#{}和${}

目录 基本概述 #{}的基本使用 ${}的基本使用 ${}使用情况 sql排序asc|desc 拼接表名 批量删除 模糊查询 基本概述 #{}&#xff1a;先编译sql语句&#xff0c;再给占位符传值&#xff0c;底层是PreparedStatement实现。可以防止sql注入&#xff0c;比较常用。 ${}&…