IPSec VPN原理与配置

news2024/9/26 5:12:32
  • 企业对网络安全性的需求日益提升,而传统的TCP/IP协议缺乏有效的安全认证和保密机制。IPSecInternet Protocol Security)作为一种开放标准的安全框架结构,可以用来保证IP数据报文在网络上传输的机密性、完整性和防重放。

IPSec VPN应用场景

  •  企业分支可以通过IPSec VPN接入到企业总部网络。
  • IPSecIETF定义的一协议。通信双方在IP层通过加密、完整性校验、数据源认证等方式,保证IP数据报文在网络上传输的机密性、完整性和防重放
1. 机密性( Confidentiality )指对数据进行加密保护,用密文的形式传送数据。
2. 完整性( Data integrity )指对接收的数据进行认证,以判定报文是否被篡改。
3. 防重放( Anti-replay )指防止恶意用户通过重复发送捕获到的数据包所进行的攻击,即接收方会拒绝旧的或重复的数据包。
  • 企业远程分支机构可以通过使用IPSec VPN建立安全传输通道,接入到企业总部网络。

IPSec架构 

 

 

  • IPSec不是一个单独的协议,它通过AHESP这两个安全协议来实现IP数据报文的安全传送。
  • IKE协议提供密钥协商,建立和维护安全联盟SA等服务。
  • IPSec VPN体系结构主要由AHAuthentication Header)、ESPEncapsulating Security Payload)和IKEInternet Key Exchange)协议套件组成。
1. AH 协议:主要提供的功能有数据源验证、数据完整性校验和防报文重放功能。然而, AH 并不加密所保护的数据报。
2. ESP 协议:提供 AH 协议的所有功能外(但其数据完整性校验不包括 IP 头),还可提供对 IP 报文的加密功能。
3. IKE 协议:用于自动协商 AH ESP 所使用的密码算法。

 安全联盟SA

 

  •  安全联盟定义了IPSec对等体间将使用的数据封装模式、认证和加密算法、密钥等参数。
  • 安全联盟是单向的,两个对等体之间的双向通信,至少需要两个SA
  • SA(Security Association)安全联盟定义了IPSec通信对等体间将使用的数据封装模式、认证和加密算法、秘钥等参数。SA是单向的,两个对等体之间的双向通信,至少需要两个SA。如果两个对等体希望同时使用AHESP安全协议来进行通信,则对等体针对每一种安全协议都需要协商一对SA
  • SA由一个三元组来唯一标识,这个三元组包括安全参数索引SPISecurity Parameter Index)、目的IP地址、安全协议(AHESP)。
  • 建立SA的方式有以下两种:
1. 手工方式:安全联盟所需的全部信息都必须手工配置。手工方式建立安全联盟比较复杂,但优点是可以不依赖 IKE 而单独实现 IPSec 功能。当对等体设备数量较少时,或是在小型静态环境中,手工配置 SA 是可行的。
2. IKE 动态协商方式:只需要通信对等体间配置好 IKE 协商参数,由 IKE 自动协商来创建和维护 SA 。动态协商方式建立安全联盟相对简单些。对于中、大型的动态网络环境中,推荐使用 IKE 协商建立 SA

IPSec传输模式

 

  •  在传输模式下, AHESP报头位于IP报头和传输层报头之间。
  • IPSec协议有两种封装模式:传输模式和隧道模式。
  • 传输模式中,在IP报文头和高层协议之间插入AHESP头。传输模式中的AHESP主要上层协议数据提供保护。
  • 传输模式中的AH:在IP头部之后插入AH头,对整个IP数据包进行完整性校验。
  • 传输模式中的ESP:在IP头部之后插入ESP头,在数据字段后插入尾部以及认证字段。对高层数据和ESP尾部进行加密,对IP数据包中的ESP报文头,高层数据和ESP尾部进行完整性校验。
  • 传输模式中的AH+ESP:在IP头部之后插入AHESP头,在数据字段后插入尾部以及认证字段。

 IPSec隧道模式

  • 在隧道模式下,IPSec会另外生成一个新的IP报头,并封装在AHESP之前。 
  • 隧道模式中,AHESP头封装在原始IP报文头之前,并另外生成一个新的IP头封装到AHESP之前隧道模式可以完全地对原始IP数据报进行认证和加密,而且,可以使用IPSec对等体的IP地址来隐藏客户机的IP地址。
  • 隧道模式中的AH:对整个原始IP报文提供完整性检查和认证,认证功能优于ESP。但AH不提供加密功能,所以通常和ESP联合使用。
  • 隧道模式中的ESP:对整个原始IP报文和ESP尾部进行加密,对ESP报文头、原始IP报文和ESP尾部进行完整性校验。
  • 隧道模式中的AH+ESP:对整个原始IP报文和ESP尾部进行加密,AHESP分别会对不同部分进行完整性校验。

IPSec VPN 配置步骤 

 

 配置IPSec VPN的步骤如下:

1. 首先需要检查报文发送方和接收方之间的网络层可达性,确保双方只有建立 IPSec VPN 隧道才能进行 IPSec 通信。
2. 第二步 是定义数据流。 因为 部分流量无需满足完整性和 机密 性要求, 所以 需要对流量进行过滤, 选择出需要 进行 IPSec 处理的兴趣流。 可以 通过 配置 ACL 定义和区分 不同的数据流。
3. 第三步是配置 IPSec 安全提议。 IPSec 提议定义了保护数据流所用的安全协议、认证算法、加密算法和封装模式。安全协议包括 AH ESP ,两者可以单独使用或一起使用。 AH 支持 MD5 SHA-1 认证算法; ESP 支持两种认证算法( MD5 SHA-1 )和 三种加密算法( DES 3DES AES )。 为了能够正常传输数据流,安全隧道两端的对等体必须使用相同的安全协议、认证算法、加密算法和封装模式。如果要在两个安全网关之间建立 IPSec 隧道,建议将 IPSec 封装模式设置为隧道模式,以便隐藏通信使用的实际源 IP 地址和目的 IP 地址。
4. 第四步是配置 IPSec 安全策略。 IPSec 策略 中会应用 IPSec 提议中定义的安全协议、认证算法、加密算法和封装模式。 每一个 IPSec 安全 策略 都使用 唯一的名称和序号 标识。 IPSec 策略可分成两类:手工建立 SA 的策略和 IKE 协商建立 SA 的策略。
5. 第五步是 在一个接口 应用 IPSec 安全 策略。

IPSec VPN 配置

 

 

[RTA]ip route-static 10.1.2.0 24 20.1.1.2

[RTA]acl number 3001

[RTA-acl-adv-3001]rule 5 permit ip source 10.1.1.0 0.0.0.255 destination 10.1.2.0 0.0.0.255

[RTA]ipsec proposal tran1  

[RTA-ipsec-proposal-tran1]esp authentication-algorithm sha1

  • 本示例中的IPSec VPN连接是通过配置静态路由建立的,下一跳指向RTB。需要配置两个方向的静态路由确保双向通信可达。建立一条高级ACL,用于确定哪些感兴趣流需要通过IPSec VPN隧道。高级ACL能够依据特定参数过滤流量,继而对流量执行丢弃、通过或保护操作。
  • 执行ipsec proposal命令,可以创建IPSec提议并进入IPSec提议视图。配置IPSec策略时,必须引用IPSec提议来指定IPSec隧道两端使用的安全协议、加密算法、认证算法和封装模式。缺省情况下,使用ipsec proposal命令创建的IPSec提议采用ESP协议、MD5认证算法和隧道封装模式。在IPSec提议视图下执行下列命令可以修改这些参数。
  • 执行transform [ah | ah-esp | esp]命令,可以重新配置隧道采用的安全协议。
  • 执行encapsulation-mode {transport | tunnel }命令,可以配置报文的封装模式。
  • 执行esp authentication-algorithm [md5 | sha1 | sha2-256 | sha2-384 | sha2-512 ]命令,可以配置ESP协议使用的认证算法。
  • 执行esp encryption-algorithm [des | 3des | aes-128 | aes-192 | aes-256 ]命令,可以配置ESP加密算法。
  • 执行ah authentication-algorithm [md5 | sha1 | sha2-256 | sha2-384 | sha2-512 ]命令,可以配置AH协议使用的认证算法。

配置验证

 [RTA]display ipsec proposal

  Number of proposals: 1

  IPSec proposal name: tran1    

  Encapsulation mode: Tunnel             

  Transform         : esp-new

  ESP protocol      : Authentication SHA1-HMAC-96

                      Encryption     DES

  • IPSec VPN对等体配置的安全提议参数必须一致。 
  • 执行display ipsec proposal [name <proposal-name>]命令,可以查看IPSec提议中配置的参数。
  • Number of proposals字段显示的是已创建的IPSec提议的个数。
  • IPSec proposal name字段显示的是已创建IPSec提议的名称。
  • Encapsulation mode字段显示的指定提议当前使用的封装模式,其值可以为传输模式或隧道模式。
  • Transform字段显示的是IPSec所采用的安全协议,其值可以是AHESPAH-ESP
  • ESP protocol字段显示的是安全协议所使用的认证和加密算法。

 IPSec VPN 配置

[RTA]ipsec  policy P1 10 manual

[RTA-ipsec-policy-manual-P1-10]security acl 3001

[RTA-ipsec-policy-manual-P1-10]proposal tran1

[RTA-ipsec-policy-manual-P1-10]tunnel remote 20.1.1.2

[RTA-ipsec-policy-manual-P1-10]tunnel local 20.1.1.1

[RTA-ipsec-policy-manual-P1-10]sa spi outbound esp 54321

[RTA-ipsec-policy-manual-P1-10]sa spi inbound esp 12345

[RTA-ipsec-policy-manual-P1-10]sa string-key outbound esp simple huawei

[RTA-ipsec-policy-manual-P1-10]sa string-key inbound esp simple huawei

  •  安全策略将要保护的数据流和安全提议进行绑定。
  • ipsec policy policy-name seq-number命令用来创建一条IPSec策略,并进入IPSec策略视图。安全策略是由policy-nameseq-number共同来确定的,多个具有相同policy-name的安全策略组成一个安全策略组。在一个安全策略组中最多可以设置16条安全策略,而seq-number越小的安全策略,优先级越高。在一个接口上应用了一个安全策略组,实际上是同时应用了安全策略组中所有的安全策略,这样能够对不同的数据流采用不同的安全策略进行保护。
  • IPSec策略除了指定策略的名称和序号外,还需要指定SA的建立方式。如果使用的是IKE协商,需要执行ipsec-policy-template命令配置指定参数。如果使用的是手工建立方式,所有参数都需要手工配置。本示例采用的是手工建立方式。
  • security acl acl-number命令用来指定IPSec策略所引用的访问控制列表。
  • proposal proposal-name命令用来指定IPSec策略所引用的提议。
  • tunnel local { ip-address | binding-interface }命令用来配置安全隧道的本端地址。
  • tunnel remote ip-address命令用来设置安全隧道的对端地址。
  • sa spi { inbound | outbound } { ah | esp } spi-number命令用来设置安全联盟的安全参数索引SPI。在配置安全联盟时,入方向和出方向安全联盟的安全参数索引都必须设置,并且本端的入方向安全联盟的SPI值必须和对端的出方向安全联盟的SPI值相同,而本端的出方向安全联盟的SPI值必须和对端的入方向安全联盟的SPI值相同。
  • sa string-key { inbound | outbound } { ah | esp } { simple | cipher } string-key命令用来设置安全联盟的认证密钥。入方向和出方向安全联盟的认证密钥都必须设置,并且本端的入方向安全联盟的密钥必须和对端的出方向安全联盟的密钥相同;同时,本端的出方向安全联盟密钥必须和对端的入方向安全联盟的密钥相同。

[RTA]interface GigabitEthernet 0/0/1

[RTA-GigabitEthernet0/0/1]ipsec policy P1

[RTA-GigabitEthernet0/0/1]quit

  •  ipsec policy policy-name命令用来在接口上应用指定的安全策略组。手工方式配置的安全策略只能应用到一个接口。

配置验证

[RTA]display ipsec policy

===========================================

IPSec policy group: “P1"

Using interface: GigabitEthernet 0/0/1

===========================================

    Sequence number: 10

    Security data flow: 3001

    Tunnel local  address: 20.1.1.1

    Tunnel remote address: 20.1.1.2

    Qos pre-classify: Disable

    Proposal name:tran1

...

……

Inbound ESP setting:

      ESP SPI: 12345 (0x3039)

      ESP string-key: huawei

      ESP encryption hex key:

      ESP authentication hex key:

   Outbound ESP setting:

      ESP SPI: 54321 (0xd431)

      ESP string-key: huawei

      ESP encryption hex key:

      ESP authentication hex key:

……

  •  执行display ipsec policy [brief | name policy-name [ seq-number ]]命令,可以查看指定IPSec策略或所有IPSec策略。命令的显示信息包括:策略名称、策略序号、提议名称、ACL、隧道的本端地址和隧道的远端地址
  •  执行display ipsec policy命令,还可以查看出方向和入方向SA相关的参数。

本章总结

问:安全联盟的作用是什么?

答:​​​​​​​SASecurity Association)安全联盟定义了IPSec通信对等体间将使用的数据封装模式、认证和加密算法、密钥等参数。

问:IPSec VPN将会对过滤后的感兴趣数据流如何操作?

答:经过IPSec过滤后感兴趣数据流将会通过SA协商的各种参数进行处理并封装,之后通过IPSec隧道转发。

 

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

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

相关文章

Redis介绍与使用

1、Nosql 1.1 数据存储的发展 1.1.1 只使用Mysql 以前的网站访问量不大&#xff0c;单个数据库是完全够用的。 但是随着互联网的发展&#xff0c;就出现了很多的问题&#xff1a; 数据量太大&#xff0c;服务器放不下 访问量太大&#xff0c;服务器也承受不了 1.1.2 缓存…

多表插入操作——后端

场景&#xff1a;当添加一个菜品时&#xff0c;还需要记录菜品的口味信息&#xff0c;因此需要对菜品表&#xff08;dish&#xff09;和口味表&#xff08;dish_flavor&#xff09;同时进行插入操作。 两个表的字段&#xff1a; 代码思路&#xff1a;由DishController将前端的…

数字转换:探析数据可视化的激增原因

现在&#xff0c;数据可视化作为一种强大的工具逐渐走进人们的视野&#xff0c;其爆发式发展背后涌现了多种原因值得探讨&#xff0c;今天我就以可视化从业者的视角来简单谈谈数据可视化爆发式发展背后的原因。 首先是互联网和传感技术的普及&#xff0c;令大量数据源不断涌现…

Redis是单线程还是多线程,为什么快?

1.Redis是单线程模型还是多线程模型&#xff1f; 在redis6.X版本之前&#xff0c;属于彻彻底底的单线程模型&#xff0c;redis在解析客户端命令和读写数据的操作都是由一个单线程来解决的。 而redis6.X版本后&#xff0c;引入了多线程&#xff0c;但是只作用于解析客户端的命令…

MapReduce综合应用案例 — 电信数据清洗

文章目录 第1关&#xff1a;数据清洗 第1关&#xff1a;数据清洗 测试说明 平台会对你编写的代码进行测试&#xff1a; 评测之前先在命令行启动hadoop&#xff1a;start-all.sh&#xff1b; 点击测评后MySQL所需的数据库和表会自动创建好。 PhoneLog&#xff1a;封装对象 L…

【MYSQL】-库的操作

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树&#x1f388; &#x1f389;作者宣言&#xff1a;认真写好每一篇博客&#x1f4a4; &#x1f38a;作者gitee:gitee✨ &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 动态规划算法&#x1f384; 如 果 你 …

[Linux] LVS+Keepalived高可用集群部署

一、Keepalived实现原理 1.1 高可用方案 Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案&#xff0c;可以解决静态路由出现的单点故障问题。 在一个LVS服务集群中通常有主服务器&#xff08;MASTER&#xff09;和备份服务器&#xff08;BACKUP&#xff09;两种角色…

SQL Server 安装教程

安装数据库 1、启动SQL Server2014安装程序&#xff0c;运行setup.exe文件&#xff0c;打开”SQL Server安装中心“对话框&#xff0c;单击左侧 的导航区域中的”安装“选项卡。 2、选择”全新SQL Server独立安装或向现有安装添加功能“&#xff0c;启动SQL Server2014安装向导…

软件测试实现Finddler的手机抓包过程

Fiddler的手机抓包过程 1、启动Fiddler 打开菜单栏中的 Tools > Fiddler Options&#xff0c;打开“Fiddler Options”对话框&#xff1a; 2、在Fiddler Options”对话框 切换到“Connections”选项卡&#xff0c;然后勾选“Allow romote computers to connect”后面的复选…

create-react-app 打包去掉 map文件

前言&#xff1a; 在使用 create-react-app 创建的React应用中&#xff0c;默认情况下会生成带有.map文件的打包文件&#xff0c;这些.map文件包含了源代码和调试信息&#xff0c;用于开发和调试过程中进行错误跟踪。然而&#xff0c;在生产环境中&#xff0c;这些.map文件通常…

项目管理:分工不明确时,团队成员互相甩锅,应该怎么解决?

在工作中&#xff0c;你是否遇到过这样的情况&#xff1a; 领导分配任务给下属&#xff0c;由于职责边界模糊&#xff0c;平级或者跨部门时互相推诿&#xff1b; 前几天项目经理分配给我一个任务&#xff0c;让我负责项目的一个阶段&#xff0c;这个阶段需要跟平级同事沟通外…

Python基础05-函数

零、文章目录 Python基础05-函数 1、函数的作用及其使用步骤 &#xff08;1&#xff09;函数的作用 在Python实际开发中&#xff0c;我们使用函数的目的只有一个“让我们的代码可以被重复使用” 函数的作用有两个&#xff1a; ① 代码重用&#xff08;代码重复使用&#xf…

【为数据之道学习笔记】5-7五类数据主题联接的应用场景

在数字化转型的背景下&#xff0c;华为的数据消费已经不再局限于传统的报表分析&#xff0c;还要支持用户的自助分析、实时分析&#xff0c;通过数据的关联&#xff0c;支持业务的关联影响分析以及对目标对象做特征识别&#xff0c;进行特定业务范围圈定、差异化管理与决策等。…

(保姆级教程)一篇文章,搞定所有Linux命令,以及tar解压缩命令,wget、rpm等下载安装命令,Linux的目录结构,以及用户和用户组

文章目录 Linux命令1. Linux目录结构2. 基本命令&#xff08;了解&#xff09;3. 目录&#xff08;文件夹&#xff09;命令列出目录切换目录创建目录删除目录复制目录移动和重命名目录 4. 文件命令创建文件编辑文件编辑文件时的其他操作 查看文件移动/重命名文件复制文件删除文…

hive 用户自定义函数udf,udaf,udtf

udf&#xff1a;一对一的关系 udtf&#xff1a;一对多的关系 udaf&#xff1a;多对一的关系 使用Java实现步骤 自定义编写UDF函数注意&#xff1a; 1.需要继承org.apache.hadoop.hive.ql.exec.UDF 2.需要实现evaluete函数 编写UDTF函数注意&#xff1a; 1.需要继承org.apache…

word 文档表格使用问题记录

word 文档表格使用问题记录 表格断页表格属性设置段落属性设置 表格断页 有时在Wps Word表格增加内容时&#xff0c;如超过表格时&#xff0c;自动跳到下一页&#xff0c;导致上一页空白&#xff0c;出现不连续的现象 表格属性设置 选中表格进行属性设置 段落属性设置

hive企业级调优策略之分组聚合优化

测试用表准备 hive企业级调优策略测试数据 (阿里网盘下载链接)&#xff1a;https://www.alipan.com/s/xsqK6971Mrs 订单表(2000w条数据) 表结构 建表语句 drop table if exists order_detail; create table order_detail(id string comment 订单id,user_id …

电脑自动录屏软件怎么录制视频

电脑自动录屏软件是一种非常实用的工具&#xff0c;可以帮助我们轻松地录制屏幕上的视频内容&#xff0c;它会自动录制和停止&#xff0c;不需要人在电脑前一直盯着。那么&#xff0c;大家可能会有一个疑问&#xff0c;如何使用这样的软件进行视频录制呢&#xff1f; 首先&…