“Internet 協議安全性 (IPSec)”是一種開放標準的框架結構,通過使用加密的安全服務以確保在 Internet 協議 (IP) 網絡上進行保密而安全的通訊。Microsoft? Windows? 2000、Windows XP 和 Windows Server 2003 家族實施 IPSec 是基于“Internet 工程任務組 (IETF)”IPSec 工作組開發的標準。
IPSec(InternetProtocolSecurity)是安全聯網的長期方向。它通過端對端的安全性來提供主動的保護以防止專用網絡與 Internet 的攻擊。在通信中,只有發送方和接收方才是唯一必須了解 IPSec 保護的計算機。在 Windows 2000、Windows XP 和 Windows Server 2003 家族中,IPSec 提供了一種能力,以保護工作組、局域網計算機、域客戶端和服務器、分支機構(物理上為遠程機構)、Extranet 以及漫游客戶端之間的通信。
IPSec是IETF(Internet Engineering Task Force,Internet工程任務組)的IPSec小組建立的一組IP安全協議集。IPSec定義了在網際層使用的安全服務,其功能包括數據加密、對網絡單元的訪問控制、數據源地址驗證、數據完整性檢查和防止重放攻擊。
IPSec的安全服務要求支持共享密鑰完成認證和/或保密,并且手工輸入密鑰的方式是必須要支持的,其目的是要保證IPSec協議的互操作性。當然,手工輸入密鑰方式的擴展能力很差,因此在IPSec協議中引入了一個密鑰管理協議,稱Internet密鑰交換協議——IKE,該協議可以動態認證IPSec對等體,協商安全服務,并自動生成共享密鑰。
ipsec配置流程
IPsec-VPN--virtual private network 什么是VPN--虛擬專用網
VPN作用--通過公網實現遠程連接,將私有網絡聯系起來 VPN的類型:
1、overlay的VPN,例如IPsec-VPN
2、peer-to-peer的VPN,例如MPLS-VPN 還可以分為二層VPN和三層VPN IPsec-VPN是三層的VPN IPsec-VPN的分類:
1、site-to-site VPN 也叫 LAN-to-LAN VPN (要求兩個站點都要有固定的IP) 2、EASY-VPN 也叫 remote VPN (通常用于連接沒有固定IP的站點) IPsec-VPN提供三個特性:
1、authentication 每一個IP包的認證
2、data integrity 驗證數據完整性,保證在傳輸過程中沒有被人為改動 3、confidentiality (私密性)數據包的加密 《知識準備》
在學習IPsec技術之前,先要學習以下幾點知識 1、加密機制
2、DH密鑰交換算法 3、認證機制 4、散列機制
加密機制--密碼學分為兩類:
對稱加密算法---使用一把密匙來對信息提供安全的保護。只有一個密匙,即用來加密,也用來解密 特點: 1、速度快 2、密文緊湊
3、用于大量數據的傳送
對稱加密代表:DES、3DES、AES
3DES--有三個密匙,用第一個密匙加密,用第二個密匙解密,再用第三個密匙加密
非對稱加密---有一對密匙,一個叫公匙,一個叫私匙,如果用其中一個加密,必須用另一個解密。 特點: 1、速度慢 2、密文不緊湊
3、通常只用于數字簽名,或加密一些小文件。 非對稱加密的代表:RSA、ECC
非對稱加密代表RSA--有一對密匙,一個公匙,一個私匙,私匙加密,公匙解密,或者公匙加密,私匙解密
非對稱加密可以有兩種應用: 1、公鑰加密,私鑰解密,叫加密2、私鑰加密,公鑰解密,叫數字簽名
理想的應用方法,用非對稱加密法來傳送對稱加密的密匙,或用在數字簽名當中。用對稱加密法來加密實際的數據。
數字簽名不但證明了消息的內容,還證明了發送方的身份。
密鑰化的HASH--使用密鑰對生成的消息摘要進行加密時,被稱為加密的消息摘要。 diffie-hellman key exchange--DH算法
是一種安全的讓通信雙方協商出一個共享密匙的方法。
用對方的公匙和自已的私匙產生一個雙方都能知道的KEY(也叫共享的密秘),作對稱加密用 DH group 1的長度是768位 (產生出的KEY的長度) DH group 2的長度是1024位
認證機制--(這里所指的是設備的認證,而不是用戶的認證)
現代的基本加密技術要依賴于消息之目標接收者已知的一項秘密,關鍵的問題是如何保障密鑰的安全。
1、用戶名和密碼
2、OTP(one time password)一次性密碼 3、生物認證(指紋、眼膜) 4、預共享密鑰 5、數字證書 6、加密臨時值
散列機制--用來做完整性檢驗
散列函數(就是HASH)--把一大堆數據經過計算得到一個較小的、定長的值,散列是一種不可逆函數。這意味著一旦明文生成散列,就不可能或者說極端困難再將其由散列轉換成明文。
HASH的特點:
1、不管輸入什么數據,輸出是定長的
2、只要輸入有一點微小變化,輸出就會發生很大的變化,也就是雪崩效應 3、不可逆
HASH的算法:
1、md5 提供128位的輸出 md5是驗證,不是加密技術,用來做哈希 2、SHA 提供160位的輸出
HMAC--使用散列的消息認證編碼,或者叫密鑰化的HASH,是一種使用HASH來進行認證的機制。可以用來做預共享密鑰的認證。
---------------------------------------------------------------------------------------- IP sec 的組成--IPsec協議集包括三個協議: 1、internet key exchange(IKE)密匙交換協議
協議雙方使用的算法,密匙,協商在兩個對等體之間建立一條遂道的參數,協商完成再用下面的方法封裝數據。
IKE動態的,周期性的在兩個PEER之間更新密鑰 2、encapsulating secutity payload(ESP)封裝安全負載
可以對數據包認證,加密,封裝,IP中協議號--50,通常使用3DES來進行加密 3、authentication header (AH)
只提供認證,封裝,不提供加密,明文傳送,IP中協議號--51
IPsecVPN的兩種模式--
算法,封裝技術以及密鑰。這個協商過程是通過IKE來完成的,IKE協商分兩個階段運行:
階段一:在兩個對等體設備之間建立一個安全的管理連接。沒有實際的數據通過這個連接。這個管理連接是用來保護第二階段協商過程的。 階段二:當對等體之間有了安全的管理連接之后,它們就可以接著協商用于構建安全數據連接的安全參數,這個協商過程是安全的,加了密的。協商完成后,將在兩個站點間形成安全的數據連接。用戶就可以利用這些安全的數據連接來傳輸自已的數據了。 第一階段:建立ISAKMP SA 協商的是以下信息:
1、對等體之間采用何種方式做認證,是預共享密鑰還是數字證書。 2、雙方使用哪種加密算法
3、雙方使用哪種HMAC方式,是MD5還是SHA 4、雙方使用哪種Diffie-Hellman密鑰組
5、使用哪種協商模式(主模式或主動模式) 6、還要協商SA的生存期
第二階段:建立IPsec SA 協商的是以下信息: 1、雙方使用哪種封裝技術,AH還是ESP 2、雙方使用哪種加密算法
3、雙方使用哪種HMAC方式,是MD5還是SHA 4、使用哪種傳輸模式,是隧道模式還是傳輸模式 5、還要協商SA的生存期
第一階段的協商過程總共有6條消息:
1、消息1和消息2用于peer之間協商加密機制
ISAKMP包含有ISAKMP頭、SA負載、提議負載、轉換負載等字段 總之是讓雙方協商好我們之間使用啥子協議、加密方法
具體是要協定四個東東:加密機制、散列機制、DH組、認證機制 2、消息3和消息4用于相互之間交換公共密匙
兩端的peer先各自生成自已的私匙和公匙,同時還產生一個臨時值。然后再使用消息3或消息4將各自的公匙和臨時值進行交換。
交換完公匙后,每個peer先根據對方的公匙和自已的私匙生成一個共享秘密(使用DH算法),再根據共享秘密、對方和自已的臨時值、預共享密鑰產生出三個SKEY: SKEYID_d--此密匙被用于計算后續IPsec密匙資源
SKEYID_a--此密匙被用于提供后續IKE消息的數據完整性以及認證 SKEYID_e--此密匙被用于對后續IKE消息進行加密
消息3和4的ISAKMP包含以下字段:ISAKMP包頭、密匙交換負載(KE)、臨時值負載 3、消息5和消息6用于兩個peer之間進行認證,這兩個消息是用SKEYID_e進行過加密的。 每個peer根據一大堆東東(包括SKEYID-a、預共享密鑰、標識ID)生成一個Hash值,再將這個值和自已的標識ID(通常是IP或主機名)發送給對方。當然,使用的就是消息5或消息6。
每個peer收到對方的ID和Hash值后,先根據對方的ID找到對方的公匙,再計算本地Hash值,如果本地Hash值和對方的Hash值一樣,就表示認證成功。 這一步完成后,IKE SA被建立,主模式認證完成 第二階段的協商過程總共有3條消息:
1、第一、二條信息是兩個peer之間協商形成IPsec SA的封裝協議、模式、加密算法,還要互發用DH重新生成的新的公匙和臨時值,以及其它一些參數,像SPI、ID等等。
2、第三條消息通常由發起者發送給響應者,起一個確認的作用,也用來驗證通信信道的有效性
第三條信息發送前,兩端的peer必須先用和DH相關的信息(新的私鑰和對方公鑰)生成一個新的DH秘密,然后用該值和SKEYID_d以及其他一些參數一起來生成最終加解密的KEY。 --------------------------------------------------------------------------------------------
SA--安全關聯
SA是兩個通信實體經協商建立起來的一種協定,它們決定了用來保護數據包安全的IPsec協議、轉碼方式、密鑰、以及密鑰的有效存在時間等等。任何IPsec實施方案始終會構建一個SA數據庫(SA DB),由它來維護IPsec協議用來保障數據包安全的SA記錄。
SA是單向的--如果兩個主機(比如A和B)正在通過ESP進行安全通信,那么主機A就需要有一個SA,即SA(OUT),用來處理外發的數據包,另外還需要有一個不同的SA,即SA(IN)用來處理進入的數據包。主機A的SA(OUT)和主機B的SA(IN)將共享相同的加密參數(比如密鑰)。
SA還要根據協議來區分,如果兩個主機間同時使用ESP和AH,對于ESP和AH會生成不同的SA。
SADB--安全關聯數據庫,包含雙方協商的IKE和IPsec安全信息
SPI--安全參數索引,是一個32位的值,用來標識用于處理數據包的特定的那個安全聯盟
或者這樣理解,用于唯一定義一條單向的IPsec通道。這個號碼存在于ESP包頭中,通道兩端必須一致。 SA分為兩種--
1、IKE(ISAKMP)SA 協商對IKE數據流進行加密以及對對等體進行驗證的算法 2、IPsec SA 協商對對等體之間的IP數據流進行加密的算法 對等體之間的IKE SA只能有一個 對等體之間的IPsec SA可以有多個
PFS--完善轉發安全性,是一種IKE協商中發起者可以向響應者提供建議的屬性,是一種強制對等體雙方在快速模式交換中產生新的DH秘密的屬性。這允許使用新的DH秘密生成用于加密數據的加密密鑰。
-------------------------------------------------------------------------------------------- 配置實例: 步驟:
1、configure crypto ACL 配置感興趣流,需要加密的流量就是感興趣流。 2、establish ISAKMP policy 第一階段的策略 3、configure IPsec transform set 第二階段的策略 4、configure crypto map
5、apply crypto map to the interface 在接口下應用
6、configure interface ACL 確定在外網接口放行哪些流量
一、定義感興趣流:
ip access-list extended VPN
permitip 172.16.1.0 0.0.0.255 172.16.2.0 0.0.0.255 二、IKE第一階段 cryptoisakmp policy 10 encryption des hash md5
authentication pre-share group 2
crypto isakmp key cisco address 202.100.1.2 pre-share key 的定義 三、IKE第二階段
cryptoipsec transform-set MYSET esp-des esp-md5-hmac mode tunnel
四、把感興趣流與轉換集映射一下 crypto map MYMAP 100 ipsec-isakmp
set peer 202.100.1.2 設置VPN對等體的地址 set tranform-set MYSET 設置轉換集
match address VPN 感興趣流和轉換集的綁定
五、MAP與接口綁定 int s0
crypto map MYMAP
六、設定接口只允許跑VPN流量,在接口入設置 access-list 100 permit udp any eq 500 any eqisakmp
access-list 100 permit esp any any
access-list 100 permit ip 172.16.2.0 0.0.0.255 172.16.1.0 0.0.0.255 由于ACL會二次查找,所以還要放行私網的流量 show crypto isakmp policy
show crypto isakmpsa第一階段的SA show crypto ipsecsa第二階段的SA show crypto engine connections active show crypto map
crypto ipsec security-association lifetime [seconds|kilobytes] 第二階段的一個協商時間,也就是說多長時間后重新協商密匙。也可按已發了多少流量來進行協商。哪個數值先到就先起效。
crytoisakmpkeepalive 10 3
IPsec通道的終結:
當流量超過上限后或者超時自動終結 clear crypto isakmp清第一階段 clear crypto sa清第二階段
clear crypto session 在新版的IOS中,用這條命令全清 debug crypto isakmp debug crypto ipsec
配置IPsec-VPN的注意點: 1、路由
2、感興趣流量 3、策略 4、調用
接口設定ACL:
設定接口只允許跑VPN流量,在接口入設置
access-list 100 permit udp any eq 500 any eqisakmp access-list 100 permit esp any any 或access-list 100 permit ahp any any
注意:在老IOS中,對包解密后還會再匹配一次訪問列表,新的IOS中就不會,所以在老的IOS中要加入一條
access-list 100 permit ip 192.168.3.0 0.0.0.255 192.168.2.0 0.0.0.255
IPsec中的路由問題:
R1 需要有4.4.4.0的路由
R2 需要有4.4.4.0 1.1.1.0 30.0.0.0的路由 R3 需要有1.1.1.0 4.4.4.0 20.0.0.0的路由 R4 需要有1.1.1.0的路由
------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- GRE
GRE通用路由封裝---一個三層協議,能夠將各種不同的數據包封裝成IP包,然后通過IP網絡進行傳輸。也就是說能對其它的IP包或非IP包進行再封裝,在原始包頭的前面增加一個GRE包頭和一個新IP包頭。明文傳送,沒有安全性。在IP中的協議號47。
GRE封裝格式:
20字節 4字節
GRE有很好的隧道特性 1、支持多協議 2、支持組播 缺點是不安全 IPsec的特點:
1、能提供安全的傳輸保證
2、但只能支持IP,不能支持其他協議
小知識:在tunnal中,指定目標地址之后,只要在本地路由表中有這個地址,tunnal就會up
GRE over IPsec(實用性很高的技術,不像IPsecVPN那樣麻煩)
原理:在tunnel中,先用GRE對數據包封裝成IP包,再用IPsec加密,默認是通道模式
紅色部分是加密的部分
IPsec只能對IP包加密,不能對非IP包加密。 注意在GRE over IPsec中感興趣流的定義:(所有的GRE流量都是感興趣流) access-list 100 permit gre host 202.100.13.3 host 202.100.12.2 必須定義公網地址 因為當感興趣流量過來時: 1、先查路由,進入tunnel口
2、封裝GRE后,進入S口撞擊map
當封裝了GRE后,外部的IP地址用的就是公網地址了,所以感興趣流量必須定義為公網地址。
由于在接口下會兩次檢查ACL,所以如果在物理接口下放ACL,要同時放行ESP和GRE流量,還有isakmp的協商流量。
GRE over IPsec 技術建議使用傳輸模式 因為通信點等于加密點 試驗:
一、配置tunnel interface tunnel 1
tunnel source 202.100.1.1 tunnel destination 202.100.1.2 tunnelgreip
ip address 12.1.1.1 二、運行路由協議 routereigrp 90
network 172.16.1.0 0.0.0.255 network 12.1.1.0 0.0.0.255
三、開始配置IPsec,先定義感興趣流:(注意這里的定義) ip access-list extended VPN
permitgre any any
四、IKE第一階段 cryptoisakmp policy 10 encryption des hash md5
authentication pre-share group 2
crypto isakmp key cisco address 202.100.1.2 pre-share key 的定義 五、IKE第二階段
cryptoipsec transform-set MYSET esp-des esp-md5-hmac mode tunnel
六、把感興趣流與轉換集映射一下 crypto map MYMAP 100 ipsec-isakmp
set peer 202.100.1.2 設置VPN對等體的地址 set tranform-set MYSET 設置轉換集
match address VPN 感興趣流和轉換集的綁定
七、MAP與接口綁定 int s0
crypto map MYMAP
八、設定接口只允許跑VPN流量,在接口入方向設置 用在物理接口下--
access-list 100 permit udp any eq 500 any eqisakmp access-list 100 permit esp any any access-list 100 permit gre any any
----------------------------------------------------------------------------------------- -----------------------------------------------------------------------------------------
site-to-site VPN的缺點: 1、需要兩端有固定的公網IP 2、兩端的配置太過復雜
RemoteVPN--easyVPN---remote access 使用這種方法 實現兩個主要目的:
1、簡單的client配置,easy VPN remote
2、中心的server,動態的推送配置到client,easy VPN server 所以client很easy,server端的配置一點都不easy
遠程連接有哪些困難需要克服:
1、IPsec的客戶端使用server端未知的IP地址來連接網關,這樣就不可能在兩端定義一個預共享密鑰。
2、IPsec的客戶端通常希望用私網IP進入專用網絡,而不是公網IP
3、IPsec的客戶端必須使用DNS服務器、DHCP服務器和其他一些在專用網絡上作為信息主要來源的服務器,而不是使用ISP的服務器。
4、IPsec客戶端常在PAT設備之后進行連接,但由于ESP要加密TCP或UDP頭中的信息,端口自然也加密了,PAT將不能正常工作。
為解決以上難題,設計了IKE協商的1.5階段。 IKE的1.5階段由兩部分組成-- 1、x-auth擴展認證 2、模式配置
在遠程IPsec連接中,通常使用IKE主動模式。只有三條消息交換。 擴展認證--允許認證IPsec客戶端的使用者,被IPsec網關認證。
可以先讓所有的客戶都使用同一個預共享密鑰連接到IPsec網關,然后再使用擴展認證來確定用戶的身份,等于要進行兩次認證。這樣就解決了第一個問題(IPsec兩端無法定義預共享密鑰的難題)。
擴展認證是基于每一個用戶的,一般靠IPsec網關與AAA服務器結合來實現。 擴展認證在IKE第一階段完成后進行,擴展認證總共有四個消息的交換。 消息一:IPsec網關發向客戶端,詢問用戶名和密碼 消息二:客戶端發向IPsec網關,回應用戶名和密碼 消息三:IPsec驗證完畢后,通知客戶端成功或失敗 消息四:如果收到成功的消息,客戶端返回一個確認 模式配置:
允許IPsec網關為客戶端推送一個內部的IP地址和DNS服務器等信息。這樣客戶端就可以用這個內部的IP地址進入專用網絡。 NAT-T也叫NAT透明
用于解決在發生PAT的情況下進行正確的地址轉換 解決方法--將ESP分組再封裝進一個UDP頭中。
VPN 3005以上的設備都可以做server
1700、1800可以做client,實際上不光可以用硬件來做client,軟件也可以做,在移動辦公中就是軟件做
1800以上都可以做server
remote-VPN配置
server端配置
aaa new-model //啟用AAA
aaa authentication login REMOTE local aaa authorization network REMOTE local
username wolf password 0 cisco //建立本地數據庫 cryptoisakmp policy 10 hash md5
authentication pre-share group 2
encryption des
crypto isakmp client configuration group IPSEC-GROUP 組名,設不同組的目地是為內部不同的部門分配不同的IP
key xiangweixing組密碼組名和組密碼是一對,需要用戶端也是一樣的配置 pool IP-POOL
cryptoipsec transform-set MYSET esp-des esp-md5-hmac crypto dynamic-map MYMAP 10 set transform-set MYSET
reverse-route 反向路由注入
crypto map CISCO client authentication list REMOTE 啟用XAUTH crypto map CISCO isakmp authorization list REMOTE
crypto map CISCO client configuration address respond 地址推送方式(分強制推送和請求推送)
crypto map CISCO 10 ipsec-isakmp dynamic MYMAP interface s1/0 crypto map CISCO
ip local pool IP-POOL 172.16.1.20 172.16.1.50
---------------------------------------------------------------- client端配置
cryptoipsec client ezvpn EZVPN
group IPSEC-GROUP key xiangweixing conn manual
peer 202.100.1.1 對端地址 mode client int s1/0
cryptoipsec client ezvpn EZVPN outside int e0/0
cryptoipsec client ezvpn EZVPN inside ip route 0.0.0.0 0.0.0.0 s1/0
R2#crypto ipsec client ezvpn connect R2#crypto ipset client ezvpnxauth 在客戶端查看: show crypto session
show crypto ipsec client ezvpn 在服務器端查看:
show crypto session group show crypto session summary
評論
查看更多