ipsec如何配置
“Internet 協(xié)議安全性 (IPSec)”是一種開放標(biāo)準(zhǔn)的框架結(jié)構(gòu),通過使用加密的安全服務(wù)以確保在 Internet 協(xié)議 (IP) 網(wǎng)絡(luò)上進(jìn)行保密而安全的通訊。Microsoft® Windows® 2000、Windows XP 和 Windows Server 2003 家族實(shí)施 IPSec 是基于“Internet 工程任務(wù)組 (IETF)”IPSec 工作組開發(fā)的標(biāo)準(zhǔn)。
IPSec(InternetProtocolSecurity)是安全聯(lián)網(wǎng)的長期方向。它通過端對端的安全性來提供主動的保護(hù)以防止專用網(wǎng)絡(luò)與 Internet 的攻擊。在通信中,只有發(fā)送方和接收方才是唯一必須了解 IPSec 保護(hù)的計(jì)算機(jī)。在 Windows 2000、Windows XP 和 Windows Server 2003 家族中,IPSec 提供了一種能力,以保護(hù)工作組、局域網(wǎng)計(jì)算機(jī)、域客戶端和服務(wù)器、分支機(jī)構(gòu)(物理上為遠(yuǎn)程機(jī)構(gòu))、Extranet 以及漫游客戶端之間的通信。
IPSec是IETF(Internet Engineering Task Force,Internet工程任務(wù)組)的IPSec小組建立的一組IP安全協(xié)議集。IPSec定義了在網(wǎng)際層使用的安全服務(wù),其功能包括數(shù)據(jù)加密、對網(wǎng)絡(luò)單元的訪問控制、數(shù)據(jù)源地址驗(yàn)證、數(shù)據(jù)完整性檢查和防止重放攻擊。
IPSec的安全服務(wù)要求支持共享密鑰完成認(rèn)證和/或保密,并且手工輸入密鑰的方式是必須要支持的,其目的是要保證IPSec協(xié)議的互操作性。當(dāng)然,手工輸入密鑰方式的擴(kuò)展能力很差,因此在IPSec協(xié)議中引入了一個(gè)密鑰管理協(xié)議,稱Internet密鑰交換協(xié)議——IKE,該協(xié)議可以動態(tài)認(rèn)證IPSec對等體,協(xié)商安全服務(wù),并自動生成共享密鑰。
ipsec配置流程IPsec-VPN--virtual private network 什么是VPN--虛擬專用網(wǎng)
VPN作用--通過公網(wǎng)實(shí)現(xiàn)遠(yuǎn)程連接,將私有網(wǎng)絡(luò)聯(lián)系起來 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 (要求兩個(gè)站點(diǎn)都要有固定的IP) 2、EASY-VPN 也叫 remote VPN (通常用于連接沒有固定IP的站點(diǎn)) IPsec-VPN提供三個(gè)特性:
1、authenTIcaTIon 每一個(gè)IP包的認(rèn)證
2、data integrity 驗(yàn)證數(shù)據(jù)完整性,保證在傳輸過程中沒有被人為改動 3、confidenTIality (私密性)數(shù)據(jù)包的加密 《知識準(zhǔn)備》
在學(xué)習(xí)IPsec技術(shù)之前,先要學(xué)習(xí)以下幾點(diǎn)知識 1、加密機(jī)制
2、DH密鑰交換算法 3、認(rèn)證機(jī)制 4、散列機(jī)制
加密機(jī)制--密碼學(xué)分為兩類:
對稱加密算法---使用一把密匙來對信息提供安全的保護(hù)。只有一個(gè)密匙,即用來加密,也用來解密 特點(diǎn): 1、速度快 2、密文緊湊
3、用于大量數(shù)據(jù)的傳送
對稱加密代表:DES、3DES、AES
3DES--有三個(gè)密匙,用第一個(gè)密匙加密,用第二個(gè)密匙解密,再用第三個(gè)密匙加密
非對稱加密---有一對密匙,一個(gè)叫公匙,一個(gè)叫私匙,如果用其中一個(gè)加密,必須用另一個(gè)解密。 特點(diǎn): 1、速度慢 2、密文不緊湊
3、通常只用于數(shù)字簽名,或加密一些小文件。 非對稱加密的代表:RSA、ECC
非對稱加密代表RSA--有一對密匙,一個(gè)公匙,一個(gè)私匙,私匙加密,公匙解密,或者公匙加密,私匙解密
非對稱加密可以有兩種應(yīng)用: 1、公鑰加密,私鑰解密,叫加密2、私鑰加密,公鑰解密,叫數(shù)字簽名
理想的應(yīng)用方法,用非對稱加密法來傳送對稱加密的密匙,或用在數(shù)字簽名當(dāng)中。用對稱加密法來加密實(shí)際的數(shù)據(jù)。
數(shù)字簽名不但證明了消息的內(nèi)容,還證明了發(fā)送方的身份。
密鑰化的HASH--使用密鑰對生成的消息摘要進(jìn)行加密時(shí),被稱為加密的消息摘要。 diffie-hellman key exchange--DH算法
是一種安全的讓通信雙方協(xié)商出一個(gè)共享密匙的方法。
用對方的公匙和自已的私匙產(chǎn)生一個(gè)雙方都能知道的KEY(也叫共享的密秘),作對稱加密用 DH group 1的長度是768位 (產(chǎn)生出的KEY的長度) DH group 2的長度是1024位
認(rèn)證機(jī)制--(這里所指的是設(shè)備的認(rèn)證,而不是用戶的認(rèn)證)
現(xiàn)代的基本加密技術(shù)要依賴于消息之目標(biāo)接收者已知的一項(xiàng)秘密,關(guān)鍵的問題是如何保障密鑰的安全。
1、用戶名和密碼
2、OTP(one TIme password)一次性密碼 3、生物認(rèn)證(指紋、眼膜) 4、預(yù)共享密鑰 5、數(shù)字證書 6、加密臨時(shí)值
散列機(jī)制--用來做完整性檢驗(yàn)
散列函數(shù)(就是HASH)--把一大堆數(shù)據(jù)經(jīng)過計(jì)算得到一個(gè)較小的、定長的值,散列是一種不可逆函數(shù)。這意味著一旦明文生成散列,就不可能或者說極端困難再將其由散列轉(zhuǎn)換成明文。
HASH的特點(diǎn):
1、不管輸入什么數(shù)據(jù),輸出是定長的
2、只要輸入有一點(diǎn)微小變化,輸出就會發(fā)生很大的變化,也就是雪崩效應(yīng) 3、不可逆
HASH的算法:
1、md5 提供128位的輸出 md5是驗(yàn)證,不是加密技術(shù),用來做哈希 2、SHA 提供160位的輸出
HMAC--使用散列的消息認(rèn)證編碼,或者叫密鑰化的HASH,是一種使用HASH來進(jìn)行認(rèn)證的機(jī)制??梢杂脕碜鲱A(yù)共享密鑰的認(rèn)證。
---------------------------------------------------------------------------------------- IP sec 的組成--IPsec協(xié)議集包括三個(gè)協(xié)議: 1、internet key exchange(IKE)密匙交換協(xié)議
協(xié)議雙方使用的算法,密匙,協(xié)商在兩個(gè)對等體之間建立一條遂道的參數(shù),協(xié)商完成再用下面的方法封裝數(shù)據(jù)。
IKE動態(tài)的,周期性的在兩個(gè)PEER之間更新密鑰 2、encapsulating secutity payload(ESP)封裝安全負(fù)載
可以對數(shù)據(jù)包認(rèn)證,加密,封裝,IP中協(xié)議號--50,通常使用3DES來進(jìn)行加密 3、authentication header (AH)
只提供認(rèn)證,封裝,不提供加密,明文傳送,IP中協(xié)議號--51
IPsecVPN的兩種模式--
算法,封裝技術(shù)以及密鑰。這個(gè)協(xié)商過程是通過IKE來完成的,IKE協(xié)商分兩個(gè)階段運(yùn)行:
階段一:在兩個(gè)對等體設(shè)備之間建立一個(gè)安全的管理連接。沒有實(shí)際的數(shù)據(jù)通過這個(gè)連接。這個(gè)管理連接是用來保護(hù)第二階段協(xié)商過程的。 階段二:當(dāng)對等體之間有了安全的管理連接之后,它們就可以接著協(xié)商用于構(gòu)建安全數(shù)據(jù)連接的安全參數(shù),這個(gè)協(xié)商過程是安全的,加了密的。協(xié)商完成后,將在兩個(gè)站點(diǎn)間形成安全的數(shù)據(jù)連接。用戶就可以利用這些安全的數(shù)據(jù)連接來傳輸自已的數(shù)據(jù)了。 第一階段:建立ISAKMP SA 協(xié)商的是以下信息:
1、對等體之間采用何種方式做認(rèn)證,是預(yù)共享密鑰還是數(shù)字證書。 2、雙方使用哪種加密算法
3、雙方使用哪種HMAC方式,是MD5還是SHA 4、雙方使用哪種Diffie-Hellman密鑰組
5、使用哪種協(xié)商模式(主模式或主動模式) 6、還要協(xié)商SA的生存期
第二階段:建立IPsec SA 協(xié)商的是以下信息: 1、雙方使用哪種封裝技術(shù),AH還是ESP 2、雙方使用哪種加密算法
3、雙方使用哪種HMAC方式,是MD5還是SHA 4、使用哪種傳輸模式,是隧道模式還是傳輸模式 5、還要協(xié)商SA的生存期
第一階段的協(xié)商過程總共有6條消息:
1、消息1和消息2用于peer之間協(xié)商加密機(jī)制
ISAKMP包含有ISAKMP頭、SA負(fù)載、提議負(fù)載、轉(zhuǎn)換負(fù)載等字段 總之是讓雙方協(xié)商好我們之間使用啥子協(xié)議、加密方法
具體是要協(xié)定四個(gè)東東:加密機(jī)制、散列機(jī)制、DH組、認(rèn)證機(jī)制 2、消息3和消息4用于相互之間交換公共密匙
兩端的peer先各自生成自已的私匙和公匙,同時(shí)還產(chǎn)生一個(gè)臨時(shí)值。然后再使用消息3或消息4將各自的公匙和臨時(shí)值進(jìn)行交換。
交換完公匙后,每個(gè)peer先根據(jù)對方的公匙和自已的私匙生成一個(gè)共享秘密(使用DH算法),再根據(jù)共享秘密、對方和自已的臨時(shí)值、預(yù)共享密鑰產(chǎn)生出三個(gè)SKEY: SKEYID_d--此密匙被用于計(jì)算后續(xù)IPsec密匙資源
SKEYID_a--此密匙被用于提供后續(xù)IKE消息的數(shù)據(jù)完整性以及認(rèn)證 SKEYID_e--此密匙被用于對后續(xù)IKE消息進(jìn)行加密
消息3和4的ISAKMP包含以下字段:ISAKMP包頭、密匙交換負(fù)載(KE)、臨時(shí)值負(fù)載 3、消息5和消息6用于兩個(gè)peer之間進(jìn)行認(rèn)證,這兩個(gè)消息是用SKEYID_e進(jìn)行過加密的。 每個(gè)peer根據(jù)一大堆東東(包括SKEYID-a、預(yù)共享密鑰、標(biāo)識ID)生成一個(gè)Hash值,再將這個(gè)值和自已的標(biāo)識ID(通常是IP或主機(jī)名)發(fā)送給對方。當(dāng)然,使用的就是消息5或消息6。
每個(gè)peer收到對方的ID和Hash值后,先根據(jù)對方的ID找到對方的公匙,再計(jì)算本地Hash值,如果本地Hash值和對方的Hash值一樣,就表示認(rèn)證成功。 這一步完成后,IKE SA被建立,主模式認(rèn)證完成 第二階段的協(xié)商過程總共有3條消息:
1、第一、二條信息是兩個(gè)peer之間協(xié)商形成IPsec SA的封裝協(xié)議、模式、加密算法,還要互發(fā)用DH重新生成的新的公匙和臨時(shí)值,以及其它一些參數(shù),像SPI、ID等等。
2、第三條消息通常由發(fā)起者發(fā)送給響應(yīng)者,起一個(gè)確認(rèn)的作用,也用來驗(yàn)證通信信道的有效性
第三條信息發(fā)送前,兩端的peer必須先用和DH相關(guān)的信息(新的私鑰和對方公鑰)生成一個(gè)新的DH秘密,然后用該值和SKEYID_d以及其他一些參數(shù)一起來生成最終加解密的KEY。 --------------------------------------------------------------------------------------------
SA--安全關(guān)聯(lián)
SA是兩個(gè)通信實(shí)體經(jīng)協(xié)商建立起來的一種協(xié)定,它們決定了用來保護(hù)數(shù)據(jù)包安全的IPsec協(xié)議、轉(zhuǎn)碼方式、密鑰、以及密鑰的有效存在時(shí)間等等。任何IPsec實(shí)施方案始終會構(gòu)建一個(gè)SA數(shù)據(jù)庫(SA DB),由它來維護(hù)IPsec協(xié)議用來保障數(shù)據(jù)包安全的SA記錄。
SA是單向的--如果兩個(gè)主機(jī)(比如A和B)正在通過ESP進(jìn)行安全通信,那么主機(jī)A就需要有一個(gè)SA,即SA(OUT),用來處理外發(fā)的數(shù)據(jù)包,另外還需要有一個(gè)不同的SA,即SA(IN)用來處理進(jìn)入的數(shù)據(jù)包。主機(jī)A的SA(OUT)和主機(jī)B的SA(IN)將共享相同的加密參數(shù)(比如密鑰)。
SA還要根據(jù)協(xié)議來區(qū)分,如果兩個(gè)主機(jī)間同時(shí)使用ESP和AH,對于ESP和AH會生成不同的SA。
SADB--安全關(guān)聯(lián)數(shù)據(jù)庫,包含雙方協(xié)商的IKE和IPsec安全信息
SPI--安全參數(shù)索引,是一個(gè)32位的值,用來標(biāo)識用于處理數(shù)據(jù)包的特定的那個(gè)安全聯(lián)盟
或者這樣理解,用于唯一定義一條單向的IPsec通道。這個(gè)號碼存在于ESP包頭中,通道兩端必須一致。 SA分為兩種--
1、IKE(ISAKMP)SA 協(xié)商對IKE數(shù)據(jù)流進(jìn)行加密以及對對等體進(jìn)行驗(yàn)證的算法 2、IPsec SA 協(xié)商對對等體之間的IP數(shù)據(jù)流進(jìn)行加密的算法 對等體之間的IKE SA只能有一個(gè) 對等體之間的IPsec SA可以有多個(gè)
PFS--完善轉(zhuǎn)發(fā)安全性,是一種IKE協(xié)商中發(fā)起者可以向響應(yīng)者提供建議的屬性,是一種強(qiáng)制對等體雙方在快速模式交換中產(chǎn)生新的DH秘密的屬性。這允許使用新的DH秘密生成用于加密數(shù)據(jù)的加密密鑰。
-------------------------------------------------------------------------------------------- 配置實(shí)例: 步驟:
1、configure crypto ACL 配置感興趣流,需要加密的流量就是感興趣流。 2、establish ISAKMP policy 第一階段的策略 3、configure IPsec transform set 第二階段的策略 4、configure crypto map
5、apply crypto map to the interface 在接口下應(yīng)用
6、configure interface ACL 確定在外網(wǎng)接口放行哪些流量
一、定義感興趣流:
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
四、把感興趣流與轉(zhuǎn)換集映射一下 crypto map MYMAP 100 ipsec-isakmp
set peer 202.100.1.2 設(shè)置VPN對等體的地址 set tranform-set MYSET 設(shè)置轉(zhuǎn)換集
match address VPN 感興趣流和轉(zhuǎn)換集的綁定
五、MAP與接口綁定 int s0
crypto map MYMAP
六、設(shè)定接口只允許跑VPN流量,在接口入設(shè)置 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會二次查找,所以還要放行私網(wǎng)的流量 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] 第二階段的一個(gè)協(xié)商時(shí)間,也就是說多長時(shí)間后重新協(xié)商密匙。也可按已發(fā)了多少流量來進(jìn)行協(xié)商。哪個(gè)數(shù)值先到就先起效。
crytoisakmpkeepalive 10 3
IPsec通道的終結(jié):
當(dāng)流量超過上限后或者超時(shí)自動終結(jié) clear crypto isakmp清第一階段 clear crypto sa清第二階段
clear crypto session 在新版的IOS中,用這條命令全清 debug crypto isakmp debug crypto ipsec
配置IPsec-VPN的注意點(diǎn): 1、路由
2、感興趣流量 3、策略 4、調(diào)用
接口設(shè)定ACL:
設(shè)定接口只允許跑VPN流量,在接口入設(shè)置
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通用路由封裝---一個(gè)三層協(xié)議,能夠?qū)⒏鞣N不同的數(shù)據(jù)包封裝成IP包,然后通過IP網(wǎng)絡(luò)進(jìn)行傳輸。也就是說能對其它的IP包或非IP包進(jìn)行再封裝,在原始包頭的前面增加一個(gè)GRE包頭和一個(gè)新IP包頭。明文傳送,沒有安全性。在IP中的協(xié)議號47。
GRE封裝格式:
20字節(jié) 4字節(jié)
GRE有很好的隧道特性 1、支持多協(xié)議 2、支持組播 缺點(diǎn)是不安全 IPsec的特點(diǎn):
1、能提供安全的傳輸保證
2、但只能支持IP,不能支持其他協(xié)議
小知識:在tunnal中,指定目標(biāo)地址之后,只要在本地路由表中有這個(gè)地址,tunnal就會up
GRE over IPsec(實(shí)用性很高的技術(shù),不像IPsecVPN那樣麻煩)
原理:在tunnel中,先用GRE對數(shù)據(jù)包封裝成IP包,再用IPsec加密,默認(rèn)是通道模式
紅色部分是加密的部分
IPsec只能對IP包加密,不能對非IP包加密。 注意在GRE over IPsec中感興趣流的定義:(所有的GRE流量都是感興趣流) access-list 100 permit gre host 202.100.13.3 host 202.100.12.2 必須定義公網(wǎng)地址 因?yàn)楫?dāng)感興趣流量過來時(shí): 1、先查路由,進(jìn)入tunnel口
2、封裝GRE后,進(jìn)入S口撞擊map
當(dāng)封裝了GRE后,外部的IP地址用的就是公網(wǎng)地址了,所以感興趣流量必須定義為公網(wǎng)地址。
由于在接口下會兩次檢查ACL,所以如果在物理接口下放ACL,要同時(shí)放行ESP和GRE流量,還有isakmp的協(xié)商流量。
GRE over IPsec 技術(shù)建議使用傳輸模式 因?yàn)橥ㄐ劈c(diǎn)等于加密點(diǎn) 試驗(yàn):
一、配置tunnel interface tunnel 1
tunnel source 202.100.1.1 tunnel destination 202.100.1.2 tunnelgreip
ip address 12.1.1.1 二、運(yùn)行路由協(xié)議 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
六、把感興趣流與轉(zhuǎn)換集映射一下 crypto map MYMAP 100 ipsec-isakmp
set peer 202.100.1.2 設(shè)置VPN對等體的地址 set tranform-set MYSET 設(shè)置轉(zhuǎn)換集
match address VPN 感興趣流和轉(zhuǎn)換集的綁定
七、MAP與接口綁定 int s0
crypto map MYMAP
八、設(shè)定接口只允許跑VPN流量,在接口入方向設(shè)置 用在物理接口下--
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的缺點(diǎn): 1、需要兩端有固定的公網(wǎng)IP 2、兩端的配置太過復(fù)雜