虚拟专用网(VPN)简介

       虚拟专网(VPN)一般用于在公网上建立专用网络,为互联网上的终端提供加密的通信。提到VPN,相信大多数人都会联想到“科学上网”,其实VPN发明的目的并不是为了“科学上网”,这只是它的冰山一角,接下来让我们一起揭开VPN神秘的面纱。
       VPN如今在企业中得到广泛的应用,一般分为两种,点到点VPN:把VPN服务器架设到两家或多家企业的网络总出口设备上,从而构建一个偌大的局域网,从而为公司提供加密可靠的信息传输;远程访问VPN:在企业中部署VPN服务器,使得公司出差员工可拨号到公司内网进行办公。

对称加密算法和非对称加密算法

       在分析VPN工作模式之前,首先要了解一下VPN所使用到的对称加密算法和非对称加密算法。对称加密算法:顾名思义,它的加密和解密过程是相互对称的,即为使用公钥进行加密和解密。常见的对称加密算法有DES、3DES、AES。非对称加密算法:一个算法应有一个公钥和一个私钥,两者互相配对,使用公钥加密的数据,只能使用配对的私钥来解密,相反亦可。常见的非对称加密算法有RSA、DSA、ECC、DH等。本文不做详细解释。

典型的点到点VPN:IPSecVPN

       IPSecVPN是目前最流行的点到点VPN之一,它可以在两家企业间建立VPN隧道,以达到合并两家企业内网的目的。我们以IPSecVPN为例来讲解点到点VPN。
       IPSecVPN工作过程主要有两大阶段,第一个是管理链接阶段,然后是数据连接阶段。

第一阶段:管理连接阶段

       当在企业的总出口设备(防火墙或路由器,以下用防火墙代替)配置完毕(文末附配置过程),两端防火墙建立连接,交换公钥,随后使用非对称加密算法加密数据包的方式来传输数据,刚建立连接传送什么数据呢?其实是为第二阶段做准备,这时候两端防火墙两端将会协商出一个公钥,这个公钥做什么用?请往下看。

第二阶段:数据连接阶段

       了解过对称加密算法和非对称加密算法的都知道,对称加密算法的缺点是:公钥以明文在网络中传输,容易被截获;而优点是相对非对称加密算法来说速度较快。非对称加密算法相对安全,但是速度较慢。怎么解决这个问题呢?我真是很佩服科学家前辈们,他们想到第一阶段使用非对称加密算法协商第二阶段使用对称加密算法使用的公钥,企业间交换数据就使用对称加密算法,这样不仅弥补了对称加密算法不安全的特性,也享受到速度快的待遇~~

VPN 隧道技术

       说了这么多,仅仅是说明了VPN的安全传输数据包的过程,但始终没体现“虚拟专用网”?稍安勿躁,耐心往下看~

       VPN的传输模式: 为了贴近实际,我们假设公司A的网段是172.16.0.0/16,出口公网地址是100.1.1.1;公司B的网段是192.168.0.0/16,出口公网地址是200.1.1.1;此时A公司一员工要发送一个数据包到B公司,数据包的三层包头中源IP为172.16.1.1、目的IP为192.168.1.1,这是一个完整的数据包,由于目的IP不在同一网段,将被路由到出接口,防火墙这时检查配置VPN时配置的ACL,如果符合,防火墙会把四五层数据采用对称加密算法加密,并在加密后的四五层数据前后加上加密开始和结束标志,把原本三层IP包头的源172.16.1.1和目192.168.1.1放入IP包头的可选项字段(详情请了解数据包结构),再把100.1.1.1作为源IP、200.1.1.1作为目的IP放在IP包头的对应位置,然后发送出去。当对端B公司防火墙收到数据包时,把三层数据包解封装,把四五层数据解密,再把可选项中的私有IP回归原位,然后检查自己的ACL,如符合则转发,不符合就丢弃。传输模式的特点:只加密上层数据,不加密私有IP包头,但是速度较快。
       VPN隧道模式: 同样是刚才的数据包为例,这种模式下,防火墙会首先检查ACL,如符合,则把数据包的三四五层数据采用对称加密算法加密,然后加上VPN头和VPN尾,再把这个数据包重新封装上IP包头,其中源IP为100.1.1.1、目的IP为200.1.1.1;对端防火墙接收到数据包,首先解封装,然后掐头去尾,露出庐山真面目,然后检查ACL,确认路由或是丢弃。配置VPN默认为隧道模式,该模式下加密整个私有IP包,包括IP包头,更安全,但是速度相对传输模式较慢。

远程访问VPN

       如果理解了点到点VPN,那么接下来的内容将会很容易理解。
       远程访问VPN一般用在个人连接企业内部,主要是公司部署服务器,员工在外拨号VPN即可。常见的RA-VPN协议:PPTP VPN、L2TP VPN、SSTP VPN、EZvpn/easyVPN(cisco私有)、SSL VPN(最流行)。
       公司部署服务器之后,开放侦听端口,默认为1723端口。
       当员工使用VPN客户端远程拨号到VPN服务器时,由于当今个人用户上网都进行了NAT转换,当账号密码认证通过时,相当于员工上网所使用的公网IP地址和VPN服务器之间建立了隧道,本质上和点到点VPN差别不大,只是员工上网的地址不固定,而且VPN服务器为员工VPN客户端下发权限及私有IP地址(为公司内部地址,即属于配置VPN服务器时所配置的地址池,此身份为预防员工本来所属局域网中其他地址也能访问公司内网)而已。

       看了这么多,相信大家都基本明白VPN的基本工作原理了,那么接下来就介绍一下如何配置VPN吧。

配置虚拟专用网(VPN)

点到点VPN配置

       我们这里采用Cisco Packet Tracer软件来搭建一个简单的拓扑图,用来模拟两家企业内网。
VPN拓扑
       如图,左侧是A公司,中间是互联网,右侧是B公司,其中接口和PCIP地址都已设置好,并且配置了NAT全网互通。只有一台PC哈哈,不要在意这种细节~
       此时使用A公司主机pingB公司主机:
在这里插入图片描述
       当然不通了~~
第一阶段:管理连接
目的: 通信双方通过非对称加密算法协商对称加密算法的公钥
在A公司路由器配置:

en
conf t
crypto isakmp policy 1  //创建传输集
encryption [des/3des/aes]  //选择对称加密算法
hash md5/sha  //设置签名
group 1/2/5  //选择非对称加密算法
authentication pre-share  //采用预共享密钥
exit
crypto isakmp key [预共享密钥] address 200.1.1.2  //发送以上配置的传输集

第二阶段:数据连接
目的: 通过对称加密算法加密实际所要传输的私网数据

access-list 100 permit ip 172.16.1.0 0.0.0.255 192.168.1.0 0.0.0.255  //创建ACL
crypto ipsec transform-set [传输模式名] esp-[des/3des/aes] esp-[ah-md5/sh-hmac]  //定义加密及认证方式
crypto map [map名] 1 ipsec-isakmp  //创建map表
match address 100  //匹配ACL表
set transform-set [传输模式名] //设置配置的传输模式
set peer 200.1.1.2  //设置对端
exit
int f0/1  //进入出接口
crypto map [map名]  //应用创建的map表
exit

在B公司路由器配置:
       除了对端地址设为100.1.1.1和ACL表源地址和目标地址反过来之外,其他配置基本一致,再次不做赘述。
       配置完毕,接下来要检验结果了,好鸡冻~
       第一次结果没通,这里就不贴截图了,反复找了原因,配置没有出问题,而是出在了NAT上,听我慢慢道来。由于流量出去的时候,先经过了NAT再经过VPN(在最外部),当路由器收到数据包时先把源地址给换了,导致不匹配VPN配置的ACL,所以没走VPN。
       解决方法: 在配置NAT时配置成扩展ACL,在第一条加上拒绝172.16.1.0到192.168.1.0的数据包走NAT,再加上一条允许所有。这种方法还有一个专业术语:豁免流量

远程访问VPN

       远程访问VPN可以在虚拟机中做实验,由于需要开至少3台才能看的出效果,我的电脑有点伤,就不演示了。可以提供以下思路:使用一台server 2008、两台xp即可,服务器装两块网卡,分别在VMnet3和VMnet4,一台xp放在VMnet3,另一台xp放在VMnet4,此时两台xp时不能通信的,在服务器上部署VPN服务,用其中一台xp拨号到服务器,这时候你会发现出现奇迹,两台xp可以相互通信,实验就成功了~~
       科学上网: 其实和远程访问VPN原理几乎一样,某国或某区域可以看作超大的局域网,只要拨号到这个区域中的一台VPN服务器,即可畅游整个网络,无视任何限制了~~

纯原创手打文章,望路过的”big cattle“批评指正,转载请注明出处~~
The end~

原文链接:https://blog.csdn.net/qq_37872337/article/details/106716858

最后修改日期:2020年6月15日