IPSE基础&手动(3)

IPSE基础&手动

前言

在两年前我就已经写过关于IPSEC VPN的相关内容,两年过去了,再回去看当初写的内容就感觉很有意思了,因为会看到当初自己的浅薄和考虑不周,也能真真切切的感受到进步,这两年的时光没有白白浪费。

两年前写的GRE的笔记

两年前写的关于IPSEC的笔记

VPN的发展

image-20230305165426678

pptp

image-20230305193105609

image-20230305192714733

2000年,windows 2000发布在即,做为行业巨头,微软的windows系统上迫切的需要一款自主开发的VPN,于是在1999年,微软成功开发了PPTP VPN用于实现主机到主机之间的VPN连接。

L2F

当微软开发出了pptp之后,思科紧跟着开发出l2f vpn,第二层转发协议(L2F),这是一种相互的身份认证隧道机制。然而L2F并不提供加密。L2F没有得到广泛部署。

l2tp

pptp和l2f在安全方面做的都不理想,思科根据pp2p和l2f,结合两者的优点,弥补其不足,后又推出l2tp,从名字上也可以看出来,l2tp是将pptp和l2f想融合而成的。

ipsec

上述这三种VPN都是二层VPN,我们接下来该看一下三层VPN了

image-20230305200338327

从上图维基百科当中关于IPSEC的介绍当中我们可以看到IPSEC很早很早就已经诞生了,起源于1970年代,到1992年开始正式应用,其标准的制定和应用又是思科牵头。在网络的这个领域内,到处都是思科的影子,比如你会有苹果的平板的VPN功能当中惊讶看到其IPSEC VPN有着思科的大图标,如下所示:

image-20230305200438816

IPSEC VPN本身不是一种协议,并没有一种协议叫IPSEC VPN,IPSEC更像是一种“框架”,一种标准。各种网络设备厂商根据这个标准去实现自己的IPSEC功能,在这里其实就已经产生了问题,尽管是有标准,但是不同的程序员对标准的理解不一样,这就造成了当今在做不同的厂商的IPSEC VPN对接时,问题不断。

IPSEC是将各种类型的加密算法集合到了一起做成的框架,并且能随着密码学的发展,不断向其填充先进的算法,使得IPSEC从1992年应用至今,仍然没有过时,就算是当前最流行的SD-WAN也充分借鉴并使用了ISPEC框架。

IPSEC VPN概念

合作赋能

IPSEC可谓在VPN的安全方向做到极致,但是做VPN缺点也很明显,那就是兼容性不强,对于组播的传输有点问题,这与我们人类很相似,在某方面做到了极致人往往兼容性不太强,就像我们大多数搞技术的,专业搞技术,却忽略了人际关系和职场的弯弯绕。

那IPSEC就需要一种兼容性特别好的事物与之搭配,好像夫妻之间的互补关系,恰好,GRE VPN就以超强的兼容性著称,但是本身加密很弱,天作之合,这就是大名鼎鼎的GRE OVER IPSEC。

IPSEC两层关系

IPSEC的架构思路相当之先进,它将VPN的安全通信过程分成了两部分,我们可以理解为一根管子里面嵌套了另一根管子,我们把外面的管子称之为内管,外面的管子称之为外管;内管用于传输数据,外管用于保护内管,无论是内论还是外管都可以做到加密,并且内管和外管的加密算法并不是同一套,这样充分保证了数据传输的安全性。ftp和nfsv4的通信过程里面都有类似的机制。

加密的双方由于需要协商两者交互的算法,后续的”来往“不断,那我们可以将两者看做是合作关系,专业术语是”联盟“关系,注意哦,由于IPSEC是将安全通信过程分成了两部分,即双方要建立两层联盟关系,我们可以更形象化一些,A家的大儿子娶了B家的大女儿,A这的小儿子取了B家的小女儿,对于A家和B家来说,这是两层的亲家关系

两层关系意味着两个联盟,所以无论在哪种网络设备上,在配置IPSEC的时候,都会提示两个配置界面,一个界面用于配置外管的联盟,即通道的安全联盟,另一个界面用于配置内管的联盟,即传输数据安全联盟,如下所示,下图一就是通道的安全联盟,下图二就是数据的安全联盟。

image-20230306175226960

image-20230306175235462

IPSEC两个阶段

我们前面说了IPSEC的两层联盟关系,其实这两层联盟关系是串行,就是必须先建立安全通道连接,才能再去建立安全的数据连接,所以说IPSEC根据这两层关系就分成两个阶段,这个阶段是我们为了方便学习主观划分,划分的相当简单粗暴:

  • 阶段一:专注于建立一个安全的通道联盟,主要为了保证阶段二
  • 阶段二:专业于建立一个安全的数据传输联盟,主要为了保护数据

两个协商模式

注意,这里的协商模式指是在建立通道安全时的协商!!!在数据传输时没有协商模式的概念

image-20230306175226960

手工or自动,我们先来回忆一下ssh在建立连接时的问题,我们可以通过让ssh的客户端与服务端通过DH算法自动协商一个密钥出来,也可以提前手动准备生成好公钥做好配置,IPSEC在建立联盟关系的时候与之类似,你可以选择让他们两者自动协商各种加密方式,也可以手动指定。如果总部就一个分支机构,那手工就手工吧,那如果总部有很多的分支机构,那最好就是自动嘛,这样的话,当我们配置好一个联盟模板之后,之后就是不断的应用就好了,不用每一次都敲一遍。

两种封装模式

注意,这里面的封装模式是指IPSEC地封装,也就是正式传输数据时的封装模式。

image-20230306175235462

在开始真正传输数据时,我们可以传输模式,也可以选择隧道模式,这其实是IPSEC的两种应用场景,IPSEC可以应用在主机与主机之间,也可以应用在站点与站点之间;

这里面的隧道意思就是在原始报文时的基础上再加一个IP首部,隧道嘛!就是这样呀!部署在站点与站点之间,那传输模式并不会新加一个IP首部,所以适合部署于两台之间。

三个名词

正确理解联盟:联盟就是联盟,是指一种关系,就像A与B之间建立对等体关系,A与B之间是对等关系,那IPSEC当中,A与B建立联盟,那就相当于'联盟对等体'而已。

正确理解IKE:想要建立对等体、邻居关系、邻接关系都要经历一番过程,建立联盟关系也是一样呀,只不过在IPSEC当中建立“联盟体”就是商量各种加密算法,并不是像ospf、bgp一样,是协商hello时间、网络类型啥的,而建立‘联盟体’的过程就是各种密钥算法协商的过程,这个过程叫IKE(internet key exchange因特网密钥交换)

正确理解SPI:SPI最简单了,全称是security parameter index 安全参数索引,其实最关键的作用就是标识而已。当一个公司有多个分支机构,那总部就需要向每个分支机构建立IPSEC VPN,也就是说想要实现一对多的VPN关系,我只有一个公网IP地址,怎么实现一对多呢?除非将不同的IPSEC VPN做区别,而SPI就是标识的号码而已,用于区分多个联盟关系。

实验-手动

手动示例

  1. 配置网络可达
  2. 配置ACL识别感兴趣流
  3. 创建安全提议
  4. 创建安全策略
  5. 应用安全策略

安全策略主要有两个目的:

  • 第一个目的是将acl和安全提议相关联
  • 第二个目的是要知道到底要和谁去建立连接。

我们接下来来看一个小案例

ipsec proposal shanghai
	encapsulation-mode tunnel
	tranfrom esp
	esp authentication-algorithm sha2-256
	esp encryption-algorithm aes-128
display ipsec proposal
命令 备注
ipsec proposal shanghai
encapsulation-mode tunnel
tranfrom esp
esp authentication-algorithm sha2-256
ensp encryption-algorithm aes-128
display ipsec proposal
创建安全提议
配置报文的封装模式
配置隧道采用的安全协议
配置ESP使用的单向散列算法
配置ESP使用的对称加密算法
验证IPSEC提议配置

我们先配置的其实是数据传输时的部分,关于通道的加密部分会在下文当中讨论,其实上面的配置非常简单,这个安全提议其实只有两个配置:

  1. 采用什么封装模式,取决于我们是站点间连接还是主机之间连接
  2. 选择一种加密工具AH或ESP,正常人全都选择ESP,因为ESP本身即向实现单向散列算法也能实现对称加密,你不指定具体的算法它有默认的,建议还是自己定一下,如上图所示,默认的安全性差一点。默认的内容通过display是看不到的哟~,再次提醒,上面创建安全提议指定的参数其实是用于加密数据的,而不是用来加密通道的。

安全提议配置完之后,我们接下来需要该配置安全策略了,如下所示:

ipsec policy P1 10 manual   			
	security acl 3000    
	proposal shanghai   
	tunnel local 12.0.0.2   
	tunnel remote 13.0.0.3   
	sa spi inbound/outbound esp 12345 
	sa string-key inbound/outbound esp cipher wakin
display ipsec policy 
ipsec policy P1 10 manual   				# 创建并配置IPSEC安全策略(手动)
	security acl 3000      					# 配置引用ACL
	proposal shanghai   					# 配置引用的提议
	tunnel local 12.0.0.2   				# 配置安全隧道的本端地址
	tunnel remote 13.0.0.3   				# 配置安全隧道的对端地址
	
	# #配置SA的SPI,入方向和出方向必须设置并且双方的必须相互对应
	sa spi inbound/outbound esp 12345   
	# #配置SA的认证密钥入方向和出方向都必须设置,并且双方的必须相互对应
	sa string-key inbound/outbound esp cipher wakin  
	
# 验证IPSEC手动策略配置
display ipsec policy   				

防火墙手动示例

image-20230306212557000

ENSP小实验

https://www.cnblogs.com/yizhangheka/p/13193217.html

posted @ 2019-11-15 19:34  张贺贺呀  阅读(296)  评论(0编辑  收藏  举报