1、- 1 - 本科毕业论文 题 目: LINUX 系统 VPN(L2TP+IPSec)模块移植 IPSec 模块设计 姓 名: 学 院:软件学院 系:软件 工程 专 业:软件工程 年 级: 学 号: 指导教师: 职称: 年 月 - I - LINUX 系统 VPN(L2TP+IPSec)模块移植 IPSec 模块设计 摘要 虚拟专网是指在公共网络中建立专用网络,数据通过安全“管道”在公共网络中传播。使用 VPN 有节省成本、提 供远程访问、扩展性强、便于管理和实现全面控制等好处,是目前和今后网络服务的重点项目。因此必须充分认识虚拟专网的技术特点,建立完善的服务体系。 目前建造虚拟专网的国际标准有
2、 IPsec 和 L2TP。其中 L2TP 是虚拟专用拨号网络协议,是 IETF 根据各厂家协议进行起草的,目前尚处于草案阶段。 IPSEC 是一系列基于 IP 网络(包括 Intranet、 Extranet 和 Internet)的,由 IETF 正式定制的开放性 IP 安全标准,是虚拟专网的基础,已经相当成熟可靠。 L2TP 协议草案中规定它( L2TP 标准)必须以 IPSEC 为 安全基础。 IPSec 在 Linux 支持 方面 有两个主要的分类,一为 Frees/WAN, 已经 分裂为两个项目,Openswan 与 Strongswan。本文 使用 Frees/WAN 实现 IP
3、Sec 的功能,并 详细分析了 IPSec 的工作原理,配置方法以及配置过程。最终把 Frees/WAN 移植到路由器的 CLINUX 系统中 , 使得移植后的 系统稳定、功能完善,并且和 LINUX操作系统以及 CISCO的路由器 VPN(L2TP+IPSEC)相兼容。最终保证通信加密 ,实现网络通信安全。 关键字 虚拟专用网; IPSec; Frees/WAN; CLINUX - II - LINUX system VPN (L2TP + IPSec) module transplant IPSec module design Abstract Virtual Private Networ
4、k is the private network that established in the public network, data is transmitting through the channel in the public network. There are advantages of cost savings, providing remote access, strong expansion, convenient to control, and other benefits when using a VPN. It is the key projects for cur
5、rent and future network services. Therefore we must fully understand the technical characteristics of virtual private network, establish, and improve the service system. At present, IPsec and L2TP are two international standards of constructing a virtual private network. L2TP, which is a virtual pri
6、vate dial-up network protocols and drafted according to the agreement of the manufacturers by IETF, is now at a draft stage. IPSEC is a series of open standard that for IP security basing on IP network (including the Intranet, Extranet and Internet), and is drafted by IETF. IPSEC is the foundation o
7、f virtual private network, and is quite mature and reliable. L2TP must be based on IPSEC ordained by L2TP draft agreement. There are two main classifications of IPSec supporting on LINUX. One is Frees / WAN, divided into two projects, Openswan and Strongswan. In this paper, we use Frees/WAN to reali
8、ze IPSec, and furthermore it will analyze through about the working principle, the targeting methods and configuration process about IPSec. Frees/WAN will be eventually migrated to CLINUX system of the router. After the transplant, system should be stable, comprehensive, and make LINUX operating sys
9、tems, routers and CISCO VPN (L2TP + IPSEC) compatible. Eventually make sure that the communication is encrypted, the network is secure. Key words Virtual Private Network; IPSec; Frees/WAN; CLINUX- III - 目录 引言 . 1 第一章 IPSec 基本思想 . 2 1.1 IPSec 基本原理 . 2 1.1.1 IPSec 基本组件 . 2 1.1.2 IPSec 概念划分 . 3 1.1.3 I
10、PSec 保护机制 . 4 1.1.4 IPSec 加密技术 . 4 1.2 IPSec 工作模式 . 6 1.3 IPSec 体系模型 . 7 1.4 IPSec 配置步骤 . 7 1.5 IPSec 工作过程 . 7 第二章 Openswan 构建思想 . 10 2.1 Openswan 概述 . 10 2.2 Openswan 的连接方式 . 10 2.3 Openswan 的认证方式 . 10 2.4 Openswan 的环境配置 . 11 2.4.1 安装内核源代码 . 11 2.4.2 下载相 Openswan 及相关 补丁 . 11 2.4.3 选择需要的内核选项 . 11 2.
11、4.4 编译安装内核 . 12 第三章 Openswan 构建过程 . 13 3.1 安装 Openswan . 13 3.2 NET-TO-NET 方式配置 Openswan . 13 3.3 Road Warrior 方式配置 Openswan . 16 3.4 安装监听网络 . 17 - IV - 3.5 几种捕获包格式 . 17 第四章 建立编译环境与内核移植 . 20 4.1 建立编译环境 . 20 4.2 BLOB 移植 . 21 4.3 uClinux 针对硬件的改动 . 22 4.4 uClinux 的 移植 . 24 4.5 网络监听分析 . 31 结论 . 35 致谢 .
12、36 参考文献 . 37 - V - Contents Introduction . 1 Chapter 1 Basic Idea Of IPSec . 2 1.1 IPSec Principles. 2 1.1.1 IPSec Components . 2 1.1.2 IPSec Concepts . 3 1.1.3 Protention Machanisms Of IPSec . 4 1.1.4 Encryption Technology Of IPSec . 4 1.2 IPSec Mode . 6 1.3 IPSec System Model . 7 1.4 Configure IPS
13、ec. 7 1.5 The Process Of IPSec . 7 Chapter 2 Construction Thinking Of Openswan . 10 2.1 Openswan Overview . 10 2.2 The Connection Way Of Openswan . 10 2.3 The Certification Way Of Openswan . 10 2.4 Configure Environment . 11 2.4.1 Installation Of Core Source Code . 11 2.4.2 Download Openswan and Rel
14、ated Patches . 11 2.4.3 Choose The Core Option. 11 2.4.4 Use Patches To Install The Kernel . 12 Chapter 3 Openswan Construction Process . 13 3.1 Install Openswan. 13 3.2 Configure Openswan According To NET-TO-NET Way . 13 3.3 Configure Openswan According To Road Warrior Way. 16 3.4 Install Network M
15、onitoring Communication. 17 - VI - 3.5 The Format Of Catched Packets . 17 Chapter 4 Establish Environment And Core Transplant .20 4.1 The Establishment Of Compiler Environment . 20 4.2 Transplant BLOB . 21 4.3 Change uClinux About Hardware . 22 4.4 Transplant uClinux . 24 4.5 About Network Monitorin
16、g . 31 Summary . 35 Acknowledgement . 36 References . 37 引言 - 1 - 引言 IPSec( IP Security)是一种较老的也是采用的最为广泛的 VPN 技术, IPSec 可以让我们在不改变外部防火墙规则的情况下,在内核 级别相当容易 地做出安全处理,确保什么能 通过隧道或什么不 能 ;其在实现 NET-TO-NET 以及 HOST-TO-NET 的配置方面也表现出了很大的灵活性。但灵活也就意味着实现起来的困难,所以 IPSec 的 配置运行相当有难度 。 导入 IPsec 的 目的 主要有两个,一个是原来的 TCP/IP 体系
17、中间,没有包括基于安全的设计,任何人,只要能够搭入线路, 就 可 以 分析所有的通讯数据。 IPsec 引进了完整的安全机制,包括加密、认证和数据防篡改功能。二是 Internet 迅速发展,接入越来 越方便,很多客户希望能够利用这种上网的带宽,实现异 地网络的互连 。 IPSEC 协议通过包封装技术,能够利用 Internet 可路由的地址,封装内部网络的 IP地址,实现异地网络的互通。 在这里, IPSec 是通过 Frees/WAN 在 Linux 上实现的 。 Frees/WAN 可以 提供自身的内核堆栈( kernel stack),称为 KLIPS,也可以用 2.6 内核中的堆栈代
18、码。因为 IPSec 工作在网络层,所以需要系统内核态的支持,但 2.4 的内核没有实现内核堆栈,故必须打 KLIPS 补丁。 为了实现 Frees/WAN,首先要装上 VMware.Workstation5.5,因为我们 要通过 安装 两 台 内核版本为 2.4.20-8 的 RH LINUX 9.0 虚拟机 ,来实现我们网关的设计。另外 还需要 安装一台XP 或者 LINUX 虚拟机 来实现 对网关下通信的监听 。在安装过程中,注意把关于内核开发的选项都选上,还要学习有关内核编译的相关命令, 交叉编译等基础知识 。准备工作都做好了,下面可以开始用 Frees/WAN 构建 IPSec VP
19、N 的过程 了 。 LINUX 系统 VPN(L2TP+IPSec)模块移植 IPSec 模块设计 - 2 - 第 一 章 IPSec 基本思想 1.1 IPSec 基本原理 使用 IPSec 是解决网络安全问题的长久 办法 。它能针对那些来自专用网络和 internet 的攻击提供重要的 防线,并在网络安全性与便用性之间取得平衡。 IPSec 是一种加密的标准,它 可以 在差别很大的设备之间进行安全通信。 因此我们不仅可以利用 IPSec 来实现一般防火墙的功能。还可以将其用来为 通信的对等端 建立加密的、可靠的数据通道。 1.1.1 IPSec基本组件 IPsec 通过验证包、加密包或同时
20、执行这两种操作来保护 IP 包。 IPsec 在 IP 模块内部执行,刚好在应用层之下。因此, Internet 应用程序可以直接利用 IPsec,而不 需要 在应用层 进行 配置。 如果 使用 恰当 , IPsec 将 成为 保证网络通信安全的有 效工具。 IPsec 保护涉及 的 五个主要组件 : 1. 安全协议 IP 数据报保护机制。 AH( authentication header)对 IP 包进行签名并确保完整性。数据报的内容没有加密,但可以向接收者保证包的内容尚未更改, 也 可以向接收者保证包 是由 发送者发送 的 。 ESP( encapsulating security pa
21、yload)对 IP 数据进行加密,因此在包传输过程中 内容 会被 遮蔽。 此外, ESP 还可以通过验证算法选项来确保数据的完整性。 2. 安全关联数据库 (Security associations database, SADB)将安全协议与 IP 目标地址和索引号进行关联的数据库。索引号称为 SPI( security parameter index,安全参数索引)。安全协议、目标地址和 SPI 能够唯一地 标识 一个 合法的 IPsec 包。此数据库可以保证 到达目的地的受保护包 能被 接收者识别。接收者还可使用数据库中的信息解密通信、检验包 是否受到篡改 、重新组装包并将包发送到其最
22、终目的地。 3. 密钥管理针对加密算法和 SPI,用来 生成和分发密钥。 4. 安全机制针对 IP数据报中 数据的验证和加密算法。 5. 安全策略数据库 (Security policy database, SPD)用于指定包的 受 保护级别的数据库。 SPD 过滤 IP 通信来确定应该如何处理包。包可能被废弃,可 能 毫无阻碍地进行传送,或者也可 能 受到 IPsec 的保护。对于外发包, SPD 和 SADB 确定要应用的第一章 IPSec 基本思想 - 3 - 保护级别。对于传入包, SPD 帮助确定包的保护级别是否可接受。如果包受 IPsec 保护,将在对包进行解密和验证之后参考 SP
23、D。 1.1.2 IPSec概念划分 1. 数据流 数据流是一组具有相同源网络地址 /掩码,目的网络地址 /掩码和上层协议的数据集。通常,一个数 据流采用一个访问控制列表 acl来定义,该 acl 允许通过的所有报文在逻辑上作为一个数据流。 2. 变换集( Transform Set) 变换集包括安全协议( AH 或 ESP),安全协议使用的算法(验证和加密算法),安全协议对报文的封装形式(隧道模式或传送模式),规定了把普通的 IP 报文转换成 IPSec 报文的方式。变换集由安全策略引用。 3. 安全策略 安全策略由用户手工配置,规定对什么样的数据流采用什么样的安全策略。数据流的定义用上面的
24、 acl表示, 所采用的安全措施则通过引用上面定义的变换集获得。 4. 安全策略组 安全策略组 就是 所有 具有相同名字的安全策略的集合。安全策略组是和使用 IPSec的接口一一对应的,从而可以在一个接口上同时应用一个安全策略组中的多个安全策略,实现对不同的数据流进行不同的安全保护。 5. 安全联盟( Security Association) 安全联盟是两个通信实体根据安全策略经协商建立起来的一种协定。他们决定了用来保护数据安全的 IPSec 协议,算法,密钥以及密钥的有效存在时间等。任何 IPSec 实施方案都会构建一个 SA 数据库( SADB) ,由它来维护多个 IPSec SA 记录。 SA是单向的,输入数据流和输出数据流 分别 由输入安 全联盟与输出安全联盟 进行 处理 。安全联盟可以通过手工配置和自动协商两种方式建立。 以下三个元素唯一地标识 IPsec SA: (1) 安全协议( AH 或 ESP) (2) 目标 IP 地址 (3) SPI(安全参数索引) 。 6. 安全参数索引( SPI)