目录:

简介:... 2

分类:... 2

1.在路由上实现的***可分为:... 2

2.ASA防火墙上实现的***:2

IPSec ***:3

IPSec能实现的功能有:... 3

IPSec的特性(IPSec之所以安全是由它的特性决定的):... 3

IPSec的实施包含两个阶段... 4

IPSec协商过程:... 4

IPSec 范畴的***中各种形式的大体配置步骤:... 6

IPSEC ***几种配置实例... 6

.实验拓扑... 7

.实验目的... 7

.实验要求... 7

.实验配置... 8

1.基本配置... 8

2.实施IPSec Lan-to-Lan. 9

3.实施IPSec Dynamic Lan-to-Lan. 16

4.GRE Over IPSec. 20

.实验总结... 27


简介:

 

***Vritual private Network 虚拟专用网络),其功能是在公网上建立专用的网络,进行加密通讯。在企业网络中广泛使用。***网关通过对数据包的加密和数据包目标地址的转换实现远程访问。***特点:成本低,易于使用。

 

 

分类:

 

1.在路由上实现的***可分为:

IPSec ***

1、  LAN-to-LAN(基于PSKPKI);

              PSK:预共享密钥

              PKI:证书

2、  GRE Over IPSec   基于IPSecGRE

3、  Dy***(mgre)动态***

4、  Get ***

5、  Remote access *** easy ***

SSL ***:(也叫Web ***,也属于Remote***,通过用户认证和证书认证)

 

2.ASA防火墙上实现的***:

IPSec ***

1、  LAN-to-LAN(基于PSKPKI);

              PSK:预共享密钥

              PKI:证书

2、  Get ***

3、  Remote access *** easy ***

SSL ***:(也叫Web ***

Remote ***,通过用户认证和证书认证

Anyconnect(IPSec,SSL)

 

 

 

IPSec ***:

 

***的实施是隧道技术的与数据加密技术的结合,二者缺一不可。IPSec是数据加密传输技术中一个使用最广泛且最经典的技术方案。IPSec最突出,也是最主要的功能就是保证***数据的安全传输。

IPSec可以和一般的隧道协议一起使用,也可以单独作为隧道协议建立隧道

         由于一般的隧道协议不具备数据加密的安全特性,所以要IPSec与之一起使用,保证隧道数据的安全性。当然,IPSec也可以单独作为一种隧道协议建立隧道,这样的好处就是不需要借助其他任何的隧道协议建立***。到底是怎样的使用方法要根据实施者自己来确定。

 

注:IPSec只支持对单播。

 

 

 

IPSec能实现的功能有:

                   数据源认证(Data origin authentication;

                    保证数据的完整性(Data integrity);

                    保证数据私密性(Data confidentiality

                    防止中间人***(Man-in-the-Middle

                    防止数据被重放(Anti-Replay

   数据源认证保证数据是从真正的发送者发来的,而不是来自于第三方***者。

   保护数据完整性是保证数据不会被***者改动。

   保证数据私密性是保证数据不会被***者读取。

   防止中间人***是防止数据被中间人截获。

   防止数据被重放也可以认为是防止数据被读取和改动。

 

 

IPSec的特性(IPSec之所以安全是由它的特性决定的):

         加密

          数据完整性

          对等体身份认证

          反重放保护

 

 

 

IPSec的实施包含两个阶段

 

Phase one

 

协商安全参数,保护phasetwo安全协商。使用ISAKMPUDP500)协议,是针对密钥安全的,保证密钥的安全传输、交换以及存储,主要是对密钥进行操作而不是针对用户的具体数据。

 

 

参数:

 

     加密:对称加密(Des56位加密),3Des168),Aes-128Aes-256

           非对称加密---Rsa

 

     DH(Diffie Hellman)密钥交换算法:Group1-768位,Group2-1024Group3-2048

              (通过离散数学算法求模产生长度不等加密密钥,不可到处与查看)

 

      完整性算法:根据Key,利用Hash算法(MD5SHA-1)得出一个Hash值,接受方以同样的方式得出Hash算法,一致的话就表明数据就是完整的。

 

     对等体身份认证:PKI(通过证书方法实现的)

                      psk(预共享密钥,要手动配置,发送方根据PSK+随机ID值通过Hash算法得出一个值发送给接受方,接收 方只截取其中的ID,然后加上自己的PSK,通过Hash算法得出一样的值,双方一样,认证成功)

 

 

Phase two

 

加密算法(Encryption:DES,3DES,AES 128,AES 192 ,AES 256

Hash算法(HMAC:SHA-1,MD5

 

 

 

IPSec协商过程:

 

IPSec的协商主要分为主模式和快速模式。主模式用来使对等体都同意IKE SA参数。快速模式用来协商IPSec安全联盟的参数。

 

第一阶段:主模式

主模式执行3,6个数据包的双向交换.过程如下:

1.对等体间协商如何来保护管理连接.(使用加密变换集来保护)

2.对等体间使用DH算法来共享密钥以及保护连接.

3.对等体间进行彼此的验证.

 

发送消息1    Initiator==>Responter

             发送方向接受方发送一条策略提议,包含加密机制,策略机制,Diffie-Hellman,认证机制,生存周期

发送消息2    Initiator<==Responter

             接收方查看IKE策略消息并在自己的策略列表中查找匹配的,回应一条消息给发送者。

(总的来说,主模式第12消息是用来协商参数如(加密机制,策略机制,Diffie-Hellman,认证机制,生存周期)

 

主模式第34条消息其实就是DH算法中需要交换的几个参数然后路由器再通过DH算法计算出的公钥计算出以下几个参数:

SKEYID_D:计算后续的IPSec密钥资源;

SKEYID_A:提供IKE消息的数据完整性和认证;

SKEYID_E:加密IKE消息。

 

56消息是用来验证对等体身份的,从第5个包起,后面从所有包将会加密,只不过不同的是,第56个包和第二阶段协商的3个包都是通过第一阶段协商的安全策略进行加密的,而用户通信的数据则是用第二阶段协商的IPSec SA策略进行加密和认证的,至于密钥两者是否一样,就要看在第二阶段是否定义了PFS策略,如果用了,那第二阶段的密钥将于第一阶段的不同,否则一样。

 

第二阶段:快速模式

phase 2的目标是协商IPSEC SA,而且只有一种模式,快速模式,快速模式的协商是受IKE SA保护的

 

消息1---发送方发送一条报文,其中包含HASH,IPSEC策略提议,NONCE和可选的DH,身份ID
HASH:是用于给接受方作完整性检查的,用于再次认证对等体(必须)HASH的成分和56阶段一样
IPSEC策略提议:其中包括了安全协议,SPI,散列算法,隧道模式,IPSEC SA生命周期(必须)
NONCE:用于防重放***,还被用作密码生成的材料,仅当启用PFS时用到
ID:描述IPSEC SA是为哪些地址,协议和端口建立的
DH:重新协商IPSEC SA实使用的密钥(正常情况下IPSEC阶段使用的密钥都是由skeyID_d衍生而来,密钥之间都有一定的关系,就算IPSEC SA超时,新的KEY还是和skeyID_d有一定的关系)

消息2---使用相同的消息进行相应

3消息

发送方发送第三条消息,其中包含一个HASH,其作用是确认接受方的消息以及证明发送方处于Active状态(表示发送方的第一条消息不是伪造的)

 

 

IPSec 范畴的***中各种形式的大体配置步骤:

 

      1.配置IKEisakmp)策略:eg.crypto isalmp policy 10

          定义IKE阶段1的一些策略:加密算法(Encryption),Hash算法(HMAC,哈希

算法验证码),密钥算法(Diffie-HellmanDH),认证方式(Authentication

 

      2.定义认证标示;

         无论前面定义了何种认证方式,都要添加认证信息,如密码,数字证书等。

 

      3.配置IPSectransfrom

          定义阶段2中的一些加密算法以及HMAC算法,此transfrom定义***流量中的

数据包收到怎样的保护。

 

       4.定义感兴趣的流量;

           定义那些流量通过***来传输,通过IPSec来保护;通过ACL来匹配流量,ACL

permit的标示加密,deny的表示不加密。ACL中不能用any表示源或目标,

否则会出问题。

 

       5.创建crypto map

          将之前定义的ACL,加密数据发往的对端,以及IPSectransform结合在crypto map

.

 

       6.crypto map应用与接口;

           crypto map应用到三层的可路由接口。

 

 

 

IPSEC ***几种配置实例

 

.实验拓扑

wKiom1QNEevQdEMVAADgxLsLKP0980.jpg

 环境说明:

         上海、武汉两个远程公司要通过各自的私有IP地址来连接,如,R1要通过自己的10.1.1.1R3192.168.1.1连接。通过中间的ISP路由器(即Internet)来实现连接,但是  ISP路由器只能让R1R3fa0/0接口之间通信,路由表中不能出现R1R3的环回地址(相当于两个公司的内部私有地址),即不能让他们通信。ISP上不配置任何的路由。配置完IPSec Lan-to-Lan ***之后让上海的10.1.1.1能与武汉的192.168.1.1通信。

 

 

 

.实验目的

 

.理解IPSec ***的原理;

.掌握Ipsec ***的配置;

.学会在不同的环境中灵活应用IPSec的静态与动态;

.比较GREIPSec的区别并掌握 GREover IPsec的配置;

.比较IPSec的单独使用与IPSecGRE一起使用的异同,并学会灵活掌握他们的适用环境。

 

.实验要求

 

.通过设置IPSec LAN-to-LAN来实现上海与武汉两公司通过私有地址的访问(即静态的站点到站点ipsec ***);

.假设上海为总公司,用的公网地址是固定的,武汉为分公司,用动态公网IP,通过设置动态LAN-to-LAN实现两个公司用私有地址的连通;

.变换环境,两公司之间通过GRE通道连接,通过IPSec来加密两公司的GRE交流数据,保证安全性。

(以上实验中,R1-IPSecGWfa0/0R3-IPSecGWfa0/0接口的所有地址假设是用的公网地址)

 

.实验配置

 

1.基本配置

 

R1-IPSecGW配置:

为了模拟更加真实的环境,把NAT技术也加上

R1-IPSecGW#config t

Enter configuration commands, one per line. End with CNTL/Z.

R1-IPSecGW(config)#interface Loopback0

R1-IPSecGW(config-if)# ip address 10.1.1.1255.255.255.0

R1-IPSecGW(config-if)# ip nat inside

*Sep 6 17:40:50.555: %LINEPROTO-5-UPDOWN: Line protocol on InterfaceLoopback0, changed state to up

*Sep 6 17:40:50.987: %LINEPROTO-5-UPDOWN: Line protocol on Interface NVI0,changed state to up

R1-IPSecGW(config-if)#interfaceFastEthernet0/0

R1-IPSecGW(config-if)# ip address12.12.12.1 255.255.255.0

R1-IPSecGW((config-if)#no shut

R1-IPSecGW(config-if)# ip nat outside

R1-IPSecGW(config-if)#exit

R1-IPSecGW(config)#ip route 0.0.0.0 0.0.0.012.12.12.2

//用默认路由与ISP连接

R1-IPSecGW(config)#ip access-list extendedNAT

R1-IPSecGW(config-ext-nacl)#deny ip 10.1.1.00.0.0.255 192.168.1.0 0.0.0.255       

R1-IPSecGW(config-ext-nacl)# permit ip10.1.1.0 0.0.0.255 any

//NAT流量与IPSec流量是不能兼容的,所以要把通过IPSec保护的源数据流量排除NAT

R1-IPSecGW(config-ext-nacl)#exit

R1-IPSecGW(config)#ip nat inside sourcelist NAT interface FastEthernet0/0 overload

 

ISP配置:

因为ISP模拟的是internet,所以只需配上IP地址即可

ISP#config t

Enter configuration commands, one perline.  End with CNTL/Z.

ISP(config)#hostname ISP

ISP(config)#interface FastEthernet0/0

ISP(config-if)#ip address 12.12.12.2255.255.255.0

ISP(config-if)#no shut

ISP(config-if)#interface FastEthernet0/1

ISP(config-if)#ip address 23.23.23.1255.255.255.0

ISP(config-if)#no shut

ISP(config-if)#exit

 

R3-IPSecGW配置:

配置原理同R1-IPSecGW,也用到NAT,默认路由连接Internet

R3-IPSecGW#config t

Enter configuration commands, one perline.  End with CNTL/Z.

R3-IPSecGW(config)#interface Loopback0

R3-IPSecGW(config-if)# ip address192.168.1.1 255.255.255.0

R3-IPSecGW(config-if)# ip nat inside

*Sep 6 18:19:43.879: %LINEPROTO-5-UPDOWN: Line protocol on InterfaceLoopback0, changed state to up

*Sep 6 18:19:44.315: %LINEPROTO-5-UPDOWN: Line protocol on Interface NVI0,changed state to up

R3-IPSecGW(config-if)#interfaceFastEthernet0/0

R3-IPSecGW(config-if)# ip address23.23.23.2 255.255.255.0

R3-IPSecGW(config-if)#no shut

R3-IPSecGW(config-if)# ip nat outside

R3-IPSecGW(config-if)#exit

R3-IPSecGW(config)#ip route 0.0.0.0 0.0.0.023.23.23.1

R3-IPSecGW(config)#ip access-list extendedNAT

R3-IPSecGW(config-ext-nacl)#deny iP 192.168.1.00.0.0.255 10.1.1.0 0.0.0.255       

R3-IPSecGW(config-ext-nacl)# permit ip192.168.1.0 0.0.0.255 any

R3-IPSecGW(config-ext-nacl)#exit

R3-IPSecGW(config)#ip nat inside sourcelist NAT interface FastEthernet0/0 overload

 

2.实施IPSec Lan-to-Lan

 

这个实验也就是单独使用的IPSec来实现的站点到站点的***(没有借助其他隧道协议),IPSec是自建自保形式(自己建隧道自己加密数据保证安全性)

 

2.1.设置IKEisakmp)策略

 

第一阶段是设置策略,策略默认是有的,而且不止一个,我们可以通过show crypto isakamp policy查看

R1-IPSecGW(config)#do sho crypto isa polic

 

Default IKE policy

Protection suite of priority 65507

       encryption algorithm:   AES -Advanced Encryption Standard (128 bit keys).

       hash algorithm:         SecureHash Standard

       authentication method: Rivest-Shamir-Adleman Signature

       Diffie-Hellman group:   #5 (1536bit)

       lifetime:               86400seconds, no volume limit

Protection suite of priority 65508

       encryption algorithm:   AES -Advanced Encryption Standard (128 bit keys).

       hash algorithm:         SecureHash Standard

       authentication method:  Pre-SharedKey

       Diffie-Hellman group:   #5 (1536bit)

       lifetime:               86400seconds, no volume limit

Protection suite of priority 65509

       encryption algorithm:   AES -Advanced Encryption Standard (128 bit keys).

       hash algorithm:         MessageDigest 5

       authentication method: Rivest-Shamir-Adleman Signature

       Diffie-Hellman group:   #5 (1536bit)

       lifetime:               86400seconds, no volume limit

Protection suite of priority 65510

       encryption algorithm:   AES -Advanced Encryption Standard (128 bit keys).

       hash algorithm:         MessageDigest 5

       authentication method:  Pre-SharedKey

       Diffie-Hellman group:   #5 (1536bit)

       lifetime:               86400seconds, no volume limit

Protection suite of priority 65511

       encryption algorithm:   Three keytriple DES

       hash algorithm:         SecureHash Standard

       authentication method: Rivest-Shamir-Adleman Signature

       Diffie-Hellman group:   #2 (1024bit)

       lifetime:               86400 seconds, no volume limit

Protection suite of priority 65512

       encryption algorithm:   Three keytriple DES

       hash algorithm:         SecureHash Standard

       authentication method:  Pre-SharedKey

       Diffie-Hellman group:   #2 (1024bit)

       lifetime:               86400seconds, no volume limit

Protection suite of priority 65513

       encryption algorithm:   Three keytriple DES

       hash algorithm:         MessageDigest 5

       authentication method:  Rivest-Shamir-AdlemanSignature

       Diffie-Hellman group:   #2 (1024bit)

       lifetime:               86400seconds, no volume limit

Protection suite of priority 65514

       encryption algorithm:   Three keytriple DES

       hash algorithm:         Message Digest 5

       authentication method:  Pre-SharedKey

       Diffie-Hellman group:   #2 (1024bit)

       lifetime:               86400seconds, no volume limit

 

所以,策略可以我们自己设置,也可以不用设置,采用默认策略。当然,作为初学者,我们还是自己动手设置好点:

 

R1-IPSecGW(config)#crypto isakmp policy 10

R1-IPSecGW(config-isakmp)# encr 3des

R1-IPSecGW(config-isakmp)# hash md5

R1-IPSecGW(config-isakmp)# authenticationpre-share

R1-IPSecGW(config-isakmp)# group 2

R1-IPSecGW(config-isakmp)#exit

 

2.2.定义认证标示

 

也就是定义对等体身份认证的方式,采用PSK方式还是PKI方式。本实验我们采取PSK方式。

 

//设置PSk认证方式并制定认证对方

R1-IPSecGW(config)#crypto isakmp key freeitaddress 23.23.23.2

//认证密钥为freeit,认证对方地址为23.23.23.1.两端必须一致

 

2.3.配置IPSec transfrom

 

此步骤为第二阶段(Pash two)对数据进行加密的设置。

R1-IPSecGW(config)#crypto ipsectransform-set l2l-ipsec esp-3des esp-sha-hmac

R1-IPSecGW(cfg-crypto-trans)#mode tunnel

R1-IPSecGW(cfg-crypto-trans)#exit

 

//数据加密算法使用esp-3des,保证数据完整性采用esp-sha-hmac算法。运行模式为tunnel模式(也是默认模式)

 

2.4.定义感兴趣流量

 

定义那些数据通过***传输,通过IPSec保护

R1-IPSecGW(config)#ip access-list extended***

R1-IPSecGW(config-ext-nacl)#permit iP 10.1.1.00.0.0.255 192.168.1.0 0.0.0.255       

R1-IPSecGW(config-ext-nacl)#exit

 

//定义对上海的10.1.1.1到武汉的192.168.1.1的流量进行保护。

 

2.5.创建crypto map

 

将之前定义的ACL,加密数据发往的对端,以及IPSec transform结合在crypto map

R1-IPSecGW(config)#crypto map l2l 10ipsec-isakmp

% NOTE: This new crypto map will remaindisabled until a peer

       and a valid access list have been configured.

R1-IPSecGW(config-crypto-map)# set peer23.23.23.2

R1-IPSecGW(config-crypto-map)# settransform-set l2l-ipsec

R1-IPSecGW(config-crypto-map)# matchaddress ***

R1-IPSecGW(config-crypto-map)#exit

 

2.6.crypto map调用到接口

 

R1-IPSecGW(config)#interfaceFastEthernet0/0

R1-IPSecGW(config-if)#crypto map l2l

R1-IPSecGW(config-if)#exit

 

R3-IPSecGW配置同R1-IPSecGW

 

R3-IPSecGW(config)#crypto isakmp policy 10

R3-IPSecGW(config-isakmp)# encr 3des

R3-IPSecGW(config-isakmp)# hash md5

R3-IPSecGW(config-isakmp)# authenticationpre-share

R3-IPSecGW(config-isakmp)# group 2

R3-IPSecGW(config-isakmp)#exit

R3-IPSecGW(config)#crypto isakmp key freeitaddress 12.12.12.1

R3-IPSecGW(config)#crypto ipsectransform-set l2l-ipsec esp-aes esp-sha-hmac

R3-IPSecGW(cfg-crypto-trans)#ip access-listextended ***

R3-IPSecGW(config-ext-nacl)#$192.168.1.00.0.0.255 10.1.1.0 0.0.0.255       

R3-IPSecGW(config-ext-nacl)#exit

R3-IPSecGW(config)#crypto map l2l 10ipsec-isakmp

% NOTE: This new crypto map will remaindisabled until a peer

       and a valid access list have been configured.

R3-IPSecGW(config-crypto-map)# set peer12.12.12.1

R3-IPSecGW(config-crypto-map)# settransform-set l2l-ipsec

R3-IPSecGW(config-crypto-map)# matchaddress ***

R3-IPSecGW(config-crypto-map)#exit

R3-IPSecGW(config)#interface FastEthernet0/0

R3-IPSecGW(config-if)# ip address23.23.23.2 255.255.255.0

R3-IPSecGW(config-if)# crypto map l2l

R3-IPSecGW(config-if)#exit

R3-IPSecGW(config)#

*Sep 6 19:05:41.435: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON

 

 

2.7.测试***

 

通过show命令在R1-IPSecGW查看isakmp saipsec sa有没有匹配的流量

R1-IPSecGW#sho crypto isakmp sa

IPv4 Crypto ISAKMP SA

dst             src             state          conn-id slot status

 

IPv6 Crypto ISAKMP SA

 

 

 

R1-IPSecGW#sho crypto ipsec sa

 

interface: FastEthernet0/0

   Crypto map tag: l2l, local addr 12.12.12.1

 

  protected vrf: (none)

  local  ident(addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0)

  remote ident (addr/mask/prot/port): (192.168.1.0/255.255.255.0/0/0)

  current_peer 23.23.23.2 port 500

    PERMIT, flags={origin_is_acl,}

   #pkts encaps: 0, #pkts encrypt: 0, #pkts digest: 0

   #pkts decaps: 0, #pkts decrypt: 0, #pkts verify: 0

   #pkts compressed: 0, #pkts decompressed: 0

   #pkts not compressed: 0, #pkts compr. failed: 0

   #pkts not decompressed: 0, #pkts decompress failed: 0

   #send errors 0, #recv errors 0

 

    local crypto endpt.: 12.12.12.1, remote crypto endpt.: 23.23.23.2

    path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0

    current outbound spi: 0x0(0)

 

    inbound esp sas:

 

    inbound ah sas:

         

    inbound pcp sas:

         

    outbound esp sas:

         

    outbound ah sas:

         

    outbound pcp sas:

尽管所有的配置已经完成,由于还没有流量通过,所以还没有激活isakamp sa通道,也就没有信息。所以IPSec sa也就处于非活动状态(Cisco产品默认不会自动连接***,所以我们后面要手动触发)。

 

查看crypto map

R1-IPSecGW#sho crypto map

Crypto Map "l2l" 10 ipsec-isakmp

       Peer = 23.23.23.2

       Extended IP access list ***

           access-list *** permit ip 10.1.1.0 0.0.0.255 192.168.1.0 0.0.0.255

       Current peer: 23.23.23.2

       Security association lifetime: 4608000 kilobytes/3600 seconds

       PFS (Y/N): N

       Transform sets={

                l2l-ipsec:  { esp-aes esp-sha-hmac  } ,

       }

       Interfaces using crypto map l2l:

                FastEthernet0/0

//crypto map显示的是加密数据发往的对端是23.23.23.2.即和23.23.23.2建立了ipsec隧道。调用的是ipsectransforml2l-ipsec.保护的流量为access-list ***定义的流量。

 

上海,武汉互ping,激活isakamp sa通道

R1-IPSecGW#ping 192.168.1.1 source loo0

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to192.168.1.1, timeout is 2 seconds:

Packet sent with a source address of10.1.1.1

.!!!!

Success rate is 80 percent (4/5),round-trip min/avg/max = 164/169/18

 

ping的同时用Wireshark抓包查看

wKioL1QNEiWTmVqXAAVj89eN6hI926.jpg

从上图可以看出,所有数据都是被加密的,不用担心信息的泄露,就算使用明文交流,也会同样被加密发送。

 

查看isakamp sa

R1-IPSecGW#sho crypto isakmp sa

IPv4 Crypto ISAKMP SA

dst             src             state          conn-id slot status

23.23.23.2      12.12.12.1      QM_IDLE           1001    0 ACTIVE

 

IPv6 Crypto ISAKMP SA

//isakamp 隧道已经建立,从12.12.12.123.23.23.2,并处于激活状态(ACTIVE

 

查看ipsec sa

R1-IPSecGW#sho crypto ipsec sa

 

interface: FastEthernet0/0

   Crypto map tag: l2l, local addr 12.12.12.1

 

  protected vrf: (none)

  local  ident (addr/mask/prot/port):(10.1.1.0/255.255.255.0/0/0)

  remote ident (addr/mask/prot/port): (192.168.1.0/255.255.255.0/0/0)

  current_peer 23.23.23.2 port 500

    PERMIT, flags={origin_is_acl,}

   #pkts encaps: 4, #pkts encrypt: 4, #pkts digest: 4

   #pkts decaps: 4, #pkts decrypt: 4, #pkts verify: 4

   #pkts compressed: 0, #pkts decompressed: 0

   #pkts not compressed: 0, #pkts compr. failed: 0

   #pkts not decompressed: 0, #pkts decompress failed: 0

   #send errors 1, #recv errors 0

 

    local crypto endpt.: 12.12.12.1, remote crypto endpt.: 23.23.23.2

    path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0

    current outbound spi: 0x339F7BB8(866089912)

 

    inbound esp sas:

     spi: 0x15DF1A88(366942856)

       transform: esp-aes esp-sha-hmac ,

        in use settings ={Tunnel, }

       conn id: 1, flow_id: SW:1, crypto map: l2l

       sa timing: remaining key lifetime (k/sec): (4474695/2669)

       IV size: 16 bytes

       replay detection support: Y

       Status: ACTIVE

 

    inbound ah sas:

 

    inbound pcp sas:

 

    outbound esp sas:

     spi: 0x339F7BB8(866089912)

       transform: esp-aes esp-sha-hmac ,

       in use settings ={Tunnel, }

       conn id: 2, flow_id: SW:2, crypto map: l2l

       sa timing: remaining key lifetime (k/sec): (4474695/2669)

       IV size: 16 bytes

       replay detection support: Y

       Status: ACTIVE

 

    outbound ah sas:

 

    outbound pcp sas:

//ipsec sa处于激活状态,并且加密了4个数据包.目前的ipsec工作模式为tunnel模式。

 

 

 

3.实施IPSec Dynamic Lan-to-Lan

 

环境:

         一般情况下,公司对外连接的ip都是动态变换的,只有大公司才有财力采用静态的IP地址实现连接公网。假设上海总公司采用的是静态的IP地址。而武汉分公司用的是动态公网IP。前面的实验环境是两边用的都是静态IP,那么现在应该怎样部署实验呢?

 

3.1.修改静态配置

 

//修改psk认证的对方

R1-IPSecGW(config)#no crypto isakmp keyfreeit address 23.23.23.2

R1-IPSecGW(config)#crypto isakmp key freeitaddress 0.0.0.0 0.0.0.0

说明:

          因为对方是动态的公网IP,所以认证对方的地址应该设置为默认路由。

 

//修改crypto map

R1-IPSecGW(config)#inter fa0/0

R1-IPSecGW(config-if)#no cryp map

R1-IPSecGW(config-if)#exit

R1-IPSecGW(config)#no crypto map l2l 10

R1-IPSecGW(config)#crypto dynamic-map dymap10

R1-IPSecGW(config-crypto-map)#settransform-set l2l-ipsec

R1-IPSecGW(config-crypto-map)#match address***

R1-IPSecGW(config-crypto-map)#exit

 

//把动态crypto map与动态的绑定

R1-IPSecGW(config)#crypto map l2l 10ipsec-isakmp dynamic dymap

说明:

          动态的crypto map不能直接调用到接口,所以要与静态的绑定,再绑定静态crypto map到端口。

 

//接口调用

R1-IPSecGW(config)#inter fa0/0

R1-IPSecGW(config-if)#crypto map l2l

R1-IPSecGW(config-if)#

*Sep 6 21:22:57.723: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON

R1-IPSecGW(config-if)#exit

 

 

3.2.测试

 

 

对于动态的IPSec LAN-TO-LAN ***,通道的建立于激活要由动态IP一段的主动发起。静态的一段主动发起时,其身份认证对端为默认路由,所以不能实现认证。

 

现在动态已经建立,那么我们就让总部的先发起会话,看能不能ping

R1-IPSecGW#ping 192.168.1.1 source loopback0

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to192.168.1.1, timeout is 2 seconds:

Packet sent with a source address of10.1.1.1

.....

Success rate is 0 percent (0/5)

说明:

           由于没有明确的身份认证对方,所以不能实现IPSec ***安全通信。

 

//清除原有的isakamp ipsec数据

R3-IPSecGW#clear crypto isakmp  

R3-IPSecGW#clear crypto sa

 

//查看isakamp sa

R3-IPSecGW#sho crypto isakmp sa

IPv4 Crypto ISAKMP SA

dst             src             state          conn-id slot status

 

IPv6 Crypto ISAKMP SA

 

//查看ipsec sa

R3-IPSecGW#sho crypto ipsec sa

 

interface: FastEthernet0/0

   Crypto map tag: l2l, local addr 23.23.23.2

 

  protected vrf: (none)

  local  ident(addr/mask/prot/port): (192.168.1.0/255.255.255.0/0/0)

  remote ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0)

  current_peer 12.12.12.1 port 500

    PERMIT, flags={origin_is_acl,}

   #pkts encaps: 0, #pkts encrypt: 0, #pkts digest: 0

   #pkts decaps: 0, #pkts decrypt: 0, #pkts verify: 0

   #pkts compressed: 0, #pkts decompressed: 0

   #pkts not compressed: 0, #pkts compr. failed: 0

   #pkts not decompressed: 0, #pkts decompress failed: 0

   #send errors 0, #recv errors 0

     //由于没有会话建立,所以没有加密的数据包。

    local crypto endpt.: 23.23.23.2, remote crypto endpt.: 12.12.12.1

    path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0

    current outbound spi: 0x0(0)

 

    inbound esp sas:

 

    inbound ah sas:

         

    inbound pcp sas:

 

    outbound esp sas:

 

    outbound ah sas:

 

    outbound pcp sas:

 

 

由武汉分部发起到上海总部的***会话

 

R3-IPSecGW#ping 10.1.1.1 source loopback 0

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.1.1.1,timeout is 2 seconds:

Packet sent with a source address of192.168.1.1

.!!!!

Success rate is 80 percent (4/5),round-trip min/avg/max = 124/146/168 ms

 

 

 

查看isakamp sa ipsec sa

R3-IPSecGW#sho cry isakmp sa

IPv4 Crypto ISAKMP SA

dst             src             state          conn-id slot status

12.12.12.1      23.23.23.2      QM_IDLE           1003    0 ACTIVE

 

IPv6 Crypto ISAKMP SA

 

 

R3-IPSecGW#sho cry ipsec sa

 

interface: FastEthernet0/0

   Crypto map tag: l2l, local addr 23.23.23.2

 

  protected vrf: (none)

  local  ident(addr/mask/prot/port): (192.168.1.0/255.255.255.0/0/0)

  remote ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0)

  current_peer 12.12.12.1 port 500

    PERMIT, flags={origin_is_acl,}

   #pkts encaps: 4, #pkts encrypt: 4, #pkts digest: 4

   #pkts decaps: 4, #pkts decrypt: 4, #pkts verify: 4

    //加密的数据包为上面通的4

     #pkts compressed: 0, #pkts decompressed: 0

   #pkts not compressed: 0, #pkts compr. failed: 0

   #pkts not decompressed: 0, #pkts decompress failed: 0

   #send errors 1, #recv errors 0

 

    local crypto endpt.: 23.23.23.2, remote crypto endpt.: 12.12.12.1

    path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0

    current outbound spi: 0x46633DE0(1180909024)

 

    inbound esp sas:

     spi: 0x2042BFF0(541245424)

       transform: esp-aes esp-sha-hmac ,

       in use settings ={Tunnel, }

       conn id: 5, flow_id: SW:5, crypto map: l2l

       sa timing: remaining key lifetime (k/sec): (4492324/3549)

       IV size: 16 bytes

       replay detection support: Y

       Status: ACTIVE

 

    inbound ah sas:

 

    inbound pcp sas:

 

    outbound esp sas:

     spi: 0x46633DE0(1180909024)

       transform: esp-aes esp-sha-hmac ,

       in use settings ={Tunnel, }

       conn id: 6, flow_id: SW:6, crypto map: l2l

       sa timing: remaining key lifetime (k/sec): (4492324/3549)

       IV size: 16 bytes

       replay detection support: Y

       Status: ACTIVE

 

    outbound ah sas:

 

    outbound pcp sas:

 

此时再让总部ping武汉分部

R1-IPSecGW#ping 192.168.1.1 source loopback0

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to192.168.1.1, timeout is 2 seconds:

Packet sent with a source address of10.1.1.1

!!!!!

Success rate is 100 percent (5/5),round-trip min/avg/max = 96/186/240 ms

说明:

          由于武汉分部发起的会话激活了isakamp saipsec sa,所以现在两个公司可以和对方通信。

 

4.GRE Over IPSec

 

环境:

          还是原拓扑图,实施的是IPSec LAN-to-LAN。现在,上海与武汉公司要进行视频会议(使用的是组播),利用GRE隧道技术建立通道实现两公司私有地址之间的通信。假设这是一个很重要的秘密会议,是不允许公司外部人员知道的,那么我们该怎样用IPSec来保证数据安全呢?

 

我们知道,IPSec ***只能对单播进行加密保护,不支持其他的,如组播。那么要怎么通过IPSec来对上面的组播地址加密保护呢?

 

4.1.还原IPSec LAN-to-LAN

 

//在上个实验的基础上,删除动态IPSec,还原静态的

R1-IPSecGW(config)#inter fa0/0

R1-IPSecGW(config-if)#no crypto map l2l

R1-IPSecGW(config-if)#exit

R1-IPSecGW(config)#

*Sep 6 22:01:35.699: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is OFF

R1-IPSecGW(config)#no crypto map l2l 10

R1-IPSecGW(config)#no crypto dynamic-mapdymap 10

R1-IPSecGW(config)#no crypto isakmp keyfreeit address 0.0.0.0 0.0.0.0

R1-IPSecGW(config)#crypto isakmp key freeitaddress 23.23.23.2

R1-IPSecGW(config)#crypto map l2l 10ipsec-isakmp

% NOTE: This new crypto map will remaindisabled until a peer

       and a valid access list have been configured.

R1-IPSecGW(config-crypto-map)#settransform-set l2l-ipsec

R1-IPSecGW(config-crypto-map)#set peer23.23.23.2

R1-IPSecGW(config-crypto-map)#match address***

R1-IPSecGW(config-crypto-map)#exit

R1-IPSecGW(config)#inte fa0/0

R1-IPSecGW(config-if)#crypto map l2l

R1-IPSecGW(config-if)#exit

R1-IPSecGW(config)#

*Sep 6 22:05:41.087: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON

 

验证连通性

R1-IPSecGW#ping 192.168.1.1 source loopback0

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to192.168.1.1, timeout is 2 seconds:

Packet sent with a source address of10.1.1.1

.!!!!

Success rate is 80 percent (4/5),round-trip min/avg/max = 148/164/188 ms

 

 

4.2.建立GRE隧道

 

 

R1-IPSecGW(config)#inte tunnel 1

R1-IPSecGW(config-if)#ip add 172.16.1.1255.255.255.0

R1-IPSecGW(config-if)#tunnel source12.12.12.1

R1-IPSecGW(config-if)#tunnel destination23.23.23.2

R1-IPSecGW(config-if)#exit

R1-IPSecGW(config)#

 

R3-IPSecGW(config)#inter tunnel 1

R3-IPSecGW(config-if)#ip add 172.16.1.2255.255.255.0

R3-IPSecGW(config-if)#tunnel source23.23.23.2

R3-IPSecGW(config-if)#tunnel destination12.12.12.1

R3-IPSecGW(config-if)#exit

R3-IPSecGW(config)#

 

配置ospf协议,让隧道能够实现两公司之间的通信

R1-IPSecGW(config)#router ospf 1

R1-IPSecGW(config-router)#network172.16.1.0 0.0.0.255 area 0

R1-IPSecGW(config-router)#network 10.1.1.00.0.0.255 area 0

R1-IPSecGW(config-router)#exit

 

R3-IPSecGW(config)#router ospf 1

R3-IPSecGW(config-router)#network172.16.1.0 0.0.0.255 area 0

R3-IPSecGW(config-router)#network192.168.1.0 0.0.0.255 area 0

R3-IPSecGW(config-router)#exit

 

说明:

          这里用ospf协议时因为:动态路由之间邻居关系的建立就是通过发送组播来实现的,方便我们后面的实验。但现实环境中最好是用静态路由,节省设备资源。

 

查看路由表:

R1-IPSecGW#sho ip route

Codes: C - connected, S - static, R - RIP,M - mobile, B - BGP

      D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

      N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

      E1 - OSPF external type 1, E2 - OSPF external type 2

      i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

      ia - IS-IS inter area, * - candidate default, U - per-user static route

      o - ODR, P - periodic downloaded static route

 

Gateway of last resort is 12.12.12.2 tonetwork 0.0.0.0

 

    172.16.0.0/24 is subnetted, 1 subnets

C      172.16.1.0 is directly connected, Tunnel1

    10.0.0.0/24 is subnetted, 1 subnets

C      10.1.1.0 is directly connected, Loopback0

    12.0.0.0/24 is subnetted, 1 subnets

C      12.12.12.0 is directly connected, FastEthernet0/0

    192.168.1.0/32 is subnetted, 1 subnets

O      192.168.1.1 [110/1001] via 172.16.1.2, 00:00:23, Tunnel1

S*  0.0.0.0/0 [1/0] via 12.12.12.2

 

R3-IPSecGW#sho ip route

Codes: C - connected, S - static, R - RIP,M - mobile, B - BGP

      D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

      N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

      E1 - OSPF external type 1, E2 - OSPF external type 2

      i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

      ia - IS-IS inter area, * - candidate default, U - per-user static route

      o - ODR, P - periodic downloaded static route

 

Gateway of last resort is 23.23.23.1 tonetwork 0.0.0.0

 

    23.0.0.0/24 is subnetted, 1 subnets

C      23.23.23.0 is directly connected, FastEthernet0/0

    172.16.0.0/24 is subnetted, 1 subnets

C      172.16.1.0 is directly connected, Tunnel1

    10.0.0.0/32 is subnetted, 1 subnets

O      10.1.1.1 [110/1001] via 172.16.1.1, 00:00:43, Tunnel1

C   192.168.1.0/24 is directly connected, Loopback0

S*  0.0.0.0/0 [1/0] via 23.23.23.1

 

如图,两台路由器都有了对方的私有IP。可以通信了

 

测试:

 

测试之前,先把原先建立的ipsec saisakamp sa清空,验证GRE实现的通信有没有被IPSec加密。

R1-IPSecGW#clear crypto isakmp

R1-IPSecGW#clear crypto sa 

 

R3-IPSecGW#clear crypto isakmp

R3-IPSecGW#clear crypto sa

 

上海与武汉两公司通信,我们直接追踪IP,看是从哪里实现通信的。

R1-IPSecGW#traceroute 192.168.1.1 sourceloopback 0

 

Type escape sequence to abort.

Tracing the route to 192.168.1.1

 

  1172.16.1.2 176 msec *  92 msec

 

//如图,直接是通过GRE隧道传送数据的。

 

 

查看isakamp saipsec sa,看上面的数据是否被ipsec加密保护

R1-IPSecGW#sho crypto isakmp sa

IPv4 Crypto ISAKMP SA

dst             src             state          conn-id slot status

 

IPv6 Crypto ISAKMP SA

 

R1-IPSecGW#sho crypto ips     

R1-IPSecGW#sho crypto ipsec sa

 

interface: FastEthernet0/0

   Crypto map tag: l2l, local addr 12.12.12.1

 

  protected vrf: (none)

  local  ident(addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0)

  remote ident (addr/mask/prot/port): (192.168.1.0/255.255.255.0/0/0)

  current_peer 23.23.23.2 port 500

    PERMIT, flags={origin_is_acl,}

   #pkts encaps: 0, #pkts encrypt: 0, #pkts digest: 0

   #pkts decaps: 0, #pkts decrypt: 0, #pkts verify: 0

   #pkts compressed: 0, #pkts decompressed: 0

   #pkts not compressed: 0, #pkts compr. failed: 0

   #pkts not decompressed: 0, #pkts decompress failed: 0

   #send errors 0, #recv errors 0

 

    local crypto endpt.: 12.12.12.1, remote crypto endpt.: 23.23.23.2

    path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0

    current outbound spi: 0x0(0)

 

    inbound esp sas:

 

    inbound ah sas:

         

    inbound pcp sas:

 

    outbound esp sas:

 

    outbound ah sas:

 

    outbound pcp sas:

//上图显示,sa并没有被激活,也就是说,两公司之间的通信没有被ipsec保护,是不安全的。

 

 

关联GREIPSec,也就是让IPSec实现对GRE隧道数据的保护。对此,实现方式很简单,只需要修改定义的***保护流量就行了(也就是前面说的感兴趣流量)

R1-IPSecGW(config)#ip access-list extended***

R1-IPSecGW(config-ext-nacl)#no 10

R1-IPSecGW(config-ext-nacl)#permit gre host12.12.12.1 host 23.23.23.2

R1-IPSecGW(config-ext-nacl)#exit

 

R3-IPSecGW(config)#ip access-list extended***  

R3-IPSecGW(config-ext-nacl)#no 10

R3-IPSecGW(config-ext-nacl)#permit gre host23.23.23.2 host 12.12.12.1

R3-IPSecGW(config-ext-nacl)#exit

 

设置之后立马查看isakamp saipsec sa

 

R1-IPSecGW#sho crypto isakmp sa

IPv4 Crypto ISAKMP SA

dst             src             state          conn-id slot status

12.12.12.1      23.23.23.2      QM_IDLE           1005    0 ACTIVE

 

IPv6 Crypto ISAKMP SA

 

 

 

R1-IPSecGW#sho crypto ipsec sa

 

interface: FastEthernet0/0

   Crypto map tag: l2l, local addr 12.12.12.1

 

  protected vrf: (none)

  local  ident(addr/mask/prot/port): (12.12.12.1/255.255.255.255/47/0)

  remote ident (addr/mask/prot/port): (23.23.23.2/255.255.255.255/47/0)

  current_peer 23.23.23.2 port 500

    PERMIT, flags={origin_is_acl,}

   #pkts encaps: 10, #pkts encrypt: 10, #pkts digest: 10

   #pkts decaps: 10, #pkts decrypt: 10, #pkts verify: 10

   #pkts compressed: 0, #pkts decompressed: 0

   #pkts not compressed: 0, #pkts compr. failed: 0

   #pkts not decompressed: 0, #pkts decompress failed: 0

   #send errors 0, #recv errors 0

 

    local crypto endpt.: 12.12.12.1, remote crypto endpt.: 23.23.23.2

    path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0

    current outbound spi: 0xF01963A6(4028195750)

 

    inbound esp sas:

     spi: 0xD766FB6F(3613850479)

       transform: esp-aes esp-sha-hmac ,

       in use settings ={Tunnel, }

       conn id: 9, flow_id: SW:9, crypto map: l2l

       sa timing: remaining key lifetime (k/sec): (4426425/3582)

       IV size: 16 bytes

       replay detection support: Y

       Status: ACTIVE

         

    inbound ah sas:

         

    inbound pcp sas:

         

    outbound esp sas:

     spi: 0xF01963A6(4028195750)

       transform: esp-aes esp-sha-hmac ,

       in use settings ={Tunnel, }

       conn id: 10, flow_id: SW:10, crypto map: l2l

       sa timing: remaining key lifetime (k/sec): (4426425/3582)

       IV size: 16 bytes

       replay detection support: Y

       Status: ACTIVE

         

    outbound ah sas:

         

    outbound pcp sas:

 

查看ACL匹配的流量

R1-IPSecGW#sho ip access-lists

Extended IP access list NAT

   10 deny ip 10.1.1.0 0.0.0.255 192.168.1.0 0.0.0.255 (90 matches)

   20 permit ip 10.1.1.0 0.0.0.255 any

Extended IP access list ***

   10 permit gre host 12.12.12.1 host 23.23.23.2 (53 matches)

 

说明:

           如图,更改之后,立马有反应了,sa被自动激活了。这是因为与GRE关联之后,GRE中传送的所有数据被ipsec保护,包括ospf发送的Hello包,而自动激活就是因为ospfHello发送的缘故。这就是上面所说的方便实验的原因。

 

上海、武汉公司之间通信验证

R1-IPSecGW#ping 192.168.1.1 source loopback0

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to192.168.1.1, timeout is 2 seconds:

Packet sent with a source address of10.1.1.1

!!!!!

Success rate is 100 percent (5/5),round-trip min/avg/max = 120/147/176 ms

 

这样,GRE隧道内的数据就被IPsec保护了。这样也就实现了两公司之间通信数据的安全性。

 

 

.实验总结

 

  • IPSec之所以安全,是由其特性决定的:加密、数据完整性、对等体身份认证、反重放保护;

  • IPSec可以和一般的隧道协议一起使用,也可以单独作为隧道协议建立隧道

  • IPSec由两个阶段组成,第一阶段协商加密安全措施保证第二阶段安全,不对具体数据操作;第二阶段对用户的具体数据加密,保证安全性;

  • IPSec协商过程也由两个阶段组成:主模式、快速模式;

  • IPSec的配置大体包含以下几个步骤:

                                配置IKE策略;

                                定义认证标示;

                               配置IPSectransform

                                定义感兴趣流量;

                                创建crypto map

                                crypto map应用于接口。

  • IPsec只能对单播加密保护,通过与隧道技术的结合来保证如组播的安全性