ASA 5550 ××× 配置
本文主要介绍IPSec ××× 的实现过程,最后会介绍IPsec ×××、SSL ×××和L2TP ×××的配置,会给出简单的排错方法。好了,休息一下开始用功吧~
×××技术理解
×××被定义为通过一个公用网络(通常是因特网)建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定隧道。使用这条隧道可以对数据进行几倍加密达到安全使用互联网的目的。
×××主要采用隧道技术、加解密技术、密钥管理技术和使用者与设备身份认证技术。
隧道技术
就隧道技术有多种实现方式,也就存在多种隧道协议,隧道可以实现远程网络之间通过私有IP地址互访。
隧道协议目前共有:
GRE(Generic 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 128,AES 192,AES 256
HMAC(Hash 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 ×××
概述
在实施×××时,除了实现隧道功能以外,还要实现数据安全,两者缺一不可;在数据安全方面,其实就是要让数据加密传输,至于如何对数据进行加密传输,有一个使用最广泛,且最经典的技术方案,这就是IPsec(IP Security),IPsec最突出,也是最主要的功能就是保证×××数据的安全传输。
IPsec定义了使用什么样的方法来管理相互之间的认证,以及使用什么样的方法来保护数据,IPsec只是定义了一些方法,而IPsec本身并不是一个协议,就像OSI(Open System Interconnect)参考模型一样,OSI并不是一个协议,OSI只是一个框架,一个模型,OSI里面包含着多个协议,如TCP,UDP,IP,ICMP等等;IPsec中同样也包含着为之服务的各种协议去实现IPsec要完成的各个功能,只有这样,IPsec才能起到作用。
IPsec能够起到的功能有:
数据源认证(Data origin authentication)
保护数据完整性(Data integrity)
保证数据私密性(Data confidentiality)
防止中间人***(Man-in-the-Middle)
防止数据被重放(Anti-Replay)
数据源认证保证数据是从真正的发送者发来的,而不是来自于第三方***者。
保护数据完整性是保证数据不会被***者改动。
保证数据私密性是保证数据不会被***者读取。
防止中间人***是防止数据被中间人截获。
防止数据被重放也可以认为是防止数据被读取和改动。
IPsec 协议分类
为IPsec服务的总共有三个协议:
IKE(Internet Key Exchange)
ESP(Encapsulating Security Protocol)
AH(Authentication Header)
虽然总共是三个协议,但分为两类:
IKE是个混合协议,其中包含部分Oakley协议以及内置在ISAKMP(Internet Security Association and Key Management Protocol协议中的部分SKEME协议,所以IKE也可写为ISAKMP/Oakley,它是针对密钥安全的,是用来保证密钥的安全传输、交换以及存储,主要是对密钥进行操作,并不对用户的实际数据进行操作。
ESP(Encapsulating Security Protocol)和AH(Authentication Header)主要工作是如何保护数据安全,也就是如何加密数据,是直接对用户数据进行操作的。
因为 在实施×××时,除了实现隧道功能以外,还要实现数据安全,两者缺一不可;在之前我的提到的隧道技术中,只能实现隧道而不能实现安全,而IPSec则可以为隧道提供数据保护功能,从而构建一个完整的×××体系。IPsec除了能够为隧道提供数据保护来实现×××之外,IPsec还可以自己单独作为隧道协议来提供隧道的建立,如果IPsec自己单独作为隧道协议来使用,那么IPsec就不需要借助任何其它隧道协议就能独立实现×××功能;IPsec到底是只使用数据保护功能再配合其它隧道协议,还是自己独立实现隧道来完成×××功能,可以由配置者自己决定。
IKE
IEK构架一个完善的方案体系,以保证×××之间的密钥与数据的安全。
SA
IPsec的所有会话都是在通道中传输的,包括协商密钥,传递用户数据;这样的通道称为SA(Security Association),SA并不是隧道,而是一组规则,就好比是需要会话的对等体之间必须遵守的一份合同。SA中的规则能够保证所有数据的安全传递,因此SA中包含了之前提到的保证数据和密钥安全时必不可少的认证、加密等安全策略,这些需要用到的技术,都要在SA中定义。
因为×××之间传输的数据需要加密才能保证安全,并且加密时所用到的密钥要更加安全,所以对待密钥,我们也需要付出巨大的努力。在密钥的安全上,由IKE负责,而数据的安全,则由IPsec负责,虽然是这么说,但需要注意,IKE也是IPsec不可分割的一部分,IKE不是独立存在的。
SA并不是只有一个,由于密钥安全和数据安全我们是分开对待的,所以SA有两个,分别是定义了如何保护密钥和如何保护数据,这两个SA就是:
ISAKMP Security Association(IKE SA)
IPsec Security Association(IPsec 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 SA的lifetime默认为86,400 seconds,即一天,默认没有volume limit。
IPsec SA
用户的数据流量真正是在IPsec SA上传递的,而不是在IKE SA;IPsec SA直接为用户数据流服务,IPsec SA中的所有安全策略都是为了用户数据流的安全。
每个IPsec对等体都有一对IPsec SA,一个是去往远程目的地的,而另一个是从远程回来的,也就是一进一出,都存放在本地SA Database中。
IPsec SA的lifetime默认为3600 seconds,即1小时;默认volume limit为4,608,000 Kbytes,即4.608 Gbyte。
因为SA有两个,分为IKE SA和IPsec SA,两个SA分别定义了如何保护密钥以及如何保护数据,其实这两个SA都是由IKE建立起来的,所以将IKE的整个运行过程分成了两个Phase(阶段),即 :
IKE Phase One
IKE Phase Two
IKE Phase One
IKE Phase One的主要工作就是建立IKE SA(ISAKMP 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)
总共有DES,3DES,AES 128,AES 192,AES 256,默认为DES。
Hash算法(HMAC)
总共有SHA-1,MD5,默认为SHA-1。
密钥算法(Diffie-Hellman)
Groups 1 (768 bit),Group 2(1024 bit),Group 5(1536 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 SA;IPsec SA是基于IKE SA来建立的,建立IPsec SA的过程称为 快速模式(quick mode)。IPsec SA才是真正为用户数据服务的,用户的所有流量都是在IPsec SA中传输的,用户流量靠IPsec SA来保护,IPsec SA同样也需要协商出一整套安全策略,其中包括:
加密算法(Encryption)
总共有DES,3DES,AES 128,AES 192,AES 256,默认为DES。
Hash算法(HMAC)
总共有SHA-1,MD5,默认为SHA-1。
Lifetime
随用户定义,默认为3600 seconds,即1小时;默认volume limit为4,608,000 Kbytes,即4.608 Gbyte。
IPsec Mode
共有Tunnel mode和Transport mode,默认为Tunnel mode。
从上可以看出,IPsec SA中没有协商认证方式(Authentication)和密钥算法(Diffie-Hellman),因为IKE SA时已经认证过了,所以后面已经不需要再认证;并且密钥是在IKE SA完成的,所以在IPsec SA中也就谈不了密钥算法了,但也可以强制再算。
ESP(Encapsulating Security Protocol)
为IPsec服务的协议总共有三个:IKE(Internet Key Exchange),ESP(Encapsulating Security Protocol)以及AH(Authentication Header),其中IKE是针对密钥安全的,是用来保证密钥的安全传输、交换以及存储,主要是对密钥进行操作,并不对用户的实际数据进行操作,如果要保护用户数据,需要靠ESP(Encapsulating Security Protocol)和(Authentication Header),ESP和AH主要工作是如何保护数据安全,也就是如何加密数据,是直接对用户数据进行操作的,IPsec对用户数据的保护,靠ESP和AH的封装。
ESP对用户数据包的封装过程如下:
ESP包头中使用IP协议号50来标识,意为IP协议号为50的数据包都被当作ESP数据包来处理;从上图中也可以看出,即使是封装ESP,也分为两种情况,因为IPsec本身分为两种模式,所以在进行安全封装数据包时,不同的模式,也会有不同的封装格式。
从图中还可以看出,原始数据包经过ESP封装之后,只是数据被加密了,而原始的IP包头是没有改变的,虽然是这样,但也会使用其它方式,如HMAC来保证数据的安全性,其中包括:
保护数据完整性(Data integrity)
防止中间人***(Man-in-the-Middle)
防止数据被重放(Anti-Replay)
同样也提供数据认证(Data authentication)
AH(Authentication Header)
AH对用户数据包的封装过程如下:
AH包头中使用IP协议号51来标识,从图中可以发现,原始数据包经过AH封装之后,并没有被加密,这是因为AH封装并不使用常规的方法去加密数据部分,而是采用隐藏数据的方法,也就是相当于加一个防改写的封条给数据,很显然,这简直就是掩耳盗铃,如果数据机密要求高,千万不要单独使用AH封装。
ESP和AH结合
在一个IPsec Security Association (SA)中可以同时使用ESP和AH,而ESP拥有和AH相同的认证功能,以及数据保护方法,所以只使用ESP就是最理想的。