* 博文大綱 * 虛擬專用網實現的各類安全特性 * 理解ISAKMP/IKE兩個階段的協商創建過程
1.虛擬專用網概述算法
虛擬專用網技術起初是爲了解決明文數據在網絡上傳輸所帶來安全隱患而產生的,數據庫
2.虛擬專用網的定義安全
虛擬專用網就是在兩個實體之間創建的一種受保護的鏈接,這兩個能夠經過點到點的鏈路直接相連,但一般狀況下它們會相隔較遠的距離網絡
3.虛擬專用網的模式與類型ide
(1)虛擬專用網的鏈接模式
有兩種基本的鏈接模式:分爲傳輸模式和隧道模式,函數
傳輸模式一個最顯著的特色就是,在整個虛擬專用網的過程當中,IP包頭並無被封裝進去,這就意味着從源端到目的端數據始終使用原有IP地址進行通訊。測試
隧道模式與傳輸模式的區別明顯,隧道模式保護IP包頭與數據,傳輸模式只保護數據ui
4.虛擬專用網的類型加密
站點到站點虛擬專用網就是經過隧道模式在虛擬專用網網關之間保護兩個或多個站點之間的流量,站點的流量一般是指局域網之間(L2L)的通訊流量。
如圖:設計
遠程訪問虛擬專用網一般用於單用戶設備與虛擬專用網的網關之間的通訊鏈接,單用戶設備通常爲一臺PC或小型辦公網絡等
5.加密算法
DES 3DES AES
加密就是一種將數據轉化成另外一種形式的過程,若是不瞭解加密算法,解密是不可能得
數據加密過程以下:
1.發送方和接收方共享密鑰「k」
2.發送方得虛擬專用網網關經過加密函數E將明文數據M加密爲密文數據
3.接收方經過解密函數D將數據還原文明文數據「M」
DES算法
DES算法曾經在虛擬專用網領域應用很廣,屬於IBM公司的研發產品,其密鑰長度爲64位,其中8位用於奇偶校驗,因此實際有效長度爲56位。雖然該算法目前沒有找到更好的方法破解,可是經過一些技術手段已經能夠在較短的時間內破解DES算法,因此在實際工程實施過程當中已經不建議使用該種算法
3DES算法
理論上將3DES算法就是DES算法的加強版本,由於3DES使用了三個階段的DES,即同時使用三個不一樣的56位密鑰,因此至關於產生了一個168位的有效密鑰長度,這種級別的密鑰目前尚未計算機有能力在較短期內破解,並且其執行效率雖然在軟件環境中比較慢,可是在硬件環境中並不明顯
AES算法
3DES算法雖然目前爲止是安全的,但隨着計算機硬件的更新,總有一天也會變的不安全。AES算法比3DES算法更安全,它支持12八、192和256爲密鑰程度,有效的密鑰長度可達千位。更重要的是,AES算法那採用更爲高效的編寫方法,對CPU的佔有lv較少,因此諸如IPSec 虛擬專用網等實際工程的實施過程當中趨向於使用AES來提供更好的加密功能
1)算法原理
非對稱算法使用公鑰和私鑰兩個不一樣的密鑰進行加密和解密。用一個密鑰加密的數據僅能被另外一個密鑰解密,且不能從一個密鑰推算出另外一個密鑰。非對稱加密算法數據加密、解密過程如圖:
算法的優、缺點
非對稱加密算法最大的優點就在於其安全性。目前爲止,尚未任何一種方式能夠在合理的時間範圍內破解該算法。
非對稱加密的算法也不是完美的,因爲其計算過程複雜,它的計算效率要比對稱加密算法低不少。
DH算法
經常使用的非對稱算法有RSA、DSA、DH。前兩種算法經常使用於驗證功能,而DH算法通常被用來實現IPSec中的internet密鑰交換(IKE)協議。
6.數據報文驗證
數據報文驗證包括兩個方面:數據庫來源驗證(身份驗證)和報文完整性驗證。
MD5和SHA
MD5(信息——摘要算法)在REC 1321中有明確規定,它建立了一個128位的數字簽名,是目前HMAC功能中最爲普遍的一種算法
7.IPSec 虛擬專用網
1)流量觸發IPSec
通常來講,IPSec創建過程是由對等體之間發送的流量觸發的,一旦有虛擬專用網流量通過虛擬專用網網關,鏈接過程便開始創建,固然,手動配置也能夠實現這一過程,在配置設備實現此步驟前,網絡工程師須要明確哪些流量須要被「保護」。
2)創建管理鏈接(階段1)
IPSec使用ISAKMP/IKE階段1來構建一個安全的管理鏈接,這裏須要注意的是,這個管理鏈接只是一個準備工做,它不被用來傳輸實際的數據。在配置設備實現此步驟前,網絡工程師須要明確設備如何實現驗證,使用何種加密機認證算法,使用哪一種DH組等問題。
3)創建數據鏈接(階段2)
PSec基於安全的管理鏈接協商創建安全的數據鏈接,而ISAKMP/IKE階段2就是用來完成這個任務的,數據鏈接用於傳輸真正的用戶數據。在配置設備實現此步驟前,網絡工程師須要明確使用何種安全協議,針對具體的安全協議應使用加密或驗證算法,以及數據的傳輸模式(隧道模式或傳輸模式)等問題。
通過IPSec創建的三部曲後,虛擬專用網流量即可以按照協商的結果被加密/解密了,可是虛擬專用網鏈接並非一次性的,不管是管理鏈接仍是數據庫鏈接都有一個生存週期與之關聯,一旦到期鏈接便會被停止。若是須要繼續傳輸虛擬專用網數據,鏈接還須要從新被構建,這種設計主要是處於安全性的考慮。
ISAKMP/IKE階段1
三個任務: * 協商採用任何方式創建管理鏈接 * 經過DH算法共享密鑰信息 * 對等體彼此進行身份驗證
ISAKMP/IKE階段1創建過程
SAKMP/IKE傳輸集就是一組用來保護管理鏈接的安全措施,主要包括如下幾個方面: 加密算法:DES、3DES和AES; HMAC算法:MD5或SHA-1; 設備驗證的類型:預共享密鑰; DH密鑰組:Cisco支持一、二、五、7(Cisco路由器不支持密鑰組7); 管理鏈接的生存週期;
配置安全策略
ISAKMP/IKE策略包含如下參數:策略的序列號、加密算法、散列算法、驗證方法、DH組、生存週期等
R1(config)#crypto isakmp policy 1 //用於創建創建ISAKMP/IKE的管理鏈接策略; //每一個策略對應一個序列號,範圍從1~10000,數值越低,優先級越高; R1(config-isakmp)#encryption des //用於指定管理鏈接創建的最後兩個報文(身份驗證)採用何種加密算法(des、3des、aes) R1(config-isakmp)#hash sha //指定了驗證過程採用的散列算法(sha、md5) R1(config-isakmp)#authentication pre-share //指定設備身份驗證的方式{pre-shara(預共享密鑰)| rsa-encr | rsa-sig} R1(config-isakmp)#group 1 //用於指定DH密鑰組,默認使用DH1; //組號也大,算法越安全,佔用設備的資源也就越多。範圍(一、二、五、1四、1五、16) R1(config-isakmp)#lifetime 86400 //指定管理鏈接的生存週期,默認值爲86400s(24小時) R1#show crypto isakmp policy //查看配置安全策略的相關配置 Global IKE policy Protection suite of priority 1 //這裏都是策略1指定的各項參數 encryption algorithm: DES - Data Encryption Standard (56 bit keys). hash algorithm: Secure Hash Standard authentication method: Pre-Shared Key Diffie-Hellman group: #1 (768 bit) lifetime: 86400 seconds, no volume limit Default protection suite //這裏則顯示了設備默認的配置參數 encryption algorithm: DES - Data Encryption Standard (56 bit keys). hash algorithm: Secure Hash Standard authentication method: Rivest-Shamir-Adleman Signature Diffie-Hellman group: #1 (768 bit) lifetime: 86400 seconds, no volume limit
配置預共享密鑰
R1(config)#crypto isakmp key 0 123456 address 192.168.1.1 //其中0表示明文,6表示密文 //123456就是密鑰的具體內容 //192.168.1.1就是對端與之共享密鑰的對等體設備地址 //IP地址後面若是不加子網掩碼的話,默認使用32位掩碼 R1#show crypto isakmp key //查看預共享密鑰的配置 Keyring Hostname/Address Preshared Key //明文狀態下,若是是密文狀態下,密鑰內容將不會顯示 default 192.168.1.1 123456
ISAKMP/IKE階段2
ISAKMP/IKE階段2主要是在兩個IPSec對等體間創建數據鏈接,其主要完成如下任務: 定義對等體間須要保護何種流量; 定義用來保護數據的安全協議; 定義傳輸模式; 定義數據鏈接的生存週期及密鑰刷新的方式;
IPSec對等體通常是經過ACL來匹配那些須要加密傳輸的虛擬專用網流量。
ISAKMP/IKE階段2創建過程
SA鏈接由三個要素定義: 安全參數索引(SPI):用於惟一標識每條SA鏈接; 安全協議的類型:IPSec定義了兩種安全協議,即AH(認證頭協議)和ESP(封裝安全載荷協議); 目的IP地址;
ISAKMP/IKE階段2的傳輸集
數據鏈接的傳輸集定義了數據鏈接時如何被保護的。與管理鏈接的傳輸集相似,對等體設備能夠保存一個或多個傳輸集,但其具體內容不一樣: 安全協議:AH協議、ESP協議; 鏈接模式:隧道模式、傳輸模式; 加密方式:對於ESP而言,有DES、3DES、AES-12八、AES-19二、AES-256或不可以使用加密算法; 驗證方式:MD5或SHA-1;
ISAKMP/IKE階段2的安全協議
IPSec的數據鏈接能夠經過安全協議實現對數據鏈接的保護:AH協議和ESP協議,能夠經過其中的一個協議來實現數據的加密和驗證,如使用ESP協議;也可使用兩個協議一塊兒來實現。AH使用IP協議號51,ESP使用IP協議號50。
8.配置實現IPSec 虛擬專用網
要求:
(1)如上圖所示,配置相關的地址,使用路由器充當PC機。除了ISP不用配置默認路由,其餘都須要配置默認路由。
(2)分別在R2和R4上配置Ipsec虛擬專用網,注意配置相關的參數須要一致。
(3)在R1上ping R5 測試是否能通訊。
(4)使用NAT實現,內部主機能訪問ISP。
先配置IP,r1,r2,r4,r5都作下一跳
如r1:
ip route 0.0.0.0 0.0.0.0 192.168.1.1
在r2上配置管理鏈接
crypto isakmp policy 1 encr aes 加密算法 hash sha 認證算法 authentication pre-share 聲明設備認證方式爲「預先共享密鑰」 group 2 採用DH算法的強度爲group2 lifetime 10000 管理鏈接生存週期
crypto isakmp key benet.123 address 201.0.0.2 配置「預先共享密鑰」
access-list 101 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255 (虛擬專用網保護的流量) crypto ipsec transform-set test-set ah-sha-hmac esp-aes (數據鏈接協商參數) crypto map test-map 1 ipsec-isakmp 將數據鏈接相關配置設定爲MAP set peer 201.0.0.2 虛擬專用網對端地址 set transform-set test-set 數據傳輸採用的傳輸集 match address 101 匹配的ACL
將MAP在外部接口應用: int F1/0 crypto map test-map
在r4上配置
crypto isakmp policy 1 encr aes 加密算法 hash sha 認證算法 authentication pre-share 聲明設備認證方式爲「預先共享密鑰」 group 2 採用DH算法的強度爲group2 lifetime 10000 管理鏈接生存週期 crypto isakmp key benet.123 address 201.0.0.2 配置「預先共享密鑰」
access-list 101 permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255 (虛擬專用網保護的流量) crypto ipsec transform-set test-set ah-sha-hmac esp-aes (數據鏈接協商參數) crypto map test-map 1 ipsec-isakmp 將數據鏈接相關配置設定爲MAP set peer 200.0.0.1 虛擬專用網對端地址 set transform-set test-set 數據傳輸採用的傳輸集 match address 101 匹配的ACL 三、將MAP在外部接口應用: int F0/0 crypto map test-map
作完上面 r1與r5能夠經過虛擬專用網互通
解決內部主機訪問internet
access-list 102 deny ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255(拒絕虛擬專用網的流量) access-list 102 permit ip any any (放行全部流量) 註明:當有NAT和虛擬專用網時,先匹配NAT,後匹配虛擬專用網。因此要拒絕虛擬專用網的流量。 ip nat inside source list 102 interface FastEthernet1/0 overload 接口上啓用nat功能: int f0/0 ip nat inside int f1/0 ip nat outside
這時r1就能訪問r3了
r5訪問r3配置以下
access-list 102 deny ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255(拒絕虛擬專用網的流量) access-list 102 permit ip any any (放行全部流量) ip nat inside source list 102 interface FastEthernet0/0 overload 接口上啓用nat功能: int f1/0 ip nat inside int f0/0 ip nat outside
完成!!!!!!!!!!