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