APP下载

基于IPSec的VPN技术与实现

2019-08-10陈莉

电脑知识与技术 2019年17期
关键词:树莓派网络安全

陈莉

摘要:在当前的互联网/物联网的发展中,网络安全问题至关重要, 如何快速的部署一个低成本,可扩展,高安全的网络在项目开发中是十分关键的。本文探讨了基于IPSec协议的虚拟私有网络技术(VPN)技术来实现安全的数据传输网络的方式,并基于树莓派和阿里云搭建网络拓扑,给出了设备建立IPSec VPN连接的具体实现过程和详细的配置命令,为物联网设备部署IPSec-VP提供参考和借鉴。

关键词:IPSec;VPN;PKI;树莓派;阿里云主机;网络安全;Linux

中图分类号: TP3      文献标识码:A

文章编号:1009-3044(2019)17-0028-03

开放科学(资源服务)标识码(OSID):

随着企事业组织结构的发展壮大,互联网络在企业组织结构中的深入应用,让链接不同业务部门的网络的安全问题日益突出。随着物联网,大数据和AI,5G技术的发展,万物互联的时代即将来临,而物联网中,网络安全的要求更加突出,物联网的网络如果收到恶意攻击,会产生比互联网更加严重的甚至威胁生命的影响。如何在快速的项目迭代中,快捷的部署一个低成本呢,高安全,可扩展的安全网络架构,是当前网络部署项目中至关重要的一个环节。

为了解决安全问题,传统的一个思路是使用物理私有网络线路来链接不同组织部门或者设备,但是对于大多数中小企业,甚至部分跨国企业来说,搭建私有专用网络成本过于高昂,而对于物联网设备来说,本来就是需要把数据分享到云端或数据中心,所以搭建私有网络不现实。另一个的思路是使用VPN技术(virtual private network) - 虚拟私有网络技术,VPN技术是基于公共网络结合加密、身份认证等技术来在不同业务部门之间建立虚拟安全通道,让连接到虚拟安全通道的不同业务部门认为互相处于一个私有网络之中。VPN 技术具有高安全性,很强的扩展性,低成本,便于管理(虚拟非物理搭建)等特性,具有广阔的发展前景[1]。本文主要探讨了一种基于IPSec协议的VPN 网络的快速实现方案,并给出了在linux系统上的详细配置文件,为项目IPSec-VPN的构建提供借鉴。

1 VPN简介

VPN技术是一种远程访问技术,其实就是利用加密技术,在公共网络的架构上封装一条专门的有加密服务的数据链路。比如在企业中,如何通过外部互联网,访问到企业内网呢?在工业物联网中,如果通过互联网远程访问到工控内网呢?这些都可以通过VPN, 在内网中搭建一台VPN服务器,外部访问通过VPN服务器再进入企业/工控内网。VPN服务器和客户机之前的通讯进行了数据加密,所以基于VPN的数据传输是安全的[2]。

根据不同的标准,VPN可以分为以下几种分类:

不同位置的部门通过支持VPN服务的路由器建立VPN 安全通道,每一个部门的路由器子网中的电脑可以和其他的部门路由器子网中电脑安全通信

b.单点到部门(network to host)

员工个人电脑通过VPN客户端软件连接到某一个部门的VPN路由器,建立VPN安全通道,对于出差、移动办公,提供简单方便的安全网络访问。

其中,工作在网络层的IPSec VPN,其基于IPSec 协议,为了保障IP通讯安全的一系列开放式协议,能够提供数据完整性认证,防重传,保证数据机密性,数据鉴别等各种级别的服务,是当前最为流行的加密技术,特别在物联网的网络安全中得到广泛应用。

2 IPSec 原理

IPSec是IETF(因特网工程任务组)颁发的为了保证传输数据安全性的三层隧道加密技术。它包含一组协议,为数据传输提供了高质量的,可互操作的,基于密码学的安全保证,通过在IP层加密和数据源认证等方式,提供了包括数据机密性,数据完整性,来源认证,防重放等安全服务。

IKE(Internet Key Exchange)为IPSec提供了自动协商交换密钥、建立安全联盟的服务, 能够简化IPSec的使用和管理,大大简化IPSec的配置和维护工作[3]。

2.1 IPSec 数据包

IPSec的核心是在IP层对原始数据包添加IPSec头部来实现对原始数据包的加密、完整性和源IP认证。

2.2 IPSec的两种分装:AH和ESP

AH(authentication header)协议编号51,AH协议能够为数据包提供完整性和认证的安全服务,并能防止重放攻击(截获网络通信包,再次发送),但是不提供数据包加密功能。不能提供数据加密是AH协议没有得到广泛应用的以这个重要原因[4]。

如图2所示为AH封装数据包结构图,AH封装包含了源和目的IP地址,并且会对原始IP地址进行验证。AH 封装最初是为IPv6规范设计,在IPv6网络中,因为有足够多的地址可供设备分配、使用,所以IPv6的数据包中地址一般不会改变,但是对于IPv4规范,因为地址资源有限,达不到一个设备使用一个公网IPv4地址,多数都是需要内网IPV4和公网IPv4进行网络地址转换(NAT),这样就带来一个问题,一旦IPSec使用AH的封装,数据包则不能穿越NAT网络,因为经过NAT网络之后,地址会转换,也就不能通过地址验证,这是AH封装没有广泛应用的另一个重要原因。

ESP (encapsulation security payload)協议编号50,ESP封装能够为数据包提供加密、完整性和源认证三大安全服务,同样也可以防止重放攻击。ESP和AH封装另外一个区别是ESP只保护数据域,不对IP头做保护和验证,这样,ESP数据包可以穿透NAT网络。

如图3所示为ESP封装数据包结构图,其中SPI和序列号是最关键的两个参数。SPI是一个32bit的字段,用来标识数据包的SA(security association),IPSec peer之间建立链接过程中,分为两个阶段,第一阶段建立IKE SA,第二阶段是建立IPSEC的SA,这里32bit就是第二阶段的IPSec的SA编号。序列号是一个单向增长的向量编号,用来唯一标识一个ESP封装的数据包。ESP头里面使用序列号是为防范重放攻击,比如:当前数据包的序列号是1000,下一个包的序列号就是1001,如果接收方收到两个重复序列号的数据包,后面一个数据包就会被判断为重复报攻击,该包会被丢弃。

2.3 IPSec的两种模式:

IPSec的分装有两种,传输也有两种,组合起来数据包就有4种结构,鉴于ESP封装的广泛使用,这里以ESP与传输模式、ESP与隧道模式两种包结构来进行分析。

传输模式(transport mode):

传输模式就是在原始IP数据包的IP头和IP数据域之间插入ESP头,末尾加上ESP尾和ESP验证数据,对ESP头之后到ESP验证数据之间的数据域进行加密,原始IP数据包头不做任何改动,数据包结构见 图-3。配置IPSEC时,对于通信点和加密点合一的情况,就是适合使用传输模式,通信点是指实际发起网际通信的设备,如路由器or主机,机密点是指实际对数据包进行加密的设备,如路由器。比如员工A的个人电脑在家和处于公司路由器子网另一员工B的电脑之间收发邮件,员工A的电脑使用IPSEC客户端连接到公司路由器的VPN服务器,这样,员工A的电脑即是通信的也是加密点,员工B的电脑发出原始数据包,到达公司路由器,再由路由器的VPN服务加密,这样,员工B的电脑就是通信点,公司的路由器就是加密点。这种情况,就不合适使用传输模式建立IPSec连接。

隧道模式(tunnel mode):

隧道模式ESP封装的数据包结构如下图4。

隧道模式一般用于站点到站到(network-to-network/site-to-site),两个不同位置的分部使用带VPN功能的路由器连接。在两个分部的路由器自网络的设备都是通信点,两个路由器都是加密点。比如,分部A的路由器Arouter子网内的员工电脑A1和分部B的路由器Brouter子网内的员工电脑B1收发邮件。A1电脑发出邮件到B1电脑,A1发出的邮件被分割成一个一个IP数据包,源IP地址为A1地址,目的地址是B1地址,A1和B1都是通电点,A1发出的IP数据包到达Arouter时,触发Arouter对数据包使用ESP和隧道模式进行封装和加密,使用Arouter的IP地址为数据包的新的源IP地址,Brouter的IP地址为数据包的新的目的IP地址。Brouter接收到数据包后,首先对数据包解密解封装,判断数据包的内部原始源和目的地址,再讲数据包路由到B1电脑。从B1电脑回邮件到A1电脑,也是类似过程。

3 VPN实现

3.1 网络拓扑和环境部署

为了验证VPN在当前流行的物联网/云端项目上的快速部署和搭建,本实现方案部署在Linux系统下,采用开源的Linux内核IPsec解决方案-strongSwan[5]。

云端采用阿里云主机,搭载CentOS系统,安装quagga实现动态路由。设备端采用树莓派,搭载Ubuntu系统,同样安装quagga,实现路由功能。

网络拓扑如下图:

关于Ipsec的具体配置如下:

3.2 实现过程

在树莓派和阿里云主机,分别安装strongswan 以及quagga,按照上面的配置,配置好strongswan 的配置项,阿里云主机先重启strongswan,进入等待状态,然后在树莓派上,重启strongswan,使用IP up hes_vpn 命令,手工发起IPSec连接,连接成功后,可见下图-6,VPN连接建立完成,收发包功。

可见,通过开源库,我们可以快速地在设备和服务器端部署一个点对点的安全的VPN网络,实现通讯网络的安全。该方案可以便捷的应用在物联网的部署中。

4 结束语

本文介绍了虚拟私有网络技术VPN的几种方式,并详细介绍了IPSec原理和数据包封装,以及基于PKI的加密技术,最后在树莓派和阿里云服务器组成的网络拓扑中,模拟了设备之间基于IPSec的VPN连接的过程,并提供了详细的配置文件,验证了该方案在嵌入式系统中部署的可行性和便捷性。可见,基于IPSec的VPN 技术,可以快速便捷的部署在网络中,对通讯数据进行安全保证,相信在以后万物互联的浪潮中,会占据越来越重要的地位。

参考文献:

[1] 肖蔚琪.IPSec-VPN 技术在私有虚擬专网中的应用探讨[J].信息通信,2014(12):170-190.

[2] 王达.虚拟专用网(VPN)精解(第一版)[M].北京:清华大学出版社,2004.

[3] 秦柯.Cisco IPSec VPN实战指南[M].北京:人民邮电出版社,2012:50-60.

[4] Kent S,Atkinson R. IP Authentication Header[S]. RFC2402 IETF,1998.

[5] 杨黎斌,慕德俊.基于硬件加密的嵌入式VPN网关实现[J].计算机工程与应用,2007,43(4):120-125.

【通联编辑:张薇】

猜你喜欢

树莓派网络安全
网络安全
网络安全人才培养应“实战化”
上网时如何注意网络安全?
智能安全防盗探测小车
基于嵌入式技术的农村医疗系统设计