首页 | Linux 基础 | 资讯动态 | Linux 应用 | Linux 服务器 | Linux 开发 | Linux 安全 | 专题 | 联盟论坛
  当前位置:主页>Linux 应用>linux系统管理>文章内容
Linux操作系统下IP隧道深入研究(二)
来源:http://www.unix5.com 作者:riechelr_hl 发布时间:2007-07-06  

三、为实现VPN的扩展

实际上Linux只为实现隧道机制提供了一个框架,图二中的封包协议头在Linux中被忽略了,也就是说,封包头只含封包IP头,其后紧跟原IP数据包。这样的结构用于传输公开数据没有关系,但对于一个VPN来说,安全保密是不可缺少的重要功能。我们希望通过隧道的数据可靠且不可窃取和冒充的,那么,加密和认证就必不可少。为实现这一构想,设计以下封包协议头:

 

  
  
   0 4 8 16 24 31
   +-----+-----+-----------+------------------------+
   | ver |type | hlen | OldPacketLen |
   +-----------------------+------------------------+
   | DeviceID | EncapID |
   +-----------------------+------------------------+
   | Flags | CheckSum |
   +------------------------------------------------+
   | IPIP Options( If any ) |
   +------------------------------------------------+
   . | padding |
   . .
   +------------------------------------------------+
  

 

图三 IPIP头设想图

ver: 版本号,利于扩展;

type: 用于建立不同目的的隧道(可能处理上有差别);

OldPacketLen: 进入隧道的原数据包长度;

DeviceID: 对数据包进行封装的设备标识;

EncapID: 此封包的ID号。

Flags: 标志位,共16位,初步定义如下:

0 保留;

1 有否加密;

2 有否做摘要;

3 有否签名;

4 保留;

5 有否传送消息密钥;

6 消息密钥有否加密;

7 消息密钥是否需保留;

8-15 保留。

CheckSum: 头校验

IPIP Options: 用来传送一些必要的数据,比如消息密钥、签名等。

格式:

 

  +-------------------------------------+
  | 类型 | 长度 | 数据 ... |
  +-------------------------------------+
  

好了,有了这个东西,我们就可以扩展Linux IP Tunnel为我们的VPN服务了。首先,改写new_tunnel.c和ipip.c两个文件,加入对IPIP头的处理。

接着,我们要实现一种密钥的管理和传送机制。当然,对称密钥是必需的,而对IP数据包加密要使用序列密码。从全体考虑,我们可以提出建立VPN的逻辑步骤;

1、准备工作:建网安装系统完成配置等等;

2、隧道的两端分别向对方发送自己的公开密码和设备号;

3、如有必要,产生序列密码,后加密签名传给对方;

4、正常通信,----放心,你的数据已经很保险了。

在一个VPN的隧道中,一个封包的格式应如图四所示。

 

 
  
   / +-----------------+
   | | 封包IP头 |
   封包头 | +-----------------+
   | | 封包协议头 |
   +-----------------+
   / | |
   | | 原协议头 |
   | | 及 |
   封包数据 | | 原协议数据 |
   | . (密文) .
   | . .
   | | |
   +-----------------+
  

 

图四 VPN封包结构

你的几种使用方法

事情往往不能两全其美,你在安全强度和通信速度上必须作出选择,(不然你就需要在安全强度和Money的耗费中做选择。)使用这样的协议,根据你的需求不同,你可有不同的使用方法,下面列举一些:

跨Internet的公司多个内部网之间进行通信,保密性并不重要直接使用原框架机制,无任何加密措施这样速度快、效率高,公司也不用申请多个IP地址,方便可行

一般性的商业应用,具有保密要求利用事先产生的序列密码,每次对原数据包加密安全度提高了,是一种十分实用的方法。只要强度足够,一般很难破译速度快

共2页: 上一页 1 [2] 下一页
 
如果您对本文有任何疑问或者建议,请到论坛讨论区发表您的意见: >> 论坛入口
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
  热点文章
·Linux系统调用列表(详解)
·MBR如果被覆盖了怎麽办?
·Linux系统下用户和用户组所有权
·Linux操作系统下配置IPTables方
·linux应用技巧集囊(新手遍)
·Linux操作系统配置基础祥解:GRU
·Linux循序渐进 进程管理及作业控
·Linux操作系统Gaim玩转QQ与MSN--
·Linux内存映射技术
·UNIX系统操作入门篇
·linux系统管理--从头开始对ubunt
·UNIX系统应急响应工具上(初级)
  相关文章
·Linux操作系统下IP隧道深入研究
·讲解关于Linux系统下内核抢占补
·Linux系统下用户和用户组所有权
·Linux操作系统的内存使用机制研
·Linux操作系统中内部进程通信的
·基于Linux系统管理的负载均衡技
·如何学习理解Linux的系统调用

本站信息源至:互联网络,均为学习,交流所用,如有版权问题,请联系我们.
站长QQ:397422079 E_mail:riechelr_hl@unix5.com
转载本站内容请注明原作者名.谢谢!