📄 835.html
字号:
那么,加密和认证就必不可少。 <br>
<br>
为实现这一构想,设计以下封包协议头: <br>
<br>
<br>
<br>
0 4 8 16 24 31 <br>
<br>
+-----+-----+-----------+------------------------+ <br>
<br>
| ver |type | hlen | OldPacketLen | <br>
<br>
+-----------------------+------------------------+ <br>
<br>
| DeviceID | EncapID | <br>
<br>
+-----------------------+------------------------+ <br>
<br>
| Flags | CheckSum | <br>
<br>
+------------------------------------------------+ <br>
<br>
| IPIP Options( If any ) | <br>
<br>
+------------------------------------------------+ <br>
<br>
. | padding | <br>
<br>
. . <br>
<br>
+------------------------------------------------+ <br>
<br>
<br>
<br>
图三、 IPIP头设想图 <br>
<br>
<br>
<br>
ver: 版本号,利于扩展 <br>
<br>
type: 用于建立不同目的的隧道(可能处理上有差别) <br>
<br>
OldPacketLen: 进入隧道的原数据包长度 <br>
<br>
DeviceID: 对数据包进行封装的设备标识 <br>
<br>
EncapID: 此封包的ID号 <br>
<br>
Flags: 标志位,共16位,初步定义如下: <br>
<br>
0 保留 <br>
<br>
1 有否加密 <br>
<br>
2 有否做摘要 <br>
<br>
3 有否签名 <br>
<br>
4 保留 <br>
<br>
5 有否传送消息密钥 <br>
<br>
6 消息密钥有否加密 <br>
<br>
7 消息密钥是否需保留 <br>
<br>
8-15 保留 <br>
<br>
<br>
<br>
CheckSum: 头校验 <br>
<br>
IPIP Options: 用来传送一些必要的数据,比如消息密钥、签名等 <br>
<br>
格式: +-------------------------------------+ <br>
<br>
| 类型 | 长度 | 数据 ... | <br>
<br>
+-------------------------------------+ <br>
<br>
<br>
<br>
好了,有了这个东西,我们就可以扩展Linux IP Tunnel为我们的VPN服务了。 <br>
<br>
首先,改写new_tunnel.c和ipip.c两个文件,加入对IPIP头的处理。 <br>
<br>
<br>
<br>
接着,我们要实现一种密钥的管理和传送机制。 <br>
<br>
当然,对称密钥是必需的,而对IP数据包加密要使用序列密码。从全体考虑, <br>
<br>
我们可以提出建立VPN的逻辑步骤; <br>
<br>
1、准备工作:建网安装系统完成配置等等 <br>
<br>
2、隧道的两端分别向对方发送自己的公开密码和设备号 <br>
<br>
3、如有必要,产生序列密码,后加密签名传给对方 <br>
<br>
4、正常通信,----放心,你的数据已经很保险了。 <br>
<br>
<br>
<br>
在一个VPN的隧道中,一个封包的格式应如图四所示。 <br>
<br>
<br>
<br>
/ +-----------------+ <br>
<br>
| | 封包IP头 | <br>
<br>
封包头 | +-----------------+ <br>
<br>
| | 封包协议头 | <br>
<br>
+-----------------+ <br>
<br>
/ | | <br>
<br>
| | 原协议头 | <br>
<br>
| | 及 | <br>
<br>
封包数据 | | 原协议数据 | <br>
<br>
| . (密文) . <br>
<br>
| . . <br>
<br>
| | | <br>
<br>
+-----------------+ <br>
<br>
<br>
<br>
<br>
<br>
图四. VPN封包结构 <br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
你的几种使用方法。 <br>
<br>
事情往往不能两全其美,你在安全强度和通信速度上必须作出选择, <br>
<br>
(不然你就需要在安全强度和Money的耗费中做选择。) <br>
<br>
使用这样的协议,根据你的需求不同,你可有不同的使用方法,下面列举 <br>
<br>
一些: <br>
<br>
0、跨Internet的公司多个内部网之间进行通信,保密性并不重要 <br>
<br>
直接使用原框架机制,无任何加密措施 <br>
<br>
这样速度快、效率高,公司也不用申请多个IP地址,方便可行 <br>
<br>
1、一般性的商业应用,具有保密要求 <br>
<br>
利用事先产生的序列密码,每次对原数据包加密 <br>
<br>
安全度提高了,是一种十分实用的方法。只要强度足够,一般很难破译 <br>
<br>
速度快 <br>
<br>
2、密码不变的方式你认为不够安全 <br>
<br>
你可以自己实现一种密码传送方法,每隔一段时间更换一次密码。 <br>
<br>
其中一些握手关系需要完善,有兴趣的欢迎探讨。 <br>
<br>
如果发展成熟,此法相信很有前途。 <br>
<br>
4、高度机密领域 <br>
<br>
敬请使用一次一密,并进行每次签名。 <br>
<br>
每次产生新密钥和签名十分费时,在目前我国Internet网络的速度下 <br>
<br>
几乎不可行。 <br>
<br>
但相信有此需要的部门也能够设法提高其网络带宽,让网络状况适合 <br>
<br>
这种应用。 <br>
<br>
<br>
<br>
另外,当然还可以就加密强度自身作出选择,比如选择128位,还是512位、1024位 <br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
四、 <br>
<br>
待完善 <br>
<br>
<br>
<br>
主要牵涉到隧道的管理,在封包的传送过程中如果出现错误是十分正常的, <br>
<br>
当一台路由器检测到错误时,它会发送一个ICMP包给隧道的发送端,但遗憾的是 <br>
<br>
ICMP返回的数据除了IP头外,只含8个字节的上层协议信息。只凭这个难以对 <br>
<br>
ICMP信息作出反应,因此,在隧道端保留一些状态信息是必须的。这些信息 <br>
<br>
主要包括: <br>
<br>
隧道的另一端的可达性 <br>
<br>
隧道的拥塞状况 <br>
<br>
隧道的MTU <br>
<br>
同时所发送的封包信息也是需要保留的,举例说,当一个路由不可达信息 <br>
<br>
到来时,封包的发送者要能够找出所封装的数据来自何方,并发送相应的ICMP包。 <br>
<br>
<br>
<br>
强调一点,MTU的更新对隧道来将很重要,因为一个灵活的隧道的下一级设备是 <br>
<br>
不定的,同时一些数据包本身也要求更改MTU。 <br>
<br>
<br>
所有这些,在Linux中的处理都不够或根本没有处理。大家努力呀! <br>
</FONT><br>
</TD>
</TR>
<TR>
<TD colSpan=2><FONT
class=middlefont></FONT><BR>
<FONT
class=normalfont>全文结束</FONT> </TD>
</TR>
<TR>
<TD background="images/dot.gif" tppabs="http://www.linuxhero.com/docs/images/dot.gif" colSpan=2
height=10></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></DIV></TD>
<TD vAlign=top width="20%"
background="images/line.gif" tppabs="http://www.linuxhero.com/docs/images/line.gif" rowSpan=2>
<DIV align=center>
<table class=tableoutline cellspacing=1 cellpadding=4
width="100%" align=center border=0>
<tr class=firstalt>
<td noWrap background="images/bgline.gif" tppabs="http://www.linuxhero.com/docs/images/bgline.gif" colspan=2 height=21>
<font class=normalfont><b>所有分类</b></font></td>
</tr>
<tr class=secondalt> <td noWrap width=27%> <font class=normalfont>1:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type1.html" tppabs="http://www.linuxhero.com/docs/type1.html">非技术类</a></font></td> </tr> </table></td></tr><tr class=firstalt> <td noWrap width=27%> <font class=normalfont>2:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type2.html" tppabs="http://www.linuxhero.com/docs/type2.html">基础知识</a></font></td> </tr> </table></td></tr><tr class=secondalt> <td noWrap width=27%> <font class=normalfont>3:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type3.html" tppabs="http://www.linuxhero.com/docs/type3.html">指令大全</a></font></td> </tr> </table></td></tr><tr class=firstalt> <td noWrap width=27%> <font class=normalfont>4:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type4.html" tppabs="http://www.linuxhero.com/docs/type4.html">shell</a></font></td> </tr> </table></td></tr><tr class=secondalt> <td noWrap width=27%> <font class=normalfont>5:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type5.html" tppabs="http://www.linuxhero.com/docs/type5.html">安装启动</a></font></td> </tr> </table></td></tr><tr class=firstalt> <td noWrap width=27%> <font class=normalfont>6:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type6.html" tppabs="http://www.linuxhero.com/docs/type6.html">xwindow</a></font></td> </tr> </table></td></tr><tr class=secondalt> <td noWrap width=27%> <font class=normalfont>7:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type7.html" tppabs="http://www.linuxhero.com/docs/type7.html">kde</a></font></td> </tr> </table></td></tr><tr class=firstalt> <td noWrap width=27%> <font class=normalfont>8:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type8.html" tppabs="http://www.linuxhero.com/docs/type8.html">gnome</a></font></td> </tr> </table></td></tr><tr class=secondalt> <td noWrap width=27%> <font class=normalfont>9:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type9.html" tppabs="http://www.linuxhero.com/docs/type9.html">输入法类</a></font></td> </tr> </table></td></tr><tr class=firstalt> <td noWrap width=27%> <font class=normalfont>10:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type10.html" tppabs="http://www.linuxhero.com/docs/type10.html">美化汉化</a></font></td> </tr> </table></td></tr><tr class=secondalt> <td noWrap width=27%> <font class=normalfont>11:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type11.html" tppabs="http://www.linuxhero.com/docs/type11.html">网络配置</a></font></td> </tr> </table></td></tr><tr class=firstalt> <td noWrap width=27%> <font class=normalfont>12:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type12.html" tppabs="http://www.linuxhero.com/docs/type12.html">存储备份</a></font></td> </tr> </table></td></tr><tr class=secondalt> <td noWrap width=27%> <font class=normalfont>13:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type13.html" tppabs="http://www.linuxhero.com/docs/type13.html">杂项工具</a></font></td> </tr> </table></td></tr><tr class=firstalt> <td noWrap width=27%> <font class=normalfont>14:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type14.html" tppabs="http://www.linuxhero.com/docs/type14.html">编程技术</a></font></td> </tr> </table></td></tr><tr class=secondalt> <td noWrap width=27%> <font class=normalfont>15:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type15.html" tppabs="http://www.linuxhero.com/docs/type15.html">网络安全</a></font></td> </tr> </table></td></tr><tr class=firstalt> <td noWrap width=27%> <font class=normalfont>16:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type16.html" tppabs="http://www.linuxhero.com/docs/type16.html">内核技术</a></font></td> </tr> </table></td></tr><tr class=secondalt> <td noWrap width=27%> <font class=normalfont>17:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type17.html" tppabs="http://www.linuxhero.com/docs/type17.html">速度优化</a></font></td> </tr> </table></td></tr><tr class=firstalt> <td noWrap width=27%> <font class=normalfont>18:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type18.html" tppabs="http://www.linuxhero.com/docs/type18.html">apache</a></font></td> </tr> </table></td></tr><tr class=secondalt> <td noWrap width=27%> <font class=normalfont>19:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type19.html" tppabs="http://www.linuxhero.com/docs/type19.html">email</a></font></td> </tr> </table></td></tr><tr class=firstalt> <td noWrap width=27%> <font class=normalfont>20:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type20.html" tppabs="http://www.linuxhero.com/docs/type20.html">ftp服务</a></font></td> </tr> </table></td></tr><tr class=secondalt> <td noWrap width=27%> <font class=normalfont>21:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type21.html" tppabs="http://www.linuxhero.com/docs/type21.html">cvs服务</a></font></td> </tr> </table></td></tr><tr class=firstalt> <td noWrap width=27%> <font class=normalfont>22:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type22.html" tppabs="http://www.linuxhero.com/docs/type22.html">代理服务</a></font></td> </tr> </table></td></tr><tr class=secondalt> <td noWrap width=27%> <font class=normalfont>23:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type23.html" tppabs="http://www.linuxhero.com/docs/type23.html">samba</a></font></td> </tr> </table></td></tr><tr class=firstalt> <td noWrap width=27%> <font class=normalfont>24:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type24.html" tppabs="http://www.linuxhero.com/docs/type24.html">域名服务</a></font></td> </tr> </table></td></tr><tr class=secondalt> <td noWrap width=27%> <font class=normalfont>25:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type25.html" tppabs="http://www.linuxhero.com/docs/type25.html">网络过滤</a></font></td> </tr> </table></td></tr><tr class=firstalt> <td noWrap width=27%> <font class=normalfont>26:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type26.html" tppabs="http://www.linuxhero.com/docs/type26.html">其他服务</a></font></td> </tr> </table></td></tr><tr class=secondalt> <td noWrap width=27%> <font class=normalfont>27:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type27.html" tppabs="http://www.linuxhero.com/docs/type27.html">nfs</a></font></td> </tr> </table></td></tr><tr class=firstalt> <td noWrap width=27%> <font class=normalfont>28:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type28.html" tppabs="http://www.linuxhero.com/docs/type28.html">oracle</a></font></td> </tr> </table></td></tr><tr class=secondalt> <td noWrap width=27%> <font class=normalfont>29:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type29.html" tppabs="http://www.linuxhero.com/docs/type29.html">dhcp</a></font></td> </tr> </table></td></tr><tr class=firstalt> <td noWrap width=27%> <font class=normalfont>30:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type30.html" tppabs="http://www.linuxhero.com/docs/type30.html">mysql</a></font></td> </tr> </table></td></tr><tr class=secondalt> <td noWrap width=27%> <font class=normalfont>31:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type31.html" tppabs="http://www.linuxhero.com/docs/type31.html">php</a></font></td> </tr> </table></td></tr><tr class=firstalt> <td noWrap width=27%> <font class=normalfont>32:</font> </td><td noWrap width=73%> <table width=100% border=0> <tr> <td><font class=normalfont><a href="type32.html" tppabs="http://www.linuxhero.com/docs/type32.html">ldap</a></font></td> </tr> </table></td></tr> </table>
</DIV></TD></TR>
<TR vAlign=top>
<TD width="80%">
<DIV align=center><BR>
</DIV>
</TD></TR></TBODY></TABLE></TD></TR>
</TABLE></TD></TR>
</TABLE>
<TABLE cellSpacing=0 cellPadding=4 width="100%" bgColor=#eeeeee
border=0><TBODY>
<TR>
<TD width="50%">
<P><FONT class=middlefont>版权所有 © 2004 <A
href="mailto:bjchenxu@sina.com">linux知识宝库</A><BR>
违者必究. </FONT></P>
</TD>
<TD width="50%">
<DIV align=right><FONT class=middlefont>Powered by: <A
href="mailto:bjchenxu@sina.com">Linux知识宝库</A> Version 0.9.0 </FONT></DIV>
</TD></TR></TBODY></TABLE>
<CENTER></CENTER></TD></TR>
</TABLE></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -