HC110110029 IPSec原理与配置

0x00 汇总

汇总链接
我寻思着先讲GRE再讲IPSEC不好理解些么。。。

不过IA的IPSec配置就完事了。


0x01 IPSec

企业对网络安全性的需求日益提升,而传统的TCP/IP协议缺乏有效的安全认证和保密机制。
IPSec(Internet Protocol Security)作为一种开放标准的安全框架结构,可以用来保证IP数据报文在网络上传输的机密性完整性防重放
在这里插入图片描述
IPSec XXX(不要问我XXX是什么,CSDN你XXX,简直有毒,等有空,哥就去开私人博客)体系结构主要由AH(Authentication Header)、ESP(Encapsulating Security Payload)和IKE(Internet Key Exchange)协议套件组成。

  • AH协议:主要提供的功能有数据源验证、数据完整性校验和防报文重放功能。然而,AH并不加密所保护的数据报。
  • ESP协议:提供AH协议的所有功能外(但其数据完整性校验不包括IP头),还可提供对IP报文的加密功能
  • IKE协议:用于自动协商AH和ESP所使用的密码算法。

在这里插入图片描述
SA(Security Association)安全联盟定义了IPSec通信对等体间将使用的数据封装模式、认证和加密算法、秘钥等参数。SA是单向的,两个对等体之间的双向通信,至少需要两个SA。如果两个对等体希望同时使用AH和ESP安全协议来进行通信,则对等体针对每一种安全协议都需要协商一对SA。

SA由一个三元组来唯一标识,这个三元组包括安全参数索引SPI(Security Parameter Index)、目的IP地址、安全协议(AH或ESP)。

建立SA的方式有以下两种:
手工方式:安全联盟所需的全部信息都必须手工配置。手工方式建立安全联盟比较复杂,但优点是可以不依赖IKE而单独实现IPSec功能。当对等体设备数量较少时,或是在小型静态环境中,手工配置SA是可行的。
IKE动态协商方式:只需要通信对等体间配置好IKE协商参数,由IKE自动协商来创建和维护SA。动态协商方式建立安全联盟相对简单些。对于中、大型的动态网络环境中,推荐使用IKE协商建立SA。

配置IPSec的步骤如下:(讲道理,我觉得第三步和第四要换一下,肯定先第一阶段,再第二阶段阿,不过这IA好像连什么是第一阶段,什么是第二阶段都没讲,我吐了,华为的配置真的没有逻辑,差评)

  1. 首先需要检查报文发送方和接收方之间的网络层可达性,确保双方只有建立IPSec VPN隧道才能进行IPSec通信。
  2. 第二步是定义数据流。因为部分流量无需满足完整性和机密性要求,所以需要对流量进行过滤,选择出需要进行IPSec处理的兴趣流。可以通过配置ACL来定义和区分不同的数据流。
  3. 第三步是配置IPSec安全提议。IPSec提议定义了保护数据流所用的安全协议、认证算法、加密算法和封装模式。安全协议包括AH和ESP,两者可以单独使用或一起使用。AH支持MD5和SHA-1认证算法;ESP支持两种认证算法(MD5和SHA-1)和三种加密算法(DES、3DES和AES)。为了能够正常传输数据流,安全隧道两端的对等体必须使用相同的安全协议、认证算法、加密算法和封装模式。如果要在两个安全网关之间建立IPSec隧道,建议将IPSec封装模式设置为隧道模式,以便隐藏通信使用的实际源IP地址和目的IP地址。
  4. 第四步是配置IPSec安全策略。IPSec策略中会应用IPSec提议中定义的安全协议、认证算法、加密算法和封装模式。每一个IPSec安全策略都使用唯一的名称和序号来标识。IPSec策略可分成两类:手工建立SA的策略和IKE协商建立SA的策略。
  5. 第五步是在一个接口上应用IPSec安全策略。

0x02 IPSec配置

PPT上写的是手工方式,那咱们也做手工的好了,其实比自动协商的配置起来更加复杂。
在这里插入图片描述

底层配置

AR1

//配置IP及DHCP功能
[AR1]dhcp enable 
[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]ip address 172.16.1.1 24
[AR1-GigabitEthernet0/0/0]dhcp select interface 
[AR1-GigabitEthernet0/0/0]int g0/0/1
[AR1-GigabitEthernet0/0/1]ip add 100.1.1.1 24

AR2

//只需要配置IP
[ISP-AR2]int g0/0/0
[ISP-AR2-GigabitEthernet0/0/0]ip add 100.1.1.2 24
[ISP-AR2-GigabitEthernet0/0/0]int g0/0/1
[ISP-AR2-GigabitEthernet0/0/1]ip add 200.1.1.2 24

AR3

[AR3]dhcp enable 
[AR3]int g0/0/1
[AR3-GigabitEthernet0/0/1]ip add 200.1.1.3 24
[AR3-GigabitEthernet0/0/1]int g0/0/0
[AR3-GigabitEthernet0/0/0]ip add 192.168.1.1 24 
[AR3-GigabitEthernet0/0/0]dhcp select interface 

两端PC直接拿地址就好。
在这里插入图片描述
在这里插入图片描述

配置路由可达性

AR1

[AR1]ip route-static 0.0.0.0 0.0.0.0 100.1.1.2

AR3

[AR3]ip route-static 0.0.0.0 0.0.0.0 200.1.1.2

这两条路由有两个作用,第一个确保AR1和AR3在互联网当中能够具有连通性,如果这两个地址都不能互通的话,那么IPSEC肯定也无法建立 。

[AR1]ping 200.1.1.3
  PING 200.1.1.3: 56  data bytes, press CTRL_C to break
    Request time out
    Reply from 200.1.1.3: bytes=56 Sequence=2 ttl=254 time=30 ms
    Reply from 200.1.1.3: bytes=56 Sequence=3 ttl=254 time=20 ms
    Reply from 200.1.1.3: bytes=56 Sequence=4 ttl=254 time=20 ms
    Reply from 200.1.1.3: bytes=56 Sequence=5 ttl=254 time=20 ms

  --- 200.1.1.3 ping statistics ---
    5 packet(s) transmitted
    4 packet(s) received
    20.00% packet loss
    round-trip min/avg/max = 20/22/30 ms

第二个作用就是让两端的站点,都有路由可以让去往对端私有网段的数据通过公网接口,必要时,可能还需要添加静态路由来完成。注意,虽然此时有静态路由,但是仍然无法通信,因为ISP-AR2上,不可能有私有地址的路由的。
在这里插入图片描述

定义兴趣流

用ACL来匹配出两端需要被加密的流量。
AR1

[AR1]acl 3000 
[AR1-acl-adv-3000]rule permit ip source 172.16.1.0 0.0.0.255 destination 192.168.1.0 0.0.0.255

AR3

[AR3]acl 3000
[AR3-acl-adv-3000]rule permit ip source 192.168.1.0 0.0.0.255 destination 172.16.1.0 0.0.0.255
配置IPSec安全提议

通常我会把这阶段的配置称为第二阶段,是用来定义真正的数据流的参数!

IPSec安全协议两端保持一样的配置。

AR1/AR3

[AR1]ipsec proposal PROP1									//创建提议PROP1
[AR1-ipsec-proposal-PROP1]encapsulation-mode tunnel 		//模式为tunnel,默认配置
[AR1-ipsec-proposal-PROP1]transform esp 					//使用ESP协议,默认配置
[AR1-ipsec-proposal-PROP1]esp authentication-algorithm md5 	//使用MD5进行验证,默认配置
[AR1-ipsec-proposal-PROP1]esp encryption-algorithm 3des 	//使用3des算法进行加密

检查第二阶段

[AR1]display ipsec proposal name PROP1

IPSec proposal name: PROP1                            
 Encapsulation mode: Tunnel                            
 Transform         : esp-new
 ESP protocol      : Authentication MD5-HMAC-96                             
                     Encryption     3DES
配置IPSec 安全策略

通常我会把这阶段的配置称为第一阶段,用来定义保护加密通道的参数!
IPsec安全协议两端保持一样的配置,注意啦,有些地方为了对应,两端得配置成相对应的参数,并不是完全一模一样~
真的是烦,先配置第二阶段,再配置第一阶段,华为有毒。

AR1

[AR1]ipsec policy POLICY 10 manual 								//创建安全策略
[AR1-ipsec-policy-manual-POLICY-10]security acl 3000			//关联兴趣流
[AR1-ipsec-policy-manual-POLICY-10]proposal PROP1				//关联IPSec安全提议
[AR1-ipsec-policy-manual-POLICY-10]tunnel local 100.1.1.1		//定义加密起点
[AR1-ipsec-policy-manual-POLICY-10]tunnel remote 200.1.1.3		//定义加密终点
[AR1-ipsec-policy-manual-POLICY-10]sa spi inbound esp 123456	//定义入方向SPI,即为对端出方向SPI
[AR1-ipsec-policy-manual-POLICY-10]sa spi outbound esp 654321	//定义出方向SPI,即为对端入方向SPI
[AR1-ipsec-policy-manual-POLICY-10]sa string-key inbound esp simple huawei	//定义入方向密码
[AR1-ipsec-policy-manual-POLICY-10]sa string-key outbound esp simple huawei	//定义出方向密码
//其实SPI也能配置成一样的,这样会更加简单,不过为了更形象点,就这样吧

AR3

[AR3]ipsec policy POLICY 10 manual
[AR3-ipsec-policy-manual-POLICY-10] security acl 3000
[AR3-ipsec-policy-manual-POLICY-10] proposal PROP1
[AR3-ipsec-policy-manual-POLICY-10] tunnel local 200.1.1.3
[AR3-ipsec-policy-manual-POLICY-10] tunnel remote 100.1.1.1
[AR3-ipsec-policy-manual-POLICY-10] sa spi inbound esp 654321
[AR3-ipsec-policy-manual-POLICY-10] sa string-key inbound esp simple huawei
[AR3-ipsec-policy-manual-POLICY-10] sa spi outbound esp 123456
[AR3-ipsec-policy-manual-POLICY-10] sa string-key outbound esp simple huawei

检查policy

[AR3]display ipsec policy 

===========================================
IPSec policy group: "POLICY"
Using interface: 
===========================================

    Sequence number: 10
    Security data flow: 3000
    Tunnel local  address: 200.1.1.3
    Tunnel remote address: 100.1.1.1
    Qos pre-classify: Disable
    Proposal name:PROP1
    Inbound AH setting: 
      AH SPI: 
      AH string-key: 
      AH authentication hex key: 
    Inbound ESP setting: 
      ESP SPI: 654321 (0x9fbf1)
      ESP string-key: huawei
      ESP encryption hex key: 
      ESP authentication hex key: 
    Outbound AH setting: 
      AH SPI: 
      AH string-key: 
      AH authentication hex key:          
    Outbound ESP setting: 
      ESP SPI: 123456 (0x1e240)
      ESP string-key: huawei
      ESP encryption hex key: 
      ESP authentication hex key: 
接口应用安全策略

AR1/AR3

[AR1-ipsec-proposal-PROP1]int g0/0/1
[AR1-GigabitEthernet0/0/1]ipsec policy POLICY 

AR3同理也需要调用,接下来进行测试。
在这里插入图片描述
成功访问对端私网地址,检查ipsec sa

[AR3]display ipsec sa brief 

Number of SAs:2
    Src address     Dst address        SPI    VPN  Protocol     Algorithm
-------------------------------------------------------------------------------
      200.1.1.3       100.1.1.1     123456      0    ESP   E:3DES A:MD5-96
      100.1.1.1       200.1.1.3     654321      0    ESP   E:3DES A:MD5-96

[AR3]display ipsec statistics esp 
 Inpacket count            : 5
 Inpacket auth count       : 0
 Inpacket decap count      : 0
 Outpacket count           : 4
 Outpacket auth count      : 0
 Outpacket encap count     : 0
 Inpacket drop count       : 0
 Outpacket drop count      : 0
 BadAuthLen count          : 0
 AuthFail count            : 0
 InSAAclCheckFail count    : 0
 PktDuplicateDrop count    : 0
 PktSeqNoTooSmallDrop count: 0
 PktInSAMissDrop count     : 0

也可以看到除了第一包就用于触发VPN了,入和出方向皆有报文,但很奇怪,不显示验证和封装数量什么鬼。。。还是去抓个包吧。
在这里插入图片描述
确实已经加密了,Over。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值