ASA 5550 ××× 配置

本文主要介绍IPSec ××× 的实现过程,最后会介绍IPsec ×××SSL ×××L2TP ×××的配置,会给出简单的排错方法。好了,休息一下开始用功吧~

×××技术理解

×××被定义为通过一个公用网络(通常是因特网)建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定隧道。使用这条隧道可以对数据进行几倍加密达到安全使用互联网的目的。

×××主要采用隧道技术、加解密技术、密钥管理技术和使用者与设备身份认证技术

隧道技术

就隧道技术有多种实现方式,也就存在多种隧道协议,隧道可以实现远程网络之间通过私有IP地址互访。

 

隧道协议目前共有: 

GREGeneric Routing Encapsulation

IP Security (IPsec)

Secure Sockets Layer/Transport Layer Security (SSL/TLS)

××× (Web×××)

Point-to-Point Tunneling Protocol (PPTP)

Layer Two Tunneling Protocol (L2TP)

 

加解密技术

加解密算法:保证数据的安全性

DES(56bit)3DES(168bit)AES 128AES 192AES 256

HMACHash message authentication code:数据检验,防止被改动

MD5(128bit)SHA-1(156bit)

密钥管理技术

保证密钥的安全,因为只要密钥泄露,就全玩完了

Group 1 密钥长度为768 bit,也是默认的密钥长度; 

Group 2密钥长度为1024 bit; 

Group 5密钥长度为1536 bit

认证技术

认证可以有效确保会话是来自于真正的对等体而不是***者,因为如果最开始本身就是在和一个***者或***进行会话和协商,那么后面的所有工作都是白废,所以保证只和合法的对等体会话是非常重要的

Pre-Shared Keys (PSK)

Public Key Infrastructure (PKI) using X.509 Digital Certificates

RSA encrypted nonce

IPsec ×××

概述

在实施×××时,除了实现隧道功能以外,还要实现数据安全,两者缺一不可;在数据安全方面,其实就是要让数据加密传输,至于如何对数据进行加密传输,有一个使用最广泛,且最经典的技术方案,这就是IPsecIP Security),IPsec最突出,也是最主要的功能就是保证×××数据的安全传输。

 

IPsec定义了使用什么样的方法来管理相互之间的认证,以及使用什么样的方法来保护数据,IPsec只是定义了一些方法,IPsec本身并不是一个协议,就像OSIOpen System Interconnect)参考模型一样,OSI并不是一个协议,OSI只是一个框架,一个模型,OSI里面包含着多个协议,如TCPUDPIPICMP等等;IPsec中同样也包含着为之服务的各种协议去实现IPsec要完成的各个功能,只有这样,IPsec才能起到作用。

 

IPsec能够起到的功能有:

数据源认证(Data origin authentication

保护数据完整性(Data integrity

保证数据私密性(Data confidentiality

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

防止数据被重放(Anti-Replay

 

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

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

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

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

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

IPsec 协议分类

IPsec服务的总共有三个协议:

IKEInternet Key Exchange

ESPEncapsulating Security Protocol

AHAuthentication Header

 

虽然总共是三个协议,但分为两类:

IKE是个混合协议,其中包含部分Oakley协议以及内置在ISAKMPInternet Security Association and Key Management Protocol协议中的部分SKEME协议,所以IKE也可写为ISAKMP/Oakley,它是针对密钥安全的,是用来保证密钥的安全传输、交换以及存储,主要是对密钥进行操作,并不对用户的实际数据进行操作。

 

ESPEncapsulating Security Protocol)和AHAuthentication Header)主要工作是如何保护数据安全,也就是如何加密数据,是直接对用户数据进行操作的。

 

因为 在实施×××时,除了实现隧道功能以外,还要实现数据安全,两者缺一不可;在之前我的提到的隧道技术中,只能实现隧道而不能实现安全,而IPSec则可以为隧道提供数据保护功能,从而构建一个完整的×××体系。IPsec除了能够为隧道提供数据保护来实现×××之外,IPsec还可以自己单独作为隧道协议来提供隧道的建立,如果IPsec自己单独作为隧道协议来使用,那么IPsec就不需要借助任何其它隧道协议就能独立实现×××功能;IPsec到底是只使用数据保护功能再配合其它隧道协议,还是自己独立实现隧道来完成×××功能,可以由配置者自己决定。

 

IKE

IEK构架一个完善的方案体系,以保证×××之间的密钥与数据的安全。

SA

       IPsec的所有会话都是在通道中传输的,包括协商密钥,传递用户数据;这样的通道称为SASecurity Association),SA并不是隧道,而是一组规则,就好比是需要会话的对等体之间必须遵守的一份合同。SA中的规则能够保证所有数据的安全传递,因此SA中包含了之前提到的保证数据和密钥安全时必不可少的认证、加密等安全策略,这些需要用到的技术,都要在SA中定义。

因为×××之间传输的数据需要加密才能保证安全,并且加密时所用到的密钥要更加安全,所以对待密钥,我们也需要付出巨大的努力。在密钥的安全上,由IKE负责,而数据的安全,则由IPsec负责,虽然是这么说,但需要注意,IKE也是IPsec不可分割的一部分,IKE不是独立存在的。

SA并不是只有一个,由于密钥安全和数据安全我们是分开对待的,所以SA有两个,分别是定义了如何保护密钥和如何保护数据,这两个SA就是:

 

ISAKMP Security AssociationIKE SA

IPsec Security AssociationIPsec SA

 

每个SA都有lifetime,过期后SA便无效,lifetime使用time (second) volume limit (byte count)来衡量,在建立SA时就会协商出来,双方会比对,最终取值小的一方;通常是时间先过期,在要过期最后120秒之前,会自动重建另一条SA,避免活动的SA到期后无法传输数据,这样就能实现平滑过渡,以丢最少的包。

 

注:IKE SA等同于ISAKMP SA

 

IKE SA

 

IKE SA要保护的对象是与密钥有关的,IKE并不直接关心用户数据,并且IKE SA是为安全协商IPsec SA服务的。

IKE SAlifetime默认为86,400 seconds,即一天,默认没有volume limit

 

IPsec SA

 

用户的数据流量真正是在IPsec SA上传递的,而不是在IKE SAIPsec SA直接为用户数据流服务,IPsec SA中的所有安全策略都是为了用户数据流的安全。

每个IPsec对等体都有一对IPsec SA,一个是去往远程目的地的,而另一个是从远程回来的,也就是一进一出,都存放在本地SA Database中。

 

IPsec SAlifetime默认为3600 seconds,即1小时;默认volume limit4,608,000 Kbytes,即4.608 Gbyte

 

因为SA有两个,分为IKE SAIPsec SA,两个SA分别定义了如何保护密钥以及如何保护数据,其实这两个SA都是由IKE建立起来的,所以将IKE的整个运行过程分成了两个Phase(阶段),即

IKE Phase One

IKE Phase Two

IKE Phase One

IKE Phase One的主要工作就是建立IKE SAISAKMP SA),IKE SA的服务对象并不是用户数据,而是密钥流量,以及为IPsec SA服务的;IKE SA的协商阶段被称为main mode(主模式),IKE也是需要保护自己的流量安全的(这些流量并非用户流量),所以IKE SA之间也需要协商出一整套安全策略,否则后续的密钥和IPsec SA的建立就不能得到安全保证;IKE SA之间需要协商的套安全策略包括:

认证方式(Authentication

共总有Pre-Shared Keys (PSK)Public Key Infrastructure (PKI)RSA encrypted nonce,默认为PKI

加密算法(Encryption

总共有DES3DESAES 128AES 192AES 256,默认为DES

Hash算法(HMAC

总共有SHA-1MD5,默认为SHA-1

密钥算法(Diffie-Hellman

Groups 1 768 bit),Group 21024 bit),Group 51536 bit),默认为Groups 1 768 bit)。

 

Lifetime

随用户定义,默认为86,400 seconds,但没有volume limit

 

NAT穿越(NAT Traversal

默认为开启状态,无须手工配置。crypto isakmp nat-traversal

                                                                   

IKE Phase Two

IKE Phase Two的目的是要建立IPsec SA,由于IKE SA的服务对象并不是用户数据,而是密钥流量,以及为IPsec SA服务的,IKE SA是为IPsec SA做准备的,所以如果没有IKE SA,就不会有IPsec SAIPsec SA是基于IKE SA来建立的,建立IPsec SA的过程称为 快速模式(quick mode)。IPsec SA才是真正为用户数据服务的,用户的所有流量都是在IPsec SA中传输的,用户流量靠IPsec SA来保护,IPsec SA同样也需要协商出一整套安全策略,其中包括:

 

加密算法(Encryption

总共有DES3DESAES 128AES 192AES 256,默认为DES

 

Hash算法(HMAC

总共有SHA-1MD5,默认为SHA-1

 

Lifetime

随用户定义,默认为3600 seconds,即1小时;默认volume limit4,608,000 Kbytes,即4.608 Gbyte

 

IPsec Mode

共有Tunnel modeTransport mode,默认为Tunnel mode

 

从上可以看出,IPsec SA中没有协商认证方式(Authentication)和密钥算法(Diffie-Hellman),因为IKE SA时已经认证过了,所以后面已经不需要再认证;并且密钥是在IKE SA完成的,所以在IPsec SA中也就谈不了密钥算法了,但也可以强制再算。

 

ESPEncapsulating Security Protocol

  IPsec服务的协议总共有三个:IKEInternet Key Exchange),ESPEncapsulating Security Protocol)以及AHAuthentication Header),其中IKE是针对密钥安全的,是用来保证密钥的安全传输、交换以及存储,主要是对密钥进行操作,并不对用户的实际数据进行操作,如果要保护用户数据,需要靠ESPEncapsulating Security Protocol)和(Authentication Header),ESPAH主要工作是如何保护数据安全,也就是如何加密数据,是直接对用户数据进行操作的,IPsec对用户数据的保护,靠ESPAH的封装。

 

  ESP对用户数据包的封装过程如下:

ASA 5550 ××× 配置(二之一)_第1张图片

ASA 5550 ××× 配置(二之一)_第2张图片

ESP包头中使用IP协议号50来标识,意为IP协议号为50的数据包都被当作ESP数据包来处理;从上图中也可以看出,即使是封装ESP,也分为两种情况,因为IPsec本身分为两种模式,所以在进行安全封装数据包时,不同的模式,也会有不同的封装格式。

从图中还可以看出,原始数据包经过ESP封装之后,只是数据被加密了,而原始的IP包头是没有改变的,虽然是这样,但也会使用其它方式,如HMAC来保证数据的安全性,其中包括:

 

保护数据完整性(Data integrity

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

防止数据被重放(Anti-Replay

同样也提供数据认证(Data authentication

                                                                   

AHAuthentication Header

 

AH对用户数据包的封装过程如下:

 

ASA 5550 ××× 配置(二之一)_第3张图片

AH包头中使用IP协议号51来标识,从图中可以发现,原始数据包经过AH封装之后,并没有被加密,这是因为AH封装并不使用常规的方法去加密数据部分,而是采用隐藏数据的方法,也就是相当于加一个防改写的封条给数据,很显然,这简直就是掩耳盗铃,如果数据机密要求高,千万不要单独使用AH封装。

 

ESPAH结合

 

在一个IPsec Security Association (SA)中可以同时使用ESPAH,而ESP拥有和AH相同的认证功能,以及数据保护方法,所以只使用ESP就是最理想的。