论文部分内容阅读
因特网的普及为社会带来了巨大的经济效益。然而,信息的安全问题也日益突出,网络安全已经成为人们日益关注的核心问题。各种安全防范技术应运而生,其中虚拟专用网络(VPN)技术以其实用性、安全性和简单、低成本获得了广泛的应用。 VPN技术是利用相对不安全的公网来构建企业远程专用网络,利用专用的软硬件设施,通过建立在共享IP网中的逻辑隧道,实现远程网络之间安全、点对点的连接。VPN技术的核心是隧道技术,现有IPSec、GRE、L2TP、PPTP等技术。目前最为主流的是基于IPSec协议的VPN技术。IPSec协议是IETF为IP层提供安全服务而定义的一组相关协议。作为网络层安全协议,实现了基于IP数据包的安全保护,并能为上层协议提供透明的安全服务。 Linux的系统内核自2.4.版本之后采用了Netfilter机制,它是在内核中扩展各种网络服务的结构化底层框架。利用Netfilter的钩子函数,我们可以很容易的插入一个内核模块来实现网络新特性的扩展。 论文对Linux下的IPSec VPN网关进行了研究和实现。采用Netfilter机制的钩子点作为调用处理函数的入口,在数据的IP处理过程中调用IPSec处理模块实现IPSec协议与IP协议的整合。在IP包进入处理处添加IPSec进入策略处理模块确定包的接收与丢弃,在数据包接收处添加IPSec进入处理模块进行IPSec包的解封还原,在发送和转发位置添加IPSec外出处理模块进行包的加密认证和封装。由于是IPSec的网关实施,这里采用了隧道模式。对于安全关联数据库的维护,论文引入IKE协议进行动态维护来代替手工输入的方式,并设计了一种IKE模块的实现方案。内核与应用层的通讯接口,内核和IKE守护进程交互的接口采用了PF KEY协议来进行实现。最后,深入探讨了IPSec协议在应用上的缺陷并提出了建议。