编程论坛's Archiver

bruce 发表于 2006-7-6 10:48

VPN的工作原理

<P>工作原理:<BR>一边服务器的网络子网为192.168.1.0/24<BR>路由器为100.10.15.1<BR>另一边的服务器为192.168.10.0/24<BR>路由器为200.20.25.1。<BR>执行下列步骤:<BR>1. 确定一个预先共享的密钥(保密密码)(以下例子保密密码假设为noIP4u)<BR>2. 为SA协商过程配置IKE。<BR>3. 配置IPSec。<BR>配置IKE:<BR>Shelby(config)#crypto isakmp policy 1<BR>注释:policy 1表示策略1,假如想多配几个VPN,可以写成policy 2、policy3┅<BR>Shelby(config-isakmp)#group 1<BR>注释:除非购买高端路由器,或是VPN通信比较少,否则最好使用group 1长度的密钥,group命令有两个参数值:1和2。参数值1表示密钥使用768位密钥,参数值2表示密钥使用1024位密钥,显然后一种密钥安全性高,但消耗更多的CPU时间。<BR>Shelby(config-isakmp)#authentication pre-share<BR>注释:告诉路由器要使用预先共享的密码。<BR>Shelby(config-isakmp)#lifetime 3600<BR>注释:对生成新SA的周期进行调整。这个值以秒为单位,默认值为86400,也就是一天。值得注意的是两端的路由器都要设置相同的SA周期,否则VPN在正常初始化之后,将会在较短的一个SA周期到达中断。<BR>Shelby(config)#crypto isakmp key noIP4u address 200.20.25.1<BR>注释:返回到全局设置模式确定要使用的预先共享密钥和指归VPN另一端路由器IP地址,即目的路由器IP地址。相应地在另一端路由器配置也和以上命令类似,只不过把IP地址改成100.10.15.1。<BR>配置IPSec<BR>Shelby(config)#access-list 130 permit ip 192.168.1.0 0.0.0.255 172.16.10.0 0.0.0.255<BR>注释:在这里使用的访问列表号不能与任何过滤访问列表相同,应该使用不同的访问列表号来标识VPN规则。<BR>Shelby(config)#crypto ipsec transform-set vpn1 ah-md5-hmac esp-des esp-md5-hmac<BR>注释:这里在两端路由器唯一不同的参数是vpn1,这是为这种选项组合所定义的名称。在两端的路由器上,这个名称可以相同,也可以不同。以上命令是定义所使用的IPSec参数。为了加强安全性,要启动验证报头。由于两个网络都使用私有地址空间,需要通过隧道传输数据,因此还要使用安全封装协议。最后,还要定义DES作为保密密码钥加密算法。<BR>Shelby(config)#crypto map shortsec 60 ipsec-isakmp<BR>注释:以上命令为定义生成新保密密钥的周期。如果攻击者破解了保密密钥,他就能够解使用同一个密钥的所有通信。基于这个原因,我们要设置一个较短的密钥更新周期。比如,每分钟生成一个新密钥。这个命令在VPN两端的路由器上必须匹配。参数shortsec是我们给这个配置定义的名称,稍后可以将它与路由器的外部接口建立关联。<BR>Shelby(config-crypto-map)#set peer 200.20.25.1<BR>注释:这是标识对方路由器的合法IP地址。在远程路由器上也要输入类似命令,只是对方路由器地址应该是100.10.15.1。<BR>Shelby(config-crypto-map)#set transform-set vpn1<BR>Shelby(config-crypto-map)#match address 130<BR>注释:这两个命令分别标识用于这个连接的传输设置和访问列表。<BR>Shelby(config)#interface s0<BR>Shelby(config-if)#crypto map shortsec<BR>注释:将刚才定义的密码图应用到路由器的外部接口。<BR>现在剩下的部分是测试这个VPN的连接,并且确保通信是按照预期规划进行的。<BR>最后一步是不要忘记保存运行配置,否则所作的功劳白费了。</P>
<P>附:参照网络安全范围,VPN硬件设备应放置以下四个地点:<BR>● 在DMZ的防火墙之外<BR>● 连接到防火墙的第三个网卡(服务网络)<BR>● 在防火墙保护的范围之内</P>
<P>VPN的工作原理</P>
<P>用户连接VPN的形式:<BR>    常规的直接拨号连接与虚拟专网连接的异同点在于在前一种情形中,PPP(点对点协议)数据包流是通过专用线路传输的。在VPN中,PPP数据包流是由一个LAN上的路由器发出,通过共享IP网络上的隧道进行传输,再到达另一个LAN上的路由器。</P>
<P>    这两者的关键不同点是隧道代替了实实在在的专用线路。隧道好比是在WAN云海中拉出一根串行通信电缆。那么,如何形成VPN隧道呢?</P>
<P>    建立隧道有两种主要的方式:客户启动(Client-Initiated)或客户透明(Client-Transparent)。客户启动要求客户和隧道服务器(或网关)都安装隧道软件。后者通常都安装在公司中心站上。通过客户软件初始化隧道,隧道服务器中止隧道,ISP可以不必支持隧道。客户和隧道服务器只需建立隧道,并使用用户ID和口令或用数字许可证鉴权。一旦隧道建立,就可以进行通信了,如同ISP没有参与连接一样。</P>
<P>    另一方面,如果希望隧道对客户透明,ISP的POPs就必须具有允许使用隧道的接入服务器以及可能需要的路由器。客户首先拨号进入服务器,服务器必须能识别这一连接要与某一特定的远程点建立隧道,然后服务器与隧道服务器建立隧道,通常使用用户ID和口令进行鉴权。这样客户端就通过隧道与隧道服务器建立了直接对话。尽管这一方针不要求客户有专门软件,但客户只能拨号进入正确配置的访问服务器。<BR></P>

a402730324 发表于 2006-7-6 12:32

呵呵不错啊!

bruce 发表于 2007-5-24 18:29

[em04]

lthiy 发表于 2007-5-24 20:33

<P>看看<BR></P>

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.