Cisco——IPsec配置与概念
IPSec配置思路脑图:
链接: https://pan.baidu.com/s/1R2bB5HWJUsQXJ-2q2F3gSQ 提取码: wq3g 复制这段内容后打开百度网盘手机App,操作更方便哦
1. IPsec的模式:
1) 隧道模式:隧道模式是将原有含有内网地址的IP头部进行加密,再生成一个数据包,然后再将数据包外围加上自己的外网IP头部进行传输。用于网关到网关的环境。
数据包结构:
外网IP头 | VPN头 | 加密内网数据包 | VPN尾
2) 传输模式:相对较为简单,并且传输速度快,只对数据部分及进行加密封装,安全等级低,容易被破解。
数据包结构:
IP头 | VPN头 | IP数据
2. IPSec的结构
1) 站点到站点:LAN TO LAN,L2L,局域网到局域网,两个局域网通过广域网进行连接,通讯,VPN网关处理VPN消息,应用于隧道模式。
2) 远程访问VPN:该结构的客户端拥有两个地址,一个是ISP分配的地址,另一个是内部局域网分配的IP地址,当客户端通过广域网连接到局域网的VPN服务器后,该局域网的DHCP 服务器就会分配给该客户端一个内部局域网的IP地址,应用于隧道模式,通常用于出差办公使用。
3) 用户到用户的VPN:通常用于内网,传输效率高,应用于传输模式。
1) IPsec安全协议:
a) ESP(Encapsulating security payload,封装安全包头):负责执行封包的加密动作,对数据部分进行加密
b) AH(Authentication header验证包头):负责封包的完整性验证,对IP包头进行加密
2) 加密:
a) 对称加密:双方拥有同一个共享密钥,这个密钥可以加密也可以解密,传送时双方需要协商好密钥,如果有一方泄露了密钥那这个传输数据就不安全了。DES、3DES、AES。
b) 非对称加密:接收方生成共享密钥(分公钥和私钥)公钥发送给发送方,发送方接收到共享密钥后对数据进行加密,再将该加密数据传输给接收方,接收方收到数据后通过自己生成的私钥对数据进行解密。DH1、DH2。传输效率慢
c) IKE密钥交换技术:简单说就是将上面两者融合在了一起,使用非对称加密算法加密对称加密的共享密钥进行双方协商,协商完成后再进行对称密钥传输。这样不仅保障了安全也保障了传输速度。所以也较为广泛。
3) 数据摘要:HMAC数据报文验证技术
数据报文验证是对数据包的数据有效性和完整性进行验证,通过摘要信息进行对比,如果信息不同则表示该信息被篡改过,将会被丢弃。
a) md5(文件摘要信息算法):通过hash算法在文件计算出一个md5的校验码,当文件内容发生变化时将会重新计算,如果接收方下载的文件与发送方提供的md5码对应不上,则证明该文件被篡改过。
b) sha(安全散列算法):通过hash算法对数据类快速的进行编码计算。
SPI:不管AH包头或是ESP包头,其内都包含有一个SPI字段,而该SPI值就是告知接收端主机要使用IPSEC数据库中的哪一把密钥来加密这个封包。
SPD(安全策略数据库):存储了加密算法以及hash算法封装模式和通道的老化时间。(密钥)
SAD(安全关联数据库):存储了目的地址和使用的安全协议ESP还是AH。
R1(config)#int e0/0
R1(config-if)#ip add 1.0.0.1 255.255.255.0
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#int e0/1
R1(config-if)#ip add 1.0.0.1 255.255.255.0
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#ip route 0.0.0.0 0.0.0.0 1.0.0.2 //默认路由
#建立管理连接,并定义算法
R1(config)#crypto isakmp policy 1 //isakmp——cisco中IKE的叫法,定义一个IKE的策略序号为1
R1(config-isakmp)#encryption des //对称加密的算法定义为des
R1(config-isakmp)#hash sha //HMAC数据报文验证技术的hash算法定义为sha
R1(config-isakmp)#authentication pre-share //使用预共享密钥技术
//预共享密钥:双方设备在本地定义同样的密钥进行验证
R1(config-isakmp)#lifetime 1600 //老化时间为1600,时间越短设备负载就会越大,相对更安全,反之亦然
R1(config-isakmp)#group 2
// DH组1使用768位的模数DH组2使用1024的模数组数越大用的模数也就越大,运算时间也就越长
R1(config-isakmp)#exit
#定义预共享密钥
R1(config)#crypto isakmp key 0 123.com address 2.0.0.2 //定义密钥为明文,并且密码为123.com,要验证的IP为2.0.0.2
//0表示为明文,6表示密文
R1(config)#access-list 100 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255
//定义内网与外网建立连接的地址池
#定义加密算法以及数据报文技术验证,开启隧道模式或者传输模式
R1(config)#crypto ipsec transform-set name-set esp-des esp-sha-hmac
//定义ipsec的加密方法名称为name-set
//esp-des:对数据部分进行加密的算法使用des
//esp-sha-hmac:对数据包的完整性验证使用的算法是sha
R1(cfg-crypto-trans)#mode tunnel
//选择隧道模式开启
R1(cfg-crypto-trans)#exit
#建立映射,匹配上面的管理连接以及地址池,定义对方IP地址
R1(config)#crypto map name-map 1 ipsec-isakmp
//定义映射的名称为name-map,序号为1,是IKE的模式
R1(config-crypto-map)#match address 100
//匹配地址池,检查数据包包头
R1(config-crypto-map)#set peer 2.0.0.2
//定义要桥接的对方IP地址
R1(config-crypto-map)#set transform-set name-set
//匹配加密算法和验证方法,匹配上面定义的name-set
R1(config-crypto-map)#int e0/1
R1(config-if)#crypto map name-map
//应用到接口
ISP——R2配置
R2#conf t
R2(config)#int e0/0
R2(config-if)#ip add 1.0.0.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#exit
R2(config)#int e0/1
R2(config-if)#ip add 2.0.0.1 255.255.255.0
R2(config-if)#no sh
R2(config-if)#exit
局域网2——R3配置
#与R1配置完全一致
R3(config)#int e0/0
R3(config-if)#ip add 2.0.0.1 255.255.255.0
R3(config-if)#no sh
R3(config-if)#exit
R3(config)#int e0/1
R3(config-if)#ip add 192.168.2.1 255.255.255.0
R3(config-if)#no sh
R3(config-if)#exit
R3(config)#ip route 0.0.0.0 0.0.0.0 2.0.0.1
#建立管理连接,并定义算法
R3(config)#crypto isakmp policy 1
R3(config-isakmp)#encryption des
R3(config-isakmp)#hash sha
R3(config-isakmp)#authentication pre-share
R3(config-isakmp)#lifetime 1600
R3(config-isakmp)#group 2
R3(config-isakmp)#hash sha
R3(config-isakmp)#exit
#定义预共享密钥
R3(config)#crypto isakmp key 0 123.com address 1.0.0.1
R3(config)#access-list 100 permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255
#定义加密算法以及数据报文技术验证,开启隧道模式或者传输模式
R3(config)#crypto ipsec transform-set name-set esp-des esp-sha-hmac
R3(cfg-crypto-trans)#mode tunnel
R3(cfg-crypto-trans)#exit
#建立映射,匹配上面两个
R3(config)#crypto map name-map 1 ipsec-isakmp
R3(config-crypto-map)#match address 100
R3(config-crypto-map)#set peer 1.0.0.1
R3(config-crypto-map)#set transform-set name-set
#应用到接口
R3(config-crypto-map)#int e0/0
R3(config-if)#crypto map name-map
验证:
在ISP——R2没有配置路由表的情况下用vpc1---->ping---->vpc2
即实现通信