一种基于PowerPC和Linux的VPN网关设计-设计应用_第1页
一种基于PowerPC和Linux的VPN网关设计-设计应用_第2页
一种基于PowerPC和Linux的VPN网关设计-设计应用_第3页
一种基于PowerPC和Linux的VPN网关设计-设计应用_第4页
一种基于PowerPC和Linux的VPN网关设计-设计应用_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档-下载后可编辑一种基于PowerPC和Linux的VPN网关设计-设计应用目前,国内大部分VPN网关在硬件平台上使用基于x86CPU的商用工控机主板。由于商用工控机是为一般的工业控制而设计的,作为VPN网关使用时,存在功能冗余、成本及可靠性难于控制等问题VPN网关为防火墙+VPN软硬件一体化的产品。VPN是虚拟专用隧道网络的意思,通过vpn技术可以实现不同的网络互联,构成一个网络,是总部与分支机构网络互通的形式。VPN网关支持adsl线路,免租专线、即插即用;支持pptp协议、ssl协议;可以实现点对点、点对网、网对网等多种互通形式。

VPN概念

什么是VPN

VPN英文全称是"VirtualPrivateNetwork",翻译过来就是"虚拟专用网络".vpn被定义为通过一个公用网络建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定隧道。使用这条隧道可以对数据进行几倍加密达到安全使用互联网的目的。虚拟专用网是对企业内部网的扩展。虚拟专用网可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,用于经济有效地连接到商业伙伴和用户的安全外联网虚拟专用网。VPN主要采用隧道技术、加解密技术、密钥管理技术和使用者与设备身份技术。

VPN如何保护通信安全

不同类型的VPN所采用的协议不同,使用的安全机制也不同。它可使用CA数字证书来实现通信双方的身份;使用对称加密算法来对数据进行加密,保证数据的安全性;使用单向散列函数对数据计算摘要,并对摘要进行加密来保证数据的完整性。此外,VPN节点之间通信,不可能每次都手工配置密钥,手工方式既不安全也不方便,可以采用因特网自动密钥交换协议来进行密钥的协商,设置每次会话密钥的生命期。

当企业虚拟专网建立时,需要在各个子网的出口配置安全网关。安全网关负责对流出数据进行加密和计算校验和,对进入数据进行检验和解密,并实施访问控制。

VPN的使用

VPN安全网关与VPNClient软件配合使用,通过灵活配置隧道策略,不仅可以解决通信的安全问题,还可以解决用户对公司总部网络的访问授权问题。图1是一个VPN安全系统的典型网络拓扑图。

当网关与网关相连时,通过VPN管理中心或终端方式为需要相互通信的两台网关间配置对应的隧道,位于两台私口后的主机就能通过加密隧道进行通信,防止数据被丢失、篡改并保证数据的完整。

VPN安全网关设计方案概述

VPN系统体系结构

VPN的主要作用是采用加密、和网络技术在公共互联网上构建相互信任方之间的安全加密信息传输通道,以期达到专用网络的效果。VPN网关在其中将发挥非常重要的作用。

由图1可知,VPN网关工作在本地局域网及与其通信的远程局域网的网关位置,具有加密和功能。相互信任的局域网间进行通信时,仍然使用互联网作为中间信道。但是,通过VPN网关的加密功能确保信息在不安全的互联网上流通时是密文形式。即便信息被截取,也无法偷窥或篡改其内容,保证通过互联网连接的局域网间通信的安全性、机密性、可性和完整性等安全性能。

VPN安全网关的设计目标

(1)完整实现IPSec协议簇,完全支持VPN的要求。

(2)要建立在具有自主版权的、安全性完全控制在自己手中的内核操作系统之上。

(3)要确保自身的安全、协议的安全和信息通道的安全。采用国密办批准的加密算法,由硬件实现数据加解密。

(4)要具有较高的性价比,满足低端网络的要求。明文吞吐率10Mbps;启用IPSec协议,以隧道方式加密传输时,吞吐率大于4Mbps.

(5)设计与实现要采用先进的硬、软件技术和方法。

(6)尽可能方便管理、灵活配置和界面友好。

技术思想

(1)软件:①自主开发的嵌入式安全操作系统内核;②由于LinuxOS的源代码的开放性及其在网络产品中的优异表现,因而可以用其构建具有自主知识产权的VPN安全网关;③网络协议和IPSec协议层;④数据加/解密算法由采用国密办批准的硬件加密芯片SSF10B实现;⑤管理系统层需支持手工和通过SMC配置IPSec策略。

(2)硬件:根据设计要求,该VPN网关将用于10Mbps以太网环境中,设计采用目前在通信业中使用较广的Mo2torola通信处理器PowerPCMPC8xx作为主CPU,选用其中一款性价比较高的控制器MPC855T.在硬件平台的设计中,本着满足性能要求,保证高可靠性和高性价比的原则,嵌入式Linux操作系统的构建通常的嵌入式系统开发大致可以分为硬件设计、装载或引导嵌入式系统、在嵌入式系统上建立开发平台以及开发应用等四个步骤。

利用ppcboot引导

ppcboot源码树的目录结构

CHANGELOG//记录历次版本升级时的修改内容

COPYING

CREDITS

MAKEALL

Makefile//制作文件

README//必读的文件

System.map//当编译连接完成后,所生成的ppcboot二进

//制中所有函数、数据的地址信息

board//各种与板子硬件关联的。c模块

common//一些通用ppcboot命令集的。c模块

config.mk

cpu//与MPC8xx硬件关联的系统初始化。c代码

disk//磁盘分区支持

doc//技术文档目录

examples//一些简单的、无需操作系统的应用程序

fs//ppcboot中对文件系统的支持

include//头文件

net//网络协议支持

ppcPowerPC//处理器运行时环境支持

ppcboot//elf32格式的ppcboot二进制执行文件

ppcboot.bin//raw二进制格式的ppcboot执行文件

ppcboot.map//s2record格式的ppcboot执行文件

rtc//实时时钟支持

tools//与ppcboot相关的一些工具软件ppcboot的特点

经修改后,ppcboot-1.1.5具有如下特性:(1)支持bootm,直接从flash引导Linux,并提供软件工具集,可构建出终烧结用的影像;(2)支持从doc或flashmemory引导Linux,并提供工具集,可构建出终烧结用的影像;(3)板上flash/doc读、写、擦除功能;(4)支持串行口kermit协议代码或数据;(5)支持scc1以太网口启动tftp下传数据:如内核、ramdisk、autoscript等影像;(6)支持串行口srecord代码或数据;(7)支持autoscript;(8)提供板上内存读写,格式化显示,可进行简单测试。

当完成ppcboot-1.1.5的改写后,对其进行编译,得到二进制的ppcboot.bin代码,然后将其烧录在板上的BOOTEPROM中。

建立Linux开发平台

修改和编译嵌入式Linux内核

Linux内核有自己的结构体系,进程管理、内存管理和文件系统是其基本的三个子系统。图2为Linux内核的结构。图中虚线框中部分可以看成是Linux内核的单内核结构,因此修改内核必须注意各子系统间的协调。

Linux开发平台使用内核版本为2.4.4的PowerPC嵌入式Linux操作系统作为VPN网关的基本软件平台。为了支持硬件平台,需要对内核进行修改,并增加相应设备的驱动程序。

(1)驱动程序列表

DOC驱动程序源码:/home/sjw01/linux/drivers/mtd/devices/doc2000.c;

以太网驱动程序源码:/home/sjw01/linux/arch/ppc/8xx_io/enet_scc1.cfec.c;

RTC驱动程序源码:/home/sjw01/linux/drivers/unis_rtc/rtc8xx.hrtc8xx.csetrtc8xx.cMkaefilesetrtc8xx;

串口驱动程序源码:/home/sjw01/linux/arch/ppc/8xx_io/uart.c;

flashmemory驱动程序源码:/home/sjw01/linux/drivers/mtd/maps/unis.c.

(2)交叉编译环境

使用hardhatCDK2.0作为开发工具,需将下面的路径加入用户环境变量$PATH中:/opt/hardhat/devkit/ppc/8xx/bin;#exportPATH=$PATH:/opt/hardhat/devkit/ppc/8xx/bin或编辑".bash_profile"文件的PATH行。构建目标文件系统配置DOC或FlashMemory中的文件系统是件很讲究的事情,主要是因为DOC/Flash容量有限,在保证正常功能的前提下,要尽可能地少占用资源。

总体上,文件分成如下几类:(1)共享库类:这类文件必不可少。(2)Linux/GNU系统实用工具:尽量用busybox、tinylogin代替,能减则减。(3)配置文件:多出现在/etc下,不太占地方,但要注意协调关系。(4)用户应用程序:编译时尽量使用动态连接,编译后strip一下,放到固定位置。

目标文件系统列表如表1所示。

所有配置文件、可执行文件、库文件的位置均符合Linux操作系统的惯例。

IPSec实现中的硬件加密算法

IPSec是一种开放标准的框架结构,通过使用加密的安全服务以确保在Internet协议(IP)网络上进行保密而安全的通讯。Microsoftreg;Windowsreg;2000、WindowsXP和WindowsServer2022家族实施IPSec是基于"Internet工程任务组IPSec工作组开发的标准。

在VPN安全网关中,加密算法的安全、高效,是VPN网关安全性和有效性的重要保证。为此,在设计中采用了一种硬件加密模块的方式,使得我们的VPN网关可以在硬件上使用不同的加密算法。在我们的默认配置中,使用国密办批准的分组加密算法芯片SSF10.

为了使用硬件加密模块,需要在Linux内核的IPSec实现中添加和修改相应的代码,下面对其简单说明。由于IPSec实现在内核中的特殊位置,并且MPC855T的主频较低(80MHz),采用访问设备驱动文件的方式访问硬件SSF10加密模块会造成速率大幅降低。因此,我们采用I/O直接访问硬件SSF10芯片,同理,可以使用硬件DES/3DES、硬件AES算法和其他国密办批准的算法,用硬件实现数据加密。与硬件加密算法有关的文件如下:

freeswan-1.94/klips/net/ipsec/Config.in;

freeswan-1.94/libdes/des_enc.c;

freeswan-1.94/klips/net/ipsec/ipsec_sa.h;

freeswan-1.94/klips/net/ipsec/ipsec_tunnel.c;

freeswan-1.94/klips/net/ipsec/ssf10.h;

freeswan-1.94/klips/net/ipsec/ipsec_init.c;

freeswan-1.94/klips/net/ipsec/pfkey_v2_parser.c;

freeswan-1.94/klips/net/ipsec_rcv.c.

完成修改后,使用内核makemenuconfig命令,选中Networkingoptions→[*]IP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论