智能物联网网关策略部署

在这里插入图片描述

实训背景

某智慧工厂需部署物联网网关,实现以下工业级安全管控需求:

  1. 设备准入控制:仅允许注册MAC地址的传感器接入(白名单:AA:BB:CC:DD:EE:FF)。
  2. 协议合规性:禁止非Modbus TCP(端口502)的工业协议流量。
  3. 时段策略:限制摄像头设备(IP段192.168.40.100-150)仅在08:00-18:00传输视频流(RTSP 554端口)。
  4. MQTT安全:加密MQTT流量(8883端口)且仅允许Topic为/sensor/#的消息发布。

环境准备

硬件/软件要求
  • 四台设备
    1. 网关服务器:双网卡(eth0: 外网,eth1: 内网192.168.40.1)
    2. PLC控制器:MAC=AA:BB:CC:DD:EE:FF,IP=192.168.40.10,运行Modbus TCP
    3. 摄像头:IP=192.168.40.120,运行RTSP服务
    4. MQTT Broker:IP=192.168.40.200,端口8883(TLS)
  • 操作系统:Debian 11(内核≥5.10)
  • 工具iptablesebtablescrontcpdumpmosquitto_pub
网络拓扑
外网 (eth0)  ↓  
网关服务器 (eth1:192.168.40.1)  ↓  
工业内网 (192.168.40.0/24)  ├── PLC控制器 (192.168.40.10)  ├── 摄像头 (192.168.40.120)  └── MQTT Broker (192.168.40.200)  

实训步骤


任务1:MAC白名单准入控制

目标:仅允许授权设备通过二层过滤接入网络。

  1. 配置ebtables MAC过滤

    ebtables -A INPUT -s ! AA:BB:CC:DD:EE:FF -j DROP  
    ebtables -A FORWARD -s ! AA:BB:CC:DD:EE:FF -j DROP  
    
  2. 绑定IP与MAC(防ARP欺骗)

    arp -s 192.168.40.10 AA:BB:CC:DD:EE:FF  
    

验证

  • 使用未授权设备(MAC=00:11:22:33:44:55)尝试ping网关,应不通。

任务2:工业协议合规性过滤

目标:放行Modbus TCP,阻断其他工业协议(如EtherNet/IP 44818端口)。

  1. 允许Modbus TCP流量

    iptables -A FORWARD -p tcp --dport 502 -j ACCEPT  
    
  2. 阻断非常规工业端口

    iptables -A FORWARD -p tcp -m multiport --dports 44818,47808,1911 -j DROP  
    

验证

  • 在PLC控制器运行Modbus客户端,流量应正常。
  • 尝试通过端口44818通信,触发tcpdump -i eth1 port 44818无数据。

任务3:摄像头时段策略控制

目标:通过时间模块限制视频流传输时段。

  1. 安装iptables时间模块

    apt install iptables-dev  
    modprobe xt_time  
    
  2. 配置时间策略规则

    iptables -A FORWARD -s 192.168.40.120 -p tcp --dport 554 -m time --timestart 08:00 --timestop 18:00 --weekdays Mon,Tue,Wed,Thu,Fri -j ACCEPT  
    iptables -A FORWARD -s 192.168.40.120 -p tcp --dport 554 -j LOG --log-prefix "[CAMERA BLOCKED] "  
    iptables -A FORWARD -s 192.168.40.120 -p tcp --dport 554 -j DROP  
    

验证

  • 在19:00执行curl rtsp://192.168.40.120:554,应失败并在/var/log/syslog中记录日志。

任务4:MQTT流量深度管控

目标:限制MQTT Topic并强制TLS加密。

  1. 允许加密MQTT流量

    iptables -A FORWARD -p tcp --dport 8883 -j ACCEPT  
    iptables -A FORWARD -p tcp --dport 8883 ! --tcp-flags SYN,ACK,FIN,RST ACK -j DROP  # 过滤非加密握手  
    
  2. 基于字符串匹配过滤Topic

    iptables -A FORWARD -p tcp --dport 8883 -m string --string "/sensor/" --algo bm --to 65535 -j ACCEPT  
    iptables -A FORWARD -p tcp --dport 8883 -j DROP  
    

验证

  • 合法发布:mosquitto_pub -t /sensor/temp -m "25" -h 192.168.40.200 -p 8883 --cafile ca.crt 应成功。
  • 非法发布:mosquitto_pub -t /control/light -m "on" 应被拒绝。

实训总结

通过本案例,您已掌握以下工业物联网安全技能:

  1. 使用ebtables实现二层设备准入控制。
  2. 基于端口和协议特征的工业流量过滤。
  3. 利用xt_time模块实现时间维度策略。
  4. 通过字符串匹配实现MQTT Topic级管控。

知识要点

要点说明
ebtables二层MAC过滤工具,需与iptables配合使用
xt_time模块支持按时间/日期匹配流量
字符串匹配-m string实现应用层协议内容过滤
工业协议特征Modbus TCP=502, EtherNet/IP=44818
MQTT安全TLS加密+Topic白名单双保险

扩展挑战

  1. 集成Suricata实现工业协议深度检测(DPI)。
  2. 使用CONNMARK标记实现跨VLAN设备联动控制。
  3. 部署ELK Stack实现安全事件可视化分析。

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

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

相关文章

前端-vue2核心

官网网址Vue2 安装 — Vue.js 搭建环境 第一种方式(刚开是接触Vue) 我们看官网,可以直接在script引入vue版本。这里有两个版本,开发版和生产版本。我们两个都下载。 然后创建一个项目,将下载的生产版本和开发版本粘…

【BUG】远程连接阿里云服务器上的redis报错

出现 Redis Client On Error: Error: connect ECONNREFUSED 47.100.XXX.XX:6379 错误,表明 Redis 客户端无法连接到指定的 Redis 服务器,可按以下步骤排查解决: 1. 检查 Redis 服务器是否运行 操作:在 Redis 服务器所在终端执行…

mongodb--用户管理

文章目录 MongoDB 用户管理1. 连接到 MongoDB2. 用户创建2.1 创建管理员用户2.2 创建特定数据库用户2.3 常用内置角色 3. 用户管理操作3.1 查看所有用户3.2 查看特定用户信息3.3 更新用户密码3.4 添加用户角色3.5 移除用户角色3.6 删除用户 4. 权限修改4.1 创建自定义角色4.2 将…

DeepSeek与搜索引擎:AI生成内容如何突破“语义天花板”

一、搜索引擎的“内容饥饿症”与AI的“产能悖论” 2024年,全球每天新增470万篇网络文章,但搜索引擎的索引拒绝率高达68%。这一矛盾的根源在于:算法对“高质量原创”的定义已从“形式独特性”转向“认知增值性”。传统AI生成内容(…

YOLO目标检测应用——基于 YOLOv8目标检测和 SAM 零样本分割实现指定目标分割

概述 在当前的计算机视觉领域,目标分割技术正变得越来越重要。市面上有许多分割模型,它们的工作原理大致相似,通常包括收集数据、配置模型以及训练分割模型等步骤。最终目标是实现精确的目标分割。而随着 SAM(Segment Anything M…

在Flutter中使用BottomNavigationBar和IndexedStack可以实现一个功能完整的底部导航栏

在Flutter中,使用BottomNavigationBar和IndexedStack可以实现一个功能完整的底部导航栏。BottomNavigationBar用于显示底部的导航按钮,而IndexedStack则用于管理页面的切换,确保每个页面的状态得以保留(即页面不会因为切换而重新构…

【10】数据结构的矩阵与广义表篇章

目录标题 二维以上矩阵矩阵存储方式行序优先存储列序优先存储 特殊矩阵对称矩阵稀疏矩阵三元组方式存储稀疏矩阵的实现三元组初始化稀疏矩阵的初始化稀疏矩阵的创建展示当前稀疏矩阵稀疏矩阵的转置 三元组稀疏矩阵的调试与总代码十字链表方式存储稀疏矩阵的实现十字链表数据标签…

微服务篇——SpringCloud

服务注册 Spring Cloud5大组件有哪些? 服务注册和发现是什么意思?Spring Cloud如何实现服务注册发现? nacos与eureka的区别 负载均衡 如何实现负载均衡? Ribbon负载均衡的策略有哪些? 如何自定义负载均衡的策略&…

【小沐杂货铺】基于Three.JS绘制三维数字地球Earth(GIS 、WebGL、vue、react,提供全部源代码)

🍺三维数字地球系列相关文章如下🍺:1【小沐学GIS】基于C绘制三维数字地球Earth(456:OpenGL、glfw、glut)第一期2【小沐学GIS】基于C绘制三维数字地球Earth(456:OpenGL、glfw、glut)第二期3【小沐…

Cursor 在前端需求开发工作流中的应用|得物技术

一、引言 很高兴与大家分享现阶段 Cursor 在我的工作中的使用体验。首先是预期管理,本篇文章不会分享 x 个你可能不知道的小技巧,也不会让你拥有无需自行编码的能力,同时不涉及 Cursor 工程化方面内容。仅仅是围绕个人开发流程中的已有问题&…

PyQt学习记录

PyQt学习记录 要在界面上 创建一个控件,就需要在程序代码中 创建 这个 控件对应类 地一个 实例对象。 在Qt系统中,控件(widget)是 层层嵌套 的,除了最顶层的控件,其他的控件都有父控件。 几个函数 函数mo…

react: styled-components实现原理 标签模版

styled-components是针对react中一个前端广泛使用的css-in-js样式库B站 利用标签模版 利用ES6中的 标签模版文档标签模板其实不是模板,而是函数调用的一种特殊形式。“标签”指的就是函数,紧跟在后面的模板字符串就是它的参数。 let a 5; let b 10;…

网络安全应急响应之文件痕迹排查:从犯罪现场到数字狩猎的进化论

凌晨3点,某金融企业的服务器突然告警,核心数据库出现未知进程访问。安全团队紧急介入时,攻击者已抹去日志痕迹。在这场与黑客的时间赛跑中,文件痕迹排查成为破局关键。本文将带您深入数字取证的"案发现场",揭…

多模态大语言模型arxiv论文略读(七)

MLLM-DataEngine: An Iterative Refinement Approach for MLLM ➡️ 论文标题:MLLM-DataEngine: An Iterative Refinement Approach for MLLM ➡️ 论文作者:Zhiyuan Zhao, Linke Ouyang, Bin Wang, Siyuan Huang, Pan Zhang, Xiaoyi Dong, Jiaqi Wang,…

idea插件:AICommit,智能生成Git提交信息

AICommit:智能生成Git提交信息的IDEA插件指南 一、AICommit插件介绍 AICommit是一款专为开发者设计的IntelliJ IDEA插件,它利用人工智能技术自动生成清晰、规范的Git提交信息(Commit Message)。该插件能够分析你的代码变更,理解修改的上下文…

js 拷贝-包含处理循环引用问题

在 JavaScript 中,拷贝对象和数组时需要特别注意,因为对象和数组是引用类型,直接赋值只会复制引用,而不是实际的数据。以下是几种常见的拷贝方法及其应用场景: 1. 浅拷贝(Shallow Copy) 浅拷贝…

oracle将varchar2 转为clob类型存储。 oracle不支持直接使用sql,将 varchar2 到clob的类型转换,需要下面操作

将一个现有表中的 VARCHAR2 列数据迁移到一个 CLOB 列的过程。以下是对每一步操作的说明: 1. 添加一个新的 CLOB 类型列 首先,向表中添加一个新的 CLOB 类型的列。这个列将用来存储原本的 VARCHAR2 数据。 ALTER TABLE your_table ADD (new_column CL…

Dynamics 365 Business Central Recurring Sales Lines 经常购买销售行 来作 订阅

#D365 BC ERP# #Navision# 前面有节文章专门介绍了BC 2024 Wave 2 支持的更好的Substription & Recurring Billing。 其实在D365 BC ERP中一直有一个比较简单的订阅模块Recrring Sales Lines。本文将介绍一下如何用Recurring Sales Lines来 实施简易的订阅Substription。具…

算法比赛中常用的数学知识

一、求某个整数的正约数个数与正约数之和 1.1求某个正整数N的正约数个数 public class Main {public static void main(String[] args) {System.out.println(count(360));//结果为24}public static long count(long number){long count1;for(long i2;i<Math.sqrt(number);…

虚拟Ubuntu系统 开机提示:SMBus Host controller not enabled 后正常启动,去除这个提示提升开机速度。

如题&#xff0c;虚拟机中的Ubuntu系统开机提示&#xff1a;SMBus Host controller not enabled&#xff0c;虽然能正常启动&#xff0c;但不仅影响开机速度&#xff0c;而且还膈应人。 使用命令查看模块 lsmod | grep piix4 发现i2c_piix4有问题&#xff0c; 禁止 i2c_piix4…