路由器基础(十二):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 启动…...

Flutter 组件集录 | InheritedNotifier 内置状态管理组件
theme: cyanosis 1. 前言 在上一篇 《Flutter 知识集锦 | 监听与通知 ChangeNotifier》 中,我们介绍了 ChangeNotifier 对象通知监听者的能力。并通过一个简单的模拟下载进度案例,介绍了它的使用方式: | 案例演示 | 监听-通知关系 | | --- | …...

NOIP2023模拟10联测31 涂鸦
题目大意 有一面由 n m n\times m nm个格子组成的墙,每个格子要么是黑色,要么是白色。你每次将会进行这样的操作:等概率随机选择一个位置 ( x , y ) (x,y) (x,y)和一个颜色 c c c(黑色或白色),࿰…...

【Python基础知识一】基本语法、常用数据类型等
Python基础知识: 1 标识符(Identifier)2 关键字/保留字(Keyword)3 引号4 编码5 输入输出6 行与缩进7 多行语句8 注释9 数据类型9.1 数字(Number)类型9.2 变量(variate)9.3 字符串(St…...

听听ChatGPT对IT行业的发展和就业前景的看法
🌈个人主页: Aileen_0v0🔥系列专栏:PYTHON学习系列专栏💫"没有罗马,那就自己创造罗马~" 目录 (1)判断素数 写法1: 写法2: (2)计算1-100的偶数之和 写法1: 写法2: (3)计算1-100的奇数之和 (4)多层循环 IT行业哪个方向比较…...

〖程序员的自我修养 - 认知剖析篇⑤〗- 选择前端还是后端?
人之所以会觉得迷茫,本质上是欠缺对自己的一个控制力、识别庞杂信息、去伪存真的独立思考与认知能力。 说明:该文属于 程序员的自我修养 专栏,购买任意白宝书体系化专栏可加入易编程社区,早鸟价订阅模式除外。福利:加入社区的小伙伴们,除了可以获取博主所有付费专栏的阅读…...

Rust语言初步
文章目录 安装与测试变量条件语句和函数数组和元组循环 安装与测试 可以从官网直接下载。下载rustup-init并运行之后,会打开命令行,选1默认安装,然后不出意外就安装完了。 安装完成后按照惯例查看一下版本,如不报错就算成功。 …...

BIMILLC算法源码解析
论文链接:https://arxiv.org/abs/1607.02533 源码出处:https://github.com/Harry24k/adversarial-attacks-pytorch/tree/master 源码 import torch import torch.nn as nnfrom ..attack import Attackclass BIM(Attack):r"""BIM or iter…...

Android STR研究之五
前言: 在前四篇中初步介绍了开机流程,STR流程,唤醒流程,这里讲下STR的问题点 Android STR研究之一-CSDN博客 Android STR研究之二-CSDN博客 Android STR研究之三-CSDN博客 Android STR研究之四-CSDN博客 问题1:进入STR…...

python3+requests接口自动化测试实例详细操作
前段时间由于公司测试方向的转型,由原来的web页面功能测试转变成接口测试,之前大多都是手工进行,利用postman和jmeter进行的接口测试,后来,组内有人讲原先web自动化的测试框架移驾成接口的自动化框架,使用的…...

在Node.js中,什么是中间件(middleware)?它们的作用是什么?
聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…...