论文部分内容阅读
因特网的普及为社会带来了巨大的经济效益。然而,网络的安全问题也日益突出,已经成为人们关注的核心问题。各种安全防范技术应运而生,其中虚拟专用网络(VPN)技术以其实用性、安全性和简单、低成本获得了广泛的应用。
本文首先详细分析了实现VPN安全网关的关键技术,包括VPN技术、IPSec以及Linux的Netfilter机制。VPN技术是利用相对不安全的公网来构建企业远程专用网络,利用专用的软硬件设施,通过建立在共享IP网中的逻辑隧道,实现远程网络之间安全、点对点的连接。VPN技术的核心是隧道技术,现有IPSec,GRE,L2TP,PPTP等技术。目前最为主流的是基于IPSec协议的VPN技术。IPSec协议是IETF为IP层提供安全服务而定义的一组相关协议。作为网络层安全协议,实现了基于IP数据包的安全保护,并能为上层协议提供透明的安全服务。Linux的系统内核自2.4版本之后采用了Netfilter机制,它是在内核中扩展各种网络服务的结构化底层框架。利用Netfilter的钩子函数,我们可以很容易的插入一个内核模块来实现网络新特性的扩展。
为了实现一个VPN安全网关,要选用一个合适的实现思路,为此,作者选择了在IP层实现安全性,即实现IPSec协议。基于这种思路,作者先从概念上提出了VPN安全网关的设计,包括如何架构硬件,如何架构软件,如何实现安全关联,如何处理收到的IP包等。
最后利用Linux的开放源代码的性质,通过系统本身Netfilter防火墙的HOOK机制,把实现的IPSec模块以注册函数的形式与系统内核进行挂接,实现了TCP/IP协议栈与IPSec的无缝整合,并经过对整合后的系统内核进行重编译,实现了一个真正的安全内核:采用Netfilter机制的钩子点作为调用处理函数的入口,在数据的IP处理过程中调用IPSec处理模块实现IPSec协议与IP协议的整合。由于是IPSec的网关实施,论文采用了隧道模式。对于安全关联数据库的维护,论文引入IKE协议进行动态维护来代替手工输入的方式。内核与应用层的通讯接口,内核和IKE守护进程交互的接口采用了PF_KEY协议来进行实现。