论文部分内容阅读
Internet的互联性和开放性使信息的交换与共享成为现实,为社会带来巨大利益的同时,也不可避免地带来许多安全隐患。IPSec协议是IETF为网络层提供安全服务而定义的一组相关协议。基于IPSec构建VPN网关成为一种主流的VPN技术,然而,IPSec协议的处理将会大大增加网关的负载,因此,IPSec VPN网关的实现要特别讲究优化设计以提升效率。利用Linux的Netfilter机制,可以插入一个内核模块来实现网络新特性的扩展。另外,Linux内核稳定而高效,开放源代码,既降低了成本、又掌握了系统的安全。论文研究Linux下基于Netfilter机制的IPSec处理,完成的工作包括:研究了Linux下开源的IPSec协议簇的实现——S/WAN项目中KLIPS模块的体系结构,重点研究了Openswan的内核空间模块和用户空间模块的源代码实现,总结出Openswan的系统框架、IPSec的实现方法,进而结合IPSec的实现机制,指出了Openswan中IPSec实现的架构缺陷。研究了Linux内核的网络模块处理机制,TCP/IP处理流程以及Netfilter的HOOK机制,重点研究了Netfilter机制的实现过程,提出了一种基于Netfilter机制的IPSec处理框架。基于该框架,可以将整个IPSec协议的实现融入到IP协议栈中,在不影响原操作系统协议栈的前提下,既能利用Linux内核网络协议栈已实现的功能,又拥有了内核处理的高效性,实现更为合理,更具有可操作性。研究和实现了基于Netfilter机制的IPSec相关处理模块的处理流程和模块框架,利用Linux开放源代码的特性以及Netfilter的HOOK机制,借助于Openswan开源软件,改造其KLIPS模块形成新的IPSec相关处理模块、函数,利用可加载内核模块技术动态加载其到内核空间,在HOOK点上注册IPSec相关处理模块、函数,使得IPSec处理加入到操作系统内核中的IP数据包处理过程的适当位置,形成Linux下新的、具有高效的IPSec处理功能的IP层。搭建了虚拟机环境下的IPSec VPN实验系统,对论文提出的改进方案进行了初步的功能测试和性能测试,并对测试结果进行了分析。实验结果表明:利用本文改进的IPSec VPN网关建立的ESP隧道进行网络通信,可以有效保护网关之间信息传输的安全,与Openswan的虚接口机制相比,该方案提高了IPSec处理的效率,加快了数据包在网关上的传送速度,使IPSec VPN网关的性能在吞吐量及响应时间上得到明显的提升。