路由器基础(十二):IPSEC VPN配置
一、IPSec VPN基本知识
完整的IPSec协议由加密、摘要、对称密钥交换、安全协议四个部分组成。
两台路由器要建立IPSecVPN连接,就需要保证各自采用加密、摘要、对称密钥 交换、安全协议的参数一致。但是IPSec协议并没有确保这些参数一致的手段。 同时,IPSec没有规定身份认证,无法判断通信双方的真实性,这就有可能出现 假冒现象.
因此,在两台IPSec路由器交换数据之前就要建立一种约定,这种约定称为SA (Security Association, 安全关联),它是单向的,在两个使用IPSec的实体(主机或路由器)间建立逻辑连接,定义了实体间如何使用安全服务(如加密) 进行通信。SA 包含安全参数索引 (Security Parameter Index,SPI)、IP目的地 址、安全协议 (AH 或者ESP) 三个部分。
二、构建IKE SA (第一阶段)
协商创建一个通信信道 (IKE SA),并对该信道进行验证,为双方进一步的IKE通信 提供机密性、消息完整性及消息源验证服务,即构建一条安全的通道。
IKE第一阶段的协商可以采用两种模式:主模式 (Main Mode) 和野蛮模式(Aggressive Mode),对于IP地址不是固定的情况(如ADSL 拨号上网,内置SIM 卡拨号运营商网络上网),并且双方都希望采用预共享密钥验证方法来创建IKE SA, 就需要采用野蛮模式。主模式一般采用IP地址方式标识对端设备,两端都是固定IP 地址的情况。
主模式在IKE协商的时候要经过三个阶段: SA交换、密钥交换、ID 交换和验证;
野蛮模式只有两个阶段: SA交换和密钥生成、ID交换和验证。
主模式一般采用IP地址方式标识对端设备;野蛮模式可以采用IP地址方式或者域 名方式标识对端设备。相对而言,主模式更安全,而野蛮模式协商速度更快,VPN 的两个或多个设备都要设置成相同的模式VPN 才能建立成功。
第一阶段分为以下几步:
(1)参数协商。
该阶段协商以下参数:
1)加密算法。可以选择DES 、3DES、AES等。
2)摘要 (hash) 算法。可以选择MD5或SHA1。
3)身份认证方法。可以选择预置共享密钥 (pre-share)认证或Kerberos方式认证。
4)Diffie-Hellman密钥交换 (Diffie-Hellman key exchange,DH)算法一种确保 共享密钥安全穿越不安全网络的方法,该阶段可以选择DH1(768bit 长的密钥)、DH2(1024bit 长的密钥)、DH5 (1536bit 长的密钥)、DH14(2048bit 长的密钥)、DH15(3072bit 长的密钥)、DH16(4096bit 长的密钥)。
5)生存时间 (life time)。选择值应小于86400秒,超过生存时间后,原有的SA就 会被删除。
上述参数集合就称为IKE策略 (IKE Policy),而IKE SA就是要在通信双方之间找到相同的Policy。
(2)交换密钥。
(3)双方身份认证。
(4)构建安全的IKE通道。
三、构建IPSec SA (第二阶段)
第二阶段采用快速模式,利用第一阶段协商出来的共同的秘钥来进行加密,使 用已建立的IKE SA,协商IPSec参数,为数据传输建立IPSec SA。
构建IPSec SA的步骤如下:
(1)参数协商。
该阶段协商以下参数:
1)加密算法。可以选择DES、3DES。
2)Hash 算法。可以选择MD5、SHA1。
3)生存时间 (life time)。
4)安全协议。可以选择AH或ESP。
5)封装模式。可以选择传输模式或隧道模式。
上述参数称为变换集 (Transform Set)。
(2)创建、配置加密映射集并应用,构建IPSec SA。
第二阶段如果响应超时,则重新进行第一阶段的IKE SA协商。
四、IP sec VPN 配置
基于IPSec的VPN 隧道 配置通常用于企业分支与企业总部之间。如图所示,某企业的总部 与分支机构之间需要通过IPSecVPN 建立连接。其中RouterA为企业分支机 构的网关, RouterB为企业总部的网关,分支与总部通过公网建立基于IPSec的安全通信。假设分支子网为10.1.1.0/24,总部子网为10.1.2.0/24。

1、配置采用IKE协商方式建立IPSec 隧道步骤
(1)配置接口的IP地址和到对端的静态路由,保证两端路由可达。
(2)配置ACL, 以定义需要IPSec保护的数据流。
(3)配置IPSec安全提议,定义IPSec的保护方法。
(4)配置IKE对等体,确定对等体间IKE协商时的参数。
(5)配置安全策略,并引用ACL、IPSec 安全提议和IKE对等体,确定对每种数据流采取的保护方法。
(6)在接口上应用安全策略组,使接口具有IPSec的保护功能。
2、配置接口,确保IP网络是连通的
(1)分别在RouterA 和RouterB 上配置接口的IP地址和到对端的静态路由,确保IP网络是连通的。
在RouterA 上配置接口的IP地址,命令如下:
<Huawei>system-view
[Huawei]sysname RouterA
[RouterA]interface gigabitethernet 1/0/0
[RouterA-GigabitEthernet1/0/0]ip address 202.138.163.1 255.255.255.0 //配置接口的IP地址
[RouterA-GigabitEthernet1/0/0]quit
[RouterA]interface gigabitethernet 2/0/0
[RouterA-GigabitEthernet2/0/0]ip address 10.1.1.1255.255.255.0
[RouterA-GigabitEthernet2/0/0]quit
在RouterA上配置到对端的静态路由,为了配置简洁,此处假设到对端的下一跳地址为202.138.163.2。因此添加去往外网和内网的静态路由即可。
[RouterA]ip route-static 202.138.162.0 255.255.255.0 202.138.163.2
[RouterA]ip route-static 10.1.2.0 255.255.255.0 202.138.163.2
<Huawei>system-view
[Huawei]sysname RouterB
[RouterB]interface gigabitethernet 1/0/0
[RouterB-GigabitEthernet1/0/0]ip address 202.138.162.1 255.255.255.0
[RouterB-GigabitEthernet1/0/0]quit
[RouterB]interface gigabitethernet 2/0/0
[RouterB-GigabitEthernet2/0/0]ip address 10.1.2.1255.255.255.0
[RouterB-GigabitEthernet2/0/0]quit
[RouterB]ip route-static 202.138.163.0 255.255.255.0 202.138.162.2
[RouterB]ip route-static 10.1.1.0 255.255.255.0 202.138.162.2
同样在 RouterB上配置与RouterA相对应的配置:
3、配置ACL, 定义需要保护的数据流
在RouterA上配置ACL, 定义由子网10.1.1.0/24到子网10.1.2.0/24的数据流。
[RouterA]acl number 3100
[RouterA-acl-adv-3100]rule 5 permit ip source 10.1.1.00.0.0.255 destination 10.1.2.00.0.0.255
[RouterA-acl-adv-3100]quit
在RouterB上配置ACL, 定义由子网10.1.2.0/24到子网10.1.1.0/24的数据流。
[RouterB]acl number 3100
[RouterB-acl-adv-3100]rule 5 permit ip source 10.1.2.0 0.0.0.255 destination 10.1.1.0 0.0.0.255
[RouterB-acl-adv-3100]quit
4、创建IPSec安全提议
在RouterA上配置IPSec安全提议。
[RouterA]ipsec proposal tran1//创建名为tran1的安全提议
[RouterA-ipsec-proposal-tran1]esp authentication-algorithm sha2- 256//配置ESP的认证算法为SHA2-256
[RouterA-ipsec-proposal-tran1]esp encryption-algorithm aes-128//配置ESP的加密算法为AES-128
[RouterA-ipsec-proposal-tran1]quit
同样在RouterB上配置相关的IPSec安全提议。
[RouterB]ipsec proposal tran1
[RouterB-ipsec-proposal-tran1]esp authentication-algorithm sha2- 256
[RouterB-ipsec-proposal-tranl]esp encryption-algorithm aes-128
[RouterB-ipsec-proposal-tran1]quit
(4)配置IKE对等体
在RouterA上配置IKE安全提议。
[RouterA]ike proposal 5
[RouterA-ike-proposal-5]encryption-algorithm aes-128
[RouterA-ike-proposal-5]authentication-algorithm sha2-256
[RouterA-ike-proposal-5]dh group14 //配置DH 算法参数
[RouterA-ike-proposal-5]quit
在RouterA上配置IKE对等体,并根据默认配置,配置预共享密钥和对端ID。 [RouterA]ike peer spub
[RouterA-ike-peer-spub]undo version 2
[RouterA-ike-peer-spub]ike-proposal 5
[RouterA-ike-peer-spub]pre-shared-key cipher Huawei //配置预共享密 钥为Huawei
[RouterA-ike-peer-spub]remote-address 202.138.162.1 //配置远端地址
[RouterA-ike-peer-spub]quit
在RouterB 上配置IKE安全提议
[RouterB]ike proposal 5
[RouterB-ike-proposal-5]encryption-algorithm aes-128
[RouterB-ike-proposal-5]authentication-algorithm sha2-256
[RouterB-ike-proposal-5]dh group14
[RouterB-ike-proposal-5]quit
在RouterB上配置IKE对等体,并根据默认配置,配置预共享密钥和对端ID。
[RouterB]ike peer spua
[RouterB-ike-peer-spua]undo version 2
[RouterB-ike-peer-spua]ike-proposal 5
[RouterB-ike-peer-spua]pre-shared-key cipher huawei
[RouterB-ike-peer-spua]remote-address 202.138.163.1
[RouterB-ike-peer-spua]quit
6、创建安全策略
在RouterA上配置IKE动态协商方式安全策略。
[RouterA]ipsec policymap110 isakmp
[RouterA-ipsec-policy-isakmp-map1-10]ike-peer spub
[RouterA-ipsec-policy-isakmp-map1-10]proposal tran1
[RouterA-ipsec-policy-isakmp-map1-10]security acl 3100
[RouterA-ipsec-policy-isakmp-map1-10]quit
在RouterB上配置IKE动态协商方式安全策略。
[RouterB]ipsec policy usel 10 isakmp
[RouterB-ipsec-policy-isakmp-use1-10]ike-peer spua
[RouterB-ipsec-policy-isakmp-usel-10]proposal tran1
[RouterB-ipsec-policy-isakmp-use1-10]security acl 3100
[RouterB-ipsec-policy-isakmp-use1-10]quit
此时分别在RouterA和RouterB上执行display ipsec policy, 将显示所配置的信息。
在RouterA的接口上引用安全策略组。
[RouterA]interface gigabitethernet 1/0/0
[RouterA-GigabitEthernet1/0/0]ipsec policy map1
[RouterA-GigabitEthernet1/0/0]quit
在RouterB的接口上引用安全策略组。
[RouterB]interface gigabitethernet 1/0/0
[RouterB-GigabitEthernet1/0/0]ipsec policy use1
[RouterB-GigabitEthernet1/0/0]quit
相关文章:
路由器基础(十二):IPSEC VPN配置
一、IPSec VPN基本知识 完整的IPSec协议由加密、摘要、对称密钥交换、安全协议四个部分组成。 两台路由器要建立IPSecVPN连接,就需要保证各自采用加密、摘要、对称密钥 交换、安全协议的参数一致。但是IPSec协议并没有确保这些参数一致的手段。 同时,IP…...
Python 获取cpu、内存利用率
获取cpu、内存利用率 # -*- coding: latin1 -*- import psutil cpuPercent 0 psutil.cpu_percent() while True:vm psutil.virtual_memory()memoryPercent vm.percentcpuPercent psutil.cpu_percent(1) *10print("cpuPercent:"str(cpuPercent)" %")prin…...
Apache ECharts简介和相关操作
文章目录 一、Apache ECharts介绍二、快速入门1.下载echarts.js文件2.新建index.html文件3.准备一个DOM容器用于显示图表4.完整代码展示5.相关配置 三、演示效果四、总结 一、Apache ECharts介绍 Apache ECharts 是一款基于 Javascript 的数据可视化图表库,提供直观…...
怎么看待工信部牵头推动人形机器人发展
1,工信部牵头,而不是科技部牵头,有些蹊跷,科技部应该比工信部更了解科技发展趋势,工信部比科技部更了解工业发展趋势,这是用工业倒逼科技进步。 2,人的优势不是身体,而是精神&#…...
Hikari源码分析
总结 连接池关系 1、HikariDataSource构建函数->生成HikariPool对象->调用HikariPool的getConection得到连接 2、HikariPool包含ConcurrentBag 3、ConcurrentBag保存连接:三个集合threadList、sharedList、handoffQueue 4、ConcurrentBag管理连接࿱…...
修改YOLOv5的模型结构
YOLOv5 模型结构 C3模块结构图 修改目标 修改目标是移除C3模块concat后的卷积操作 YOLOv5的模型存储在项目目录下的models目录中。 一些以yaml为后缀的文件保存了一些模型的超参数,通过不同的参数,形成了yolov5s,yolov5n,yolov5l等不同参数等级&#…...
React 与 React Native 区别
React 与 React Native 区别 同样的实现一个点击按钮,更换姓名和年龄的值的功能。两部分代码不同 React代码 import React, { useState } from react import ./Button.cssexport function UseStateWithoutFunc() {const [name, setName] useState(何遇)const [a…...
Android 12.0 系统system模块开启禁用adb push和adb pull传输文件功能
1.使用场景 在进行12.0的系统定制化开发中,在一些产品中由于一些开发的功能比较重要,防止技术点外泄在出货产品中,禁用 adb pull 和adb push等命令 来获取系统system下的jar 和apk 等文件,所以需要禁用这些命令,接下来实现这些功能 2.系统system模块开启禁用adb push和ad…...
基于单片机的衣物消毒清洗机系统设计
收藏和点赞,您的关注是我创作的动力 文章目录 概要 一、系统总体设计2.2 功能分析2.3 系统框架设计 二、硬件电路设计3.1 电源模块的设计 三、 软件设计4.1 系统整体流程4.4 软件整体流程实物图 四、 结论五、 文章目录 概要 基于单片机的衣物消毒清洗机可以应用在…...
将 UniLinks 与 Flutter 集成(安卓 AppLinks + iOS UniversalLinks)
让我们使用 Flutter Mobile 和 Flutter Web 集成 UniLinks。 一步一步的指导! 我是 Pedro Dionsio,是葡萄牙 InspireIT 公司的 Flutter 开发人员,我写这个 UniLinks 教程的座右铭是: Firebase DynamicLinks 已被弃用࿰…...
Spring-Spring 之底层架构核心概念解析
BeanDefinition BeanDefinition表示Bean定义,BeanDefinition中存在很多属性用来描述一个Bean的特点。比如: class,表示Bean类型scope,表示Bean作用域,单例或原型等lazyInit:表示Bean是否是懒加载initMeth…...
电脑版WPS怎么将更新目录加到快速访问栏
效果 步骤 开启首页的“标签”、快速访问、在最近置顶展示然后选择好目录点击右边的设置 》 添加标签选中“快速访问”,确定并关闭完成 相关 WPS怎样设置快速访问工具栏 WPS怎样设置快速访问工具栏-百度经验WPS怎样设置快速访问工具栏,WPS怎样设置快速访问工具栏…...
保障效率与可用,分析Kafka的消费者组与Rebalance机制
系列文章目录 上手第一关,手把手教你安装kafka与可视化工具kafka-eagle Kafka是什么,以及如何使用SpringBoot对接Kafka 架构必备能力——kafka的选型对比及应用场景 Kafka存取原理与实现分析,打破面试难关 防止消息丢失与消息重复——Kafka可…...
“1-5-15”原则:中国联通数字化监控平台可观测稳定性保障实践
一分钟精华速览 “只知道系统有问题,但是找不到问题到底出在哪里”,这几乎是大家都面临过、或正在面临的问题。用户在投诉,但是我的指标都是正常的,到底是哪一环出问题了? 本文详细介绍了中国联通在智能运维领域的应用…...
LinkedList详解-Deque接口链表实现方案
简介 LinkedList实现了List和Deque接口。List是一个有序的集合,可以包含重复元素,它提供了在列表的头部、尾部或指定位置进行插入、删除和查找等操作的方法。Deque是双端队列,提供了在列表的头部和尾部进行插入和删除操作的方法。通过实现这…...
【考研数据结构代码题1】二叉搜索树的插入与查找
题目:请用C语言写出二叉树的二叉链表结构,并编写一个函数在二叉搜索树中可以搜索给定的关键字 难度:★ 二叉树的二叉链表结构 #include<stdio.h> #include<stdlib.h> //二叉树的结点结构 typedef struct Node{int data;//存放结…...
世微 平均电流型降压恒流驱动器 电动摩托车LED灯小钢炮驱动IC AP5218
1,来源:深圳市世微半导体有限公司 2,产品描述 AP5218 是一款 PWM工作模式, 高效率、外 围简单、内置功率管,适用于5V~100V输入的高 精度降压 LED 恒流驱动芯片。输出最大功率可达 15W,最大电流 1.5A。AP5…...
docker 下安装mysql8.0
在docker中查询mysql镜像 PS C:\Users\admin> docker search mysql NAME DESCRIPTION STARS OFFICIAL AUTOMATED mysql MySQL is a widely used, open-source relation……...
Android MVI架构的深入解析与对比
什么是MVI? M:model,此处的model并不是传统的数据模块,它是指用来存储视图状态UI State的一个模块 。比如请求数据时的loading、请求失败的提示页面等UI层面的变化状态。 V:view,视图模块 I:…...
达梦数据库表空间管理常用SQL
达梦数据库表空间管理常用SQL 表空间容量分析表空间创建与扩容 查看数据库状态: select name,instance_name,status$,mode$ from v$instance; --mode$显示Primary为主库select name,status$,role$ from v$database; --status$:1 启动,2 启动…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...
