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就是最理想的。