基于Linux的VPN网关研究与实现

2012-10-17 03:07周莉谭方勇许璐蕾张燕
网络安全技术与应用 2012年12期
关键词:总长度子网安全策略

周莉 谭方勇 许璐蕾 张燕

苏州市职业大学计算机工程系 江苏 215104

0 前言

安全性是互联网发展的重要前提。1998年 2月,IETF发布了IP安全协议,通常被称为IPsec。这是一套协议在网络层,为IPv4和IPv6提供数据源认证,数据完整性和数据保密。作为一个可扩展的网络安全集,IPsec的支持和越来越广泛的采用。IPsec安全体系结构包括四个部分:

(1) 安全协议:身份验证头(AH)用于为IP数据报提供无连接的完整性,数据源认证。 ESP提供机密性,数据源认证,无连接的完整性,网络层的保密性和有限的流量保密。 AH和ESP都支持两种使用模式:传输模式和隧道模式。在传输模式下的协议主要为上层协议提供保护,在隧道模式下,该协议适用于隧道IP数据包。

(2) 安全关联和安全策略。安全关联(SA)是一个单纯的“连接”,能应用AH或ESP提供单向的安全服务,如果同时使用AH和ESP保护被施加到的交通流,则需要创建两个(或更多)的SA。为了确保典型,在两台主机之间的双向通信,或在两个安全网关之间,两个安全关联(每个方向一个)是必需的。安全策略针对多个通信参数(如IP地址、端口号、协议等),定义特定的网络流量具体应用的网络安全服务。

(3) 密码交互协议。Internet密钥交换(IKE)是一个重要的IPsec协议。它的目的是进行协商,并提供安全协会认证的密钥材料在受保护的方式。目前协议的版本为IKEv2,其定义了更高效的密钥交换类型,键,更安全的验证和加密机制,新方法的产生。

(4) 安全算法。IPsec指定算法包括 HMAC-MD5-96、HMAC-SHA-96、DES-CBC密码算法等多少算法。

1 Linux IPSec支持

Linux2.6内核提供了全新的对IPSec 的支持机构。Linux 2.6内核中的 IPSec支持机构主要包括:内核网络协议栈中IPSec 处理的/无缝接入0,AH 协议、ESP 协议的处理,IPSec重要组件安全关联SA 和安全策略SP 的数据结构及相关访问算法,安全关联数据库SAD和安全策略数据库SPD的构建和访问, IPSec 加密算法函数库的支持, 基于 Netlink 套接字的内核态与用户态的通信支持, 以及内核IPSec 的管理等。

2 VPN网关总体设计与实现

VPN安全网关分为用户控制台模块和内核空间模块和。如图1所示。

图1 系统总体设计

安全网关管理控制台为管理员提供一个管理配置接口。VPN管理员通过控制台可以开启或关闭安全网关功能,并且在安全网关开启情况下,可以通过管理控制台手工建立安全通道,配置安全策略、安全关联等安全通信参数。

安全网关与内核交互模块是一个通信中枢,负责连接用户空间进程与内核空间IPSec部分,主要进行两方面工作:

(1) 接收用户空间进程主动发起的消息,包括管理控制台和IKE守护进程发送的请求,将用户进程的请求封装成内核IPSec管理可接受的消息格式,发送给内核,最后监听内核处理的结果;

(2) 监听内核主动发起的消息,包括:要求建立SA请求、SA生存期超期通知、安全策略生存期超期通知。

内核IPSec管理部分也包含由内核提供的内核IPSec与用户空间交互的通信接口,该部分接收用户空间消息,调用内核中提供的相应的函数,完成具体操作。

安全关联数据库 SAD中包含了所有用于保护通信的安全关联,安全策略数据库 SPD中包含了所有使用的策略条目。所有入站和出站信包经过IP层,接受IPSec处理时都要查询SAD和SPD,来采取相应的处理措施。

IPSec处理对外出数据提供加密和完整性保护,对接收的和数据进行解密和完整性检验,真正实现安全网关安全保障功能,这部分功能内核提供。内核加密算法库为IPSec提供各种加密操作所需的函数。

3 系统的实现与测试

模拟Internet环境下的IPSec VPN安全网关的应用,进行了测试,测试拓扑结构如图2所示。

图2 实验拓扑图

两台计算机各装两块网卡配置为 VPN安全网关,由位于两个 VPN安全网关之后的两台计算机作为客户端,模拟子网。

实验拓扑环境下的配置参数如下:

(1) 位于 VPN安全网关 1后的子网主机 1IP地址为192.168.100.2;

(2) VPN安全网关 1,双网卡,连接子网的 IP地址为192.168.100.1,连接外网的IP地址为210.29.174.138;

(3) VPN 安全网关2,双网卡,连接外网的网卡IP地址为210.29.174.159,连接VPN SGW2保护子网的网卡IP为10.1.1.1;

(4) 位于VPN 安全网关后的子网主机IP地址为10.1.1.2。

3.1 AH的测试

(1) 内网(子网1)客户机发出的信包

IP头分析:总长度60,生存时间128,协议值1(ICMP),源地址192.168.100.2,目的地址10.1.1.2。

(2) VPN安全网关1处理的信包

外部IP头:总长度104,生存时间127,协议值51(AH),源地址210.29.174.138,目的地址210.29.174.159;

AH头:安全参数索引(SPI)00003000,序列号0000000c,验证数据3298 b78c 39 ab 003217 a66b 82。

(3) VPN安全网关2接收到信包

外部IP头:总长度104,生存时间127,协议值51(AH),源地址210.29.174.138,目的地址210.29.174.159;

AH头:安全参数索引(SPI)00003000,序列号0000000c,验证数据3298 b78c 39 ab 003217 a66b 82。

(4) 内网(子网2)客户机接收到的信包

IP头分析:总长度60,生存时间126,协议值ICMP(1),源地址192.168.100.2,目的地址:10.1.1.2。

3.2 ESP的测试

(1) 内网(子网1)客户机发出的信包

IP头分析:总长度60,生存时间128,协议值1(ICMP),源地址192.168.100.2,目的地址10.1.1.2;

(2) VPN安全网关1处理的信包

外部IP头:总长度112,生存时间127,协议值50(ESP),源地址210.29.174.13,目的地址210.29.174.159;

ESP头:安全参数索引(SPI)00002000序列号00000005,初始化向量3c 36555e 6c cd ab 73。

(3) VPN安全网关2处理的信包

外部IP头:总长度112,生存时间127,协议值50(ESP),源地址210.29.174.138,目的地址:210.29.174.159;

ESP头:安全参数索引(SPI)00002000,序列号:00000005,初始化向量3c 36555e 6c cd ab 73。

(4) 内网(子网2)客户机接收到的信包

IP头分析:总长度60,生存时间128,协议值ICMP,源地址192.168.100.2,目的地址10.1.1.2;

4 结束语

本文所设计的 VPN管理控制台可以很好地接收用户命令,并实现对命令的转发;VPN内核消息处理模块,可以快捷、正确地和内核交互消息,最终实现对IPSec VPN的配置管理工作,对基于Linux 2.6内核IPSec VPN安全网关的设计是成功的。

[1](美)Naganand Doraswarmy,DanHarkins.IPSec新一代因特网安全标准.机械工业出版社.2000.

[2]Adolfo Rodriguez,John Gatrell.TCP/IP权威教程(第七版).清华大学出版社.2002.

[3]王作芬,王芙蓉,黄本雄.虚拟专用网中 IPsec隧道技术的研究与实现.计算机工程.2001.

[4]戴宗坤,唐三平.VPN与网络安全.电子工业出版社.2002.

[5][美]Carlton R.Davis.IPSec:VPN的安全实施.清华大学出版社.2002.

猜你喜欢
总长度子网安全策略
一种简单子网划分方法及教学案例*
怎么做能更好地理解工作总量可假设为“1”
基于飞行疲劳角度探究民航飞行员飞行安全策略
子网划分问题研究及应用
一种防火墙安全策略冲突检测方法*
浅析涉密信息系统安全策略
子网划分的简易方法
首先统一单位“1”
如何加强农村食盐消费安全策略
VLSM技术应用——以贺州学院行政办公楼网络为例