目录
一、实验原理
二、实验拓扑
三、实验步骤
四、实验过程
总结
实验难度 | 3 |
实验复杂度 | 5 |
VPN的出现是为了实现远程的数据机密性传输,因为传统的以太网方式传输数据都是明文的,数据透露的风险极大,非常不安全。为了解决这个数据安全传输的问题,可以使用VPN(Virtual Private Network,虚拟私有网络)技术来实现。VPN有不同的划分标准,有按VPN的协议分类、按VPN的应用分类、按应用的设备类型分类、按实现的原理分类。
(1)二层隧道协议:PPTP、L2TP
(2)三层隧道协议:IPSec
(1)远程接入VPN:客户端到网关,使用公网作为骨干网在设备之间传输VPN数据流量;。
(2)内联网VPN:网关到网关,通过公司的网络架构连接来自同公司的资源。
(3)外联网VPN:连接另一个公司网络。
(1)路由器式VPN:在路由器上部署VPN,可以在路由器上添加VPN服务。
(2)交换机式VPN:在交换机上部署VPN,此种方式应用不多。
(3)防火墙式VPN:在防火墙上部署VPN。
(1)重叠VPN:此VPN需要用户自己建立端节点之间的VPN链路,主要包括:GRE、L2TP、IPSec等众多技术。
(2)对等VPN:由网络运营商在主干网上完成VPN通道的建立,主要包括MPLS、VPN技术。
IPSec是IP Security的缩写,即是IP安全协议。IPSec是安全协议集合(框架),它并非单独一个协议。它由两种协议组成:
(1)AH协议(Authentication Header,认证报头):它可以同时提供数据完整性确认、数据来源确认、防重放等安全等的特性,但是它没有数据加密的功能,所以这个协议很少使用。
(2)ESP协议(Encasulated Security Payload,封装安全负荷):它在AH的特性上多了一个数据加密特性,安全性高,使用广泛。
IPSec使用加密算法来实现数据机密性,加密算法主要有两类,一类是对称加密算法(加密与解密密码是一样的),加密效率高,另一类为非对称加密算法(加密与解密是不一样的),加密效率低。IPSec使用三种对称加密算法来加密:
(1)DES(Data Encryption Standard):数据加密标准,它是一种传统的加密算法。
(2)3DES:三重数据加密标准,安全性比DES高。
(3)AES(Advanced Encryption Standard):高级加密标准,它的安全性比DES与3DES还高。
IPSec使用哈希算法来实现数据的完整性校验,在发送数据包之前,会把数据进行一个哈希过程,最后得到整个数据包的哈希值,对端设备收到数据包后会对数据进行哈希,得到的值会与数据包中的哈希值对比,若相同则表示数据没有被篡改,否则表示数据已经被篡改了。
(1)SHA:(英语:Secure Hash Algorithm,缩写为SHA)是一个密码散列函数家族,是FIPS所认证的安全散列算法。能计算出一个数字消息所对应到的,长度固定的字符串(又称消息摘要)的算法。且若输入的消息不同,它们对应到不同字符串的机率很高。
(2)MD5:一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。它具有不可逆性、雪崩效应等特点。
IPSec的工作模式有两种,一种为传输模式、另一种为隧道模式,但是IPSec协议有两种,它们相互搭配就有4种的可能了(传输模式下的AH或ESP、隧道模式下的AH或ESP)。
(1)传输模式:在IP报头与上层数据的中间插入一个IPSec报头(AH或ESP),在添加AH或ESP报头的前后IP报头不变,加密设备等于通信设备,它主要用于主机与主机之间的安全通信。
传输模式下的AH报头封装:
传输模式下的ESP报头封装:
(2)隧道模式:把原始 IP 数据包整个封装到一个新的 IP 数据包中,在新的 IP 头部和原始 IP 头部之间插入 ESP 头部,并且在最后面加上 ESP 尾部和 ESP 验证数据部分,加密设备不等于通信设备。
隧道模式下的AH报头封装:
隧道模式下的ESP报头封装:
注意:
1.在传输模式下,无论是使用ESP报头封装还是使用AH报头封装,它的IP报头信息是不变的,所以加密设备就是通信设备;
2.在隧道模式下,无论是使用ESP报头封装还是使用AH报头封装,它的IP报头都会使用外网的IP头,所以加密的设备不等于通信设备;
3.在同时存在两个报头的情况下,沿途的路由器只会检查最外面的IP报头,因为多了一个报头,所以目标地址可能与原来的不一致了;
4.传输模式只适用于主机到主机的点到点的加密通信,而隧道模式适用于任何场景,但是在PC到PC的场景还是建议使用传输模式。
若直接通过Internet传输密钥,无疑是不安全的,使用IKE(Internet Key Exchange)解决了在不安全的环境中安全建立或更新共享密钥的问题。
IPSec建立安全连接的过程就两个阶段:
第一阶段:协商创建一个通信信道(IKE SA),且对它进行验证,为双方进一步的IKE通信提供机密性、完整性以及消息源验证服务。
第二阶段:使用已经建立的IKE SA建立IPSec SA。
1.搭建如图所示的网络拓扑图;
2.初始化设备,配置相应的IP地址,测试直连网络的连通性;
3.配置默认路由,使得R1与R3可以互通;
4.配置IPSec,实现数据的机密性传输,测试效果。
1.搭建如图所示的网络拓扑图;
略。
2.初始化设备,配置相应的IP地址,测试直连网络的连通性;
略。
3.配置默认路由,使得R1与R3可以互通;
4.配置IPSec,实现数据的机密性传输,测试效果。
R1:
R3:
效果:
在默认情况下IPSec隧道是不启用的,需要我们发送相应的感兴趣数量触发一下
这里我们可以看到整个隧道都已经启用了,表示这个隧道已经正常加密数据了
我们可以看看第一个阶段的安全连接(SA)是否起来了,这里看到的效果就是正常的,状态是活动的
我们也可以看一下数据的加密情况
代码解释:
配置IKE策略
R1(config)#crypto isakmp policy 10 //创建安全策略,策略号为10
R1(config-isakmp)#encryption 3des //使用3des算法进行加密数据
R1(config-isakmp)#hash md5 //使用MD5算法来验证数据的完整性
R1(config-isakmp)#authentication pre-share //使用预共享方式来验证数据的来源是否可靠
R1(config-isakmp)#group 5 //使用加密因子5进行数据加密
R1(config)#crypto isakmp key 0 ccie address 200.1.1.1 //设置身份验证的密码为ccie,验证的远程IP地址为200.1.1.1
配置变换集
R1(config)#crypto ipsec transform-set myset esp-3des esp-md5 //配置IPSec策略(转换集)转换具体数据的策略,名字叫做myside 封装使用ESP。加密使用3des 完整性校验使用md5
R1(cfg-crypto-trans)#mode tunnel //使用隧道模式来传输数据
配置感兴趣流
R1(config)#access-list 100 permit ip host 100.1.1.1 host 200.1.1.1 //配置感兴趣流
配置加密图
R1(config)#crypto map cmap 10 ipsec-isakmp //配置加密图
% NOTE: This new crypto map will remain disabled until a peer
and a valid access list have been configured.
R1(config-crypto-map)#match address 100 //匹配ACL的感兴趣流
R1(config-crypto-map)#set peer 200.1.1.1 //配置远程的IP地址邻居
R1(config-crypto-map)#set transform-set myset //匹配相应的变换集
应用加密图
R1(config)#interface f0/0
R1(config-if)#crypto map cmap //应用加密图在接口上
本次的内容难度很大,对于新人来说,理解很吃力,但是没有别的办法,本章最起码要学会怎么配置IPSec,原理这些可以先不理解通透,有时间就研究一下,这些需要消耗时间事情急不来。这个原理本来就是打算单独写的,这样会很详细,但是考虑到内容过于详细就容易冗长了,所以就精简了一下,以实验配置为主。好了,我们在下一个章节再见,加油!