随着网络经济的蓬勃发展,虚拟专用网(VPN)技术也得到了长足发展,价格低廉、实施简单、而又拥有良好安全访问控制机制的SSL VPN在远程访问VPN领域有着不俗的表现。实现安全的SSL VPN应用,操作系统是基础,Linux操作系统作为源码开放的类Unix系统,凭借其开放性和卓越的安全性,常常被用来作为SSL VPN的承载平台。本文对Linux系统进行了安全性方面的分析,并提出进行安全性增强的具体方案,以对SSL VPN系统实施从系统级到应用层的全方位安全保护。
如何在Linux系统现有安全功能基础上,增加或修改安全功能,研制适合SSL VPN应用的Linux平台,有多种方案。一是在应用层实现,安全性差、效率低;二是在内核级对系统进行修改或增强,即在现有Linux 基础上,对内核进行面向安全策略的分析,然后加入安全机制,经修改后的系统基本上与原有系统保持用户接口上的一致,且具有较高的系统效率。由于这种方法是在现有系统上进行开发,受其体系结构的限制,很难达到很高的安全级别,但由于其安全、高效和接口一致等优点,大多数基于Linux 的开发都采用这种方法。
在系统层进行安全增强和修改,有两种方式。一是直接修改内核,安全性控制较好,但内核版本升级后维护工作量大;二是采用软连接方式,用可加载的Linux 内核模块LKM[4],实现安全功能增强,然后将其插入Linux 内核,实现与系统的平滑连接,同时保证原有系统的体系结构和源码不被永久性地改变。
本方案主要通过内核安全模块实现与操作系统的无缝集成,保证系统安全性、高效率、用户透明性。
LSM是由Linus Torvalds 等提出的适用于Linux 平台的通用安全框架。在此之前,基于Linux 实现的安全系统都要开发和维护专用的安全接口,存在安全接口不标准、重复开发、单独维护的问题。LSM 定义并实现了一个通用安全框架,为安全模块的开发提供标准的接口,该框架本身并不提供任何安全功能,只提供了实现安全模块所需的基础结构。安全系统可以利用此框架提供的标准接口,开发内核安全模块,然后插入内核,提供安全功能。采用可加载内核模块的方式增加系统功能,具有灵活和编程方便的优点。目前LSM 主要集中于访问控制,以后会逐渐支持审计功能以及其它安全功能。
Linux安全模块(LSM)的设计的基本要求是:让不需要它的人尽可能少的因此得到麻烦;同时让需要它的人因此得到有用和高效的功能。以Linus Torvalds为代表的内核开发人员对Linux安全模块(LSM)提出了三点要求:
首先要真正的通用,当使用一个不同的安全模型的时候,只需要加载一个不同的 内核模块;另外概念上要简单,对Linux内核影响最小,高效,并且能够支持现存的POSIX.1e capabilities逻辑,作为一个可选的安全模块。
另一方面,各种不同的Linux安全增强系统对Linux安全模块(LSM)提出的要求是:能够允许他们以可加载内核模块的形式重新实现其安全功能,并且不会在安全性方面带来明显的损失,也不会带来额外的系统开销。