IPSEC ***

1、IPSEC ××× 模式
一、tunnel模式
隧道模式中,×××设备将整个三层数据报文封装在×××数据内,再为封装后的数据报文添加新的IP包头。因为新IP包头中封装的是×××设备的ip地址信息,因此当***者截获数据后,不但没法了解实际载荷数据的内容,同时也没法知道实际通讯双方的地址信息。
二、transport模式
传输模式一个最显著的特色就是:在整个×××的传输过程当中,IP包头并无被封装进去,这就意味着从源端到目的端数据始终使用原有的IP地址进行通讯。而传输的实际数据载荷被封装在×××报文中。对于大多数×××传输而言,×××的报文封装过程就是数据的加密过程,所以,***者截获数据后将没法破解数据内容,但却能够清晰地知道通讯双方的地址信息。
2、数据加密算法
一、对称加密
对称加密,加密秘钥解密秘钥相同,而且秘钥在公网中传输,经常使用的对称加密算法有DES、3DES、AES等。
二、非对称加密
非对称加密,因为算法强度复杂,使得加密解密速度很是慢。为了解决这个问题,咱们采用这样一种方法:数据传输仍是采起对称加密算法,而对称加密的秘钥用非对称加密算法来加密。即公钥用非对称算法加密,只能用私钥来解密,但私钥不在公网中传输。经常使用的费对称加密算法有RSA、ES、DH等。
3、数据报文验证
数据报文验证包括两个方面:数据来源验证(身份验证)和报文完整性验证。
HMAC功能实现验证功能
HMAC(hash-based message authentication codes,散列消息代码)功能专门开发用来处理数据包相关的验证问题,它使用一个共享的对称秘钥来产生固定的输出结果——数字签名。HMAC属于单向散列算法(hash算法)的一个子集,区别于前面讲解的加密算法,散列算法是不可逆的,即加密后的数据是没法还原的。MD5和SHA是HMAC的两种经常使用算法。
4、IPSEC ×××
一、 IPSec链接
对等体之间创建IPSec ×××的链接须要三个步骤。
1) 流量触发IPSec
通常来讲,IPSec创建过程是由对等体之间发送的流量触发的,一旦有×××流量通过×××网关,链接过程便开始创建了。算法

2) 创建管理链接
IPSec使用ISAKMP/IKE阶段1来构建一个安全的管理连结。这里须要注意的是,这个管理链接只是一个准备工做,它不被用来传输实际的数据。
 
3) 创建数据链接
IPSec基于安全的管理链接协商创建安全的数据链接,而ISAKMP/IKE阶段2就是用来完成这个任务的,数据链接用于传输真正的用户数据。安全

二、IKE 第一阶段:共使用了6个报文
第 1 2 报文,明文发送。验证正确的peer 地址,使用发送本身全部的SA信息(该SA信息为ISAKMP SA ,双向的,双方必须一致),对方会回复匹配的SA策略。
第 3 4 报文,明文发送。传递DH算法的公钥。随机产生一些值,双方交互运算,获得公共信息,从而计算出来三个相同的Skey-id。
Skey-id d ----衍生出来Ipsec 中对称加密算法的密钥
Skey-id a---衍生出来Ipsec 的随机值(用于hamc)
Skey-id e---衍生出来ISAMKP中的对称加密算法的密钥
IKE 第二阶段hmac的随机是双方手工指定的。
第 5 6 报文,使用密文发送,将全部的公共信息进行认证。
三、IKE第二阶段: 进行Ipsec SA协商(该SA对传递的数据进行封装)共三个报文,所有是加密的。
第1个再次进行认证(检测IPsec中的公共信息)
第2个报文发送本身全部SA策略
第3个报文进行确认ipsec *** 创建完成。ide

5、实验
IPSEC ***
一、pc1的配置
PC1(config)#int e0/0
PC1(config-if)#ip address 192.168.10.100 255.255.255.0
PC1(config)#ip default-gateway 192.168.10.254
PC1(config)#no ip routing测试

二、pc3的配置
PC1(config)#int e0/0
PC1(config-if)#ip address 192.168.20.100 255.255.255.0
PC1(config)#ip default-gateway 192.168.20.254
PC1(config)#no ip routing加密

三、R1的配置
R1(config)#int e0/1
R1(config-if)#ip address 192.168.10.254 255.255.255.0
R1(config-if)#no shutdown
R1(config)#int e0/0
R1(config-if)#ip add ress 12.1.1.1 255.255.255.0
R1(config-if)#no shutdown
R1(config)#ip route 0.0.0.0 0.0.0.0 12.1.1.2
R1(config)#int lo 1
R1(config-if)#ip add ress 192.168.1.100 255.255.255.0
四、R2的配置
R2(config)#int e0/0
R2(config-if)#ip address 12.1.1.2 255.255.255.0
R2(config-if)#no shutdown
R2(config)#int e0/1
R2(config-if)#ip address 23.1.1.2 255.255.255.0
R2(config-if)#no shutdown
五、R3的配置
R3(config)int e0/0
R3(config-if)#ip address 23.1.1.3 255.255.255.0
R3(config-if)#no shutdown
R3(config)#int e0/1
R3(config-if)#ip add ress 192.168.20.254 255.255.255.0
R3(config-if)#no shutdown
R3(config)#ip route 0.0.0.0 0.0.0.0 23.1.1.2
R3(config)#int lo 1
R3(config-if)#ip add ress 192.168.2.100 255.255.255.0
以上配置完后,能够测试,pc之间不通,R1与R3能够ping通。
R1能够ping通R3
R1#ping 23.1.1.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 23.1.1.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/2 ms3d

PC1不可以ping通PC3
PC1#ping 192.168.20.100 source 192.168.10.100
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.10.100, timeout is 2 seconds:
UUUUU
Success rate is 0 percent (0/5)code

接下来开始配置IPSec ×××
六、在R1上配置IPSec ×××
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)#access-list 100 permit ip 192.168.10.0 0.0.0.255 192.168.20.0 0.0.0.255
R1(config)#crypto isakmp policy 10
R1(config-isakmp)#encr 3des
R1(config-isakmp) #hash md5
R1(config-isakmp) #authentication pre-share
R1(config-isakmp) #group 2
R1(config)#crypto isakmp key 6 cisco address 23.1.1.3
R1(config)#crypto ipsec transform-set xxx esp-3des esp-md5-hmac
R1(cfg-crypto-trans)#mode tunnel
R1(config)#crypto map yy 10 ipsec-isakmp
R1(config-crypto-map)#set peer 23.1.1.3
R1(config-crypto-map)# set transform-set xxx
R1(config-crypto-map)# match address 100
R1(config)#int e0/0
R1(config-if)#crypto map yyorm

七、在R3上配置IPSec ×××
抓取感兴趣流量
R1(config)#access-list 100 permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255
R1(config)#access-list 100 permit ip 192.168.20.0 0.0.0.255 192.168.10.0 0.0.0.255
IKE第一阶段,ISAKMP SA协商
R1(config)#crypto isakmp policy 10 //定义ISAKMP(用于轮循)
R1(config-isakmp)#encr 3des //定义加密算法
R1(config-isakmp) #hash md5 //定义认证算法
R1(config-isakmp) #authentication pre-share //使用域共享秘钥方式产生key
R1(config-isakmp) #group 2 //定义非对称加密算法(为DH-2)
定义共享秘钥
R1(config)#crypto isakmp key 6 cisco address 12.1.1.1
IKE第二阶段,IPSEC SA协商
R1(config)#crypto ipsec transform-set xxx esp-3des esp-md5-hmac
//使用ESP封装,3DES加密算法,MD5认证,HMAC源认证
R1(cfg-crypto-trans)#mode tunnel //定义为隧道模式
定义cryto map(配置加密映射)
R1(config)#crypto map yy 10 ipsec-isakmp //定义名称
R1(config-crypto-map)#set peer 12.1.1.1 //定义对方某个IP地址生效
R1(config-crypto-map)# set transform-set xxx //定义转换集
R1(config-crypto-map)# match address 100 //匹配感兴趣流量
R1(config)#int e0/0 //接口调用crypto map
R1(config-if)#crypto map yy
八、测试
1)、PC1可以ping通PC3
PC1#ping 192.168.20.100 source 192.168.10.100
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.20.100, timeout is 2 seconds:
Packet sent with a source address of 192.168.10.100
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 1/3/4 ms
2)、R1的环回可以ping通R3的环回(做用与PC1 ping PC3相同)
R1#ping 192.168.2.100 source 192.168.1.100
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.2.100, timeout is 2 seconds:
Packet sent with a source address of 192.168.1.100
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 7/8/11 ms
3)、PC 不可以ping通R2
PC1#ping 12.1.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 12.1.1.2, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)blog