基于IPsec的站点间VPN部署方法
2022-06-15李春平张淑荣韦立梅肖亚光
李春平 张淑荣 王 东 韦立梅 肖亚光
(广东白云学院,广东 广州 510000)
1 引言
疫情期间,网上办公、居家办公成为常态。如何在现有基础设施上解决用户个人与公司、分支机构与总部之间的通信,同时保证安全性和可靠性,是企业网络工程师们需要解决的问题。一方面,用户需要通过远程方式随时随地访问公司网络,同时需要保证通信安全。另一方面,公司总部也需要和分支机构通信,而总部和分支机构可能相距遥远,不在同一个地理位置。目前比较经济的接入方式是通过互联网。由于互联网是公共开放的平台,如果没有相应的安全保护机制,将导致数据被窃取、篡改或冒充等安全问题[1]。VPN是解决此类问题最常用的方案。在VPN的实施中,远程访问部署方式用来解决单个用户访问公司网络的问题,而站点间的VPN通常用来解决总部和分支机构之间的安全通信问题。
2 IPsec基本原理
2.1 VPN实施方式
VPN实施通常有两种方式,一种是远程访问连接方式,一种是总部与分支机构之间的连接。远程访问方式既可以采用安装VPN客户端的方式,也可以采用无客户端的SSL方式进行。总部与分支机构之间的安全通信,可以采用基于IPsec的站点间VPN实现[2]。VPN实施方式示意图如图1所示。
图1 VPN示意图
2.2 IPsec封装格式
IPsec可以在互联网中提供端到端的数据报通信安全,通过加密和认证方式保护IP数据报及其封装的数据。IPsec是一个框架协议,包括AH、ESP、SA、IKE等协议[3]。
IPsec可以采用直接传输和隧道封装两种模式工作,在通过互联网承载的站点间VPN中通常采用隧道模式。隧道模式是将原始IP数据报作为有效载荷封装在IPsec报头里,封装格式如图2所示。
图2 IPsec隧道模式封装格式
3 部署方法
当组织架构位于不同地理位置,例如总部和分支机构之间的网络连接和保密通信时,可以在公司总部和分支机构之间采用站点间的VPN部署方式。站点间IPsec采用隧道模式,通过公共开放的互联网传输数据,利用现有资源节约成本,同时通过IPsec加密和认证实现站点间的安全通信。采用Packet Tracer进行仿真,拓扑如图3所示[4]。
图3 VPN Tunnel拓扑图
拓扑图中的IP地址规划如表1所示。
3.1 基础配置
按照表1中的地址规划,分别在R1-LEE、R2-LEE、R3-LEE路由器设备上配置好接口IP地址,并配置好路由,保证网络连通。在实施路由时,可以采用动态路由的方式进行部署,采用动态路由的好处是可以自动适应网络拓扑的变化,自动更新和维护路由,缺点是占用路由器资源,另外在进行路由更新时容易产生安全性问题。静态路由占用资源较少,安全性也较高。因此这里路由均采用静态路由,方便检验测试。
表1 IP地址规划
为了有效节约IP地址资源,在串行链路1和串行链路2中,均采用30位的地址掩码。由于是点对点链路,因此链路中端点只需要2个IP地址即可,30位掩码刚好满足。
(1)路由配置
R1-LEE上的静态路由配置:
R1-LEE(config)#ip route 0.0.0.0 0.0.0.0 172.22.69.2
R2-LEE上的静态路由配置:
R2-LEE(config)#ip route 0.0.0.0 0.0.0.0 172.22.70.2
为了实现VPN,检验网络通信是否由VPN工作实现的安全保密通信,在本实例中,R3-LEE路由器并不知道外部网络情况,因此不必在上面部署路由。这样,R1-LEE和R2-LEE路由器上连接的内部网络对R3-LEE路由器来说不可见,PC1到PC2的通信在VPN隧道内进行。
(2)许可证检查
在使用模拟器进行仿真时,需要注意路由器设备系统是否安装有支持DES、3DES、AES等加密解密的模块,这些模块需要许可证支持。在R1-LEE、R2-LEE上分别检查是否安装有securityk9许可证,可通过show version命令检查安全技术包许可证信息。如果没有,则需要通过下列命令进行安装。
R1-LEE(config)# license boot module c1900 technologypackage securityk9
R2-LEE(config)# license boot module c1900 technologypackage securityk9
安装完毕后需要保存并重启。
(3)定义需要关注的流量
为了防止不必要的流量通过VPN,减少带宽占用以及非授权访问,需要定义需要关注的流量,即允许授权的流量通过VPN隧道。通过在全局模式下配置访问控制列表来定义需要关注的流量,这里需要关注的流量指来自内部网络192.168.69.0和192.168.70.0的流量。使用扩展的访问控制列表,编号采用111。
R2- LEE(config)# access- list 111 permit ip 192.168.70.0 0.0.0.255 192.168.69.0 0.0.0.255
注意R2-LEE上的流量方向和R1-LEE上的流量方向正好相反。
3.2 ISAKMP策略部署
IPsec工作过程可分为两个阶段:第一阶段主要是IKE的ISAKMP协商[5],主要包括加密策略定义、密钥算法、认证方式、密钥分配等策略;第二阶段是IKE的IPsec策略。
(1)R1-LEE的配置
在R1-LEE上配置IKE第1阶段ISAKMP策略。参照表2的配置参数,加密ISAKMP配置为策略10,加密算法采用增强的AES算法,密钥长度为256,可增强安全性,身份验证采用预共享密钥,密钥设置为sitevpn99,采用DH密钥分配方法[6],DH组设置为5。
表2 IPsec第1阶段策略参数
R1-LEE(config)# crypto isakmp policy 10 //定义isakmp策略
①采用拜安康血糖仪型血糖仪,分别于餐前、餐后2 h采指血测患者血糖并记录;采用乳胶免疫凝集法测定HbA1c;②心理状态采用汉密顿焦虑量表(HAMA)、汉密顿抑郁量表(HAMD)评定患者心理状态,得分越低说明心理状态越好,反之得分越高,说明心理状态差。③观察并记录两组并发症发生率。
R1-LEE(config-isakmp)# encryption aes 256 //定义加密算法
R1-LEE(config-isakmp)# authentication pre-share //定义预共享密钥身份验证方式
R1-LEE(config-isakmp)# group 5 //DH组号设置为5
R1-LEE(config-isakmp)# exit
R1- LEE(config)# crypto isakmp key sitevpn99 address 172.22.70.1 //设置密钥及对等体IP地址
(2)R2-LEE的配置
R1-LEE上配置好ISAKMP属性后,需要在VPN对等体上进行镜像,即在R2-LEE上配置同样的ISAKMP策略参数。R2-LEE上配置IKE第1阶段ISAKMP参数如下,注意对等体IP地址需要设置为对方的IP地址。
R2-LEE(config)# crypto isakmp policy 10 //定义isakmp策略
R2-LEE(config-isakmp)# encryption aes 256 //定义加密算法
R2-LEE(config-isakmp)# authentication pre-share //定义预共享密钥身份验证方式
R2-LEE(config-isakmp)# group 5 //DH组号设置为5
R2-LEE(config-isakmp)# exit
R2- LEE(config)# crypto isakmp key sitevpn99 address 172.22.69.1 //设置密钥及对等体IP地址
3.3 IPsec策略部署
IKE第二阶段的IPsec策略主要包括定义转换集、数据加密、完整性验证、对等体设置、加密映射等。
(1)R1-LEE的配置
根据表3,配置IPsec第2阶段的策略参数。在R1-LEE上配置IKE第2阶段IPsec策略,创建转换集SITE-VPNSET,采用esp-aes 256加密数据,使用esp-sha-hmac[7]进行完整性检查。
表3 IPsec第2阶段的策略参数
R1-LEE(config)# crypto ipsec transform-set SITE-VPNSET esp-aes 256 esp-sha-hmac
创建加密映射SITE-VPN-MAP,序号为10,定义为ipsecisakmp映射,将第2阶段所有策略参数绑定在一起。
R1-LEE(config)# crypto map SITE-VPN-MAP 10 ipsecisakmp //定义加密映射集
R1-LEE(config-crypto-map)# set peer 172.22.70.1 //配置对等体IP地址
R1- LEE(config- crypto- map)# set transform- set SITEVPN-SET //配置转换集
R1-LEE(config-crypto-map)# match address 111 //绑定ACL定义的流量
R1-LEE(config-crypto-map)# exit
在传出接口上配置加密映射。将SITE-VPN-MAP加密映射绑定到传出串行接口s0/0/0。
R1-LEE(config)# interface s0/0/0
R1-LEE(config-if)# crypto map SITE-VPN-MAP //绑定加密映射
(2)R2-LEE的配置
和第一阶段一样,同样需要设置好VPN镜像。R2-LEE的配置可参照R1-LEE进行,在R2-LEE上配置IKE第2阶段IPsec策略如下:
R2-LEE(config)# crypto ipsec transform-set SITE-VPNSET esp-aes 256 esp-sha-hmac //创建转换集SITE-VPN-SET
R2-LEE(config)# crypto map SITE-VPN-MAP 10 ipsecisakmp //定义加密映射集
R2-LEE(config-crypto-map)# set peer 172.22.69.1 //配置对等体IP地址
R2- LEE(config- crypto- map)# set transform- set SITEVPN-SET //配置转换集
R2-LEE(config-crypto-map)# match address 111 //绑定ACL定义的流量
R2-LEE(config-crypto-map)# exit
在传出接口上配置加密映射。将SITE-VPN-MAP加密映射绑定到传出串行接口s0/0/1。
R2-LEE(config)# interface s0/0/1
R2-LEE(config-if)# crypto map SITE-VPN-MAP //绑定加密映射
4 验证与测试
VPN是否正常工作,可通过对无关注流量时的隧道情况和有关注流量时的隧道情况进行检验。在没有流量通过VPN隧道时,VPN中封装、解封、加密、解密的数据流量应为空。而在有关注流量通过VPN隧道时,可以通过VPN中封装、解封、加密、解密的数据流量和实际发送的数据包是否匹配,来检验VPN的工作状态是否正常。
(1)无关注流量时隧道情况
检验需要关注的流量之前的隧道。在R1-LEE上发出show crypto ipsec sa命令以检查IPsec工作状况。
R1-LEE#show crypto ipsec sa
interface: Serial0/0/0
Crypto map tag: SITE-VPN-MAP, local addr 172.22.69.1
protected vrf: (none)
local ident (addr/mask/prot/port): (192.168.69.0/255.255.255.0/0/0)
remote ident (addr/mask/prot/port): (192.168.70.0/255.255.255.0/0/0)
current_peer 172.22.70.1 port 500
PERMIT, flags={origin_is_acl,}
local crypto endpt.: 172.22.69.1, remote crypto endpt.:172.22.70.1
path mtu 1500, ip mtu 1500, ip mtu idb Serial0/0/0
current outbound spi: 0x0(0)
从以上显示结果可以看出,在没有发出IPsec VPN关注的流量之前,所有封装、加密、解封和解密的数据包数量均为0。
(2)有关注流量时隧道情况
可以通过从PC1对PC2执行ping操作创建需要关注的流量。执行ping操作后,流量将通过隧道进行安全传输。检验需要关注的流量之后的隧道。在R1-LEE上,再次发出show crypto ipsec sa命令,检验隧道工作状况。
R1-LEE#show crypto ipsec sa
interface: Serial0/0/0
Crypto map tag: SITE-VPN-MAP, local addr 172.22.69.1
protected vrf: (none)
local ident (addr/mask/prot/port): (192.168.69.0/255.255.255.0/0/0)
remote ident (addr/mask/prot/port): (192.168.70.0/255.255.255.0/0/0)
current_peer 172.22.70.1 port 500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 7, #pkts encrypt: 7, #pkts digest: 0
#pkts decaps: 6, #pkts decrypt: 6, #pkts verify: 0
local crypto endpt.: 172.22.69.1, remote crypto endpt.:172.22.70.1
current outbound spi: 0x1ECE37AE(516831150)
inbound esp sas:
spi: 0x9E85E261(2659574369)
conn id: 2000, flow_id: FPGA:1, crypto map: SITE-VPNMAP
sa timing: remaining key lifetime (k/sec): (4525504/3565)
IV size: 16 bytes
replay detection support: N
Status: ACTIVE
outbound esp sas:
conn id: 2001, flow_id: FPGA:1, crypto map: SITE-VPNMAP
sa timing: remaining key lifetime (k/sec): (4525504/3565)
IV size: 16 bytes
replay detection support: N
Status: ACTIVE
从以上显示结果可以看出,隧道状态已变为激活状态,封装、加密、解封和解密的数据包与实际情况是一致的,表明隧道正在工作。通过数据包分析工具[8]进一步研究,不难发现,数据包有效载荷部分已经被加密,在没有获得解密密钥的情况下,无法读出密文所对应的明文,从而保证了数据通信的保密性。由此可见,采用基于IPsec的站点间的VPN部署是正确的,工作状态正常。
5 结语
采用基于IPsec的框架协议,实现站点间的VPN通信。在部署模型中,将复杂的物理网络抽象为简单直观的逻辑拓扑,根据IP地址规划和定义好的IKE策略属性,对网络中的VPN设备进行部署。将通信实体双方身份验证、密钥参数、数据内容加密、完整性检查等属性封装在加密映射策略中,可以简化VPN通信中对等实体和镜像配置过程,保证VPN数据通信的可用性、可靠性和安全性。