1.IPSEC簡介
IPSec 是包含安全協定(Security Protocol)和金鑰交換協定(IKE),由IETF(Internet Engineering TaskForce,Internet 工程任務群組)開發的,可為通訊雙方提供存取控制、無連線的完整性、資料來源認證、反重播、加密以及對資料流分類加密等服務的一系列網路安全協定的總稱,其中安全協定又包括AH(頭驗證協定)和ESP(安全封裝載重);而IKE是一種基於ISAKMP(Internet Security Association and Key Management Protocol,網際網路安全關聯和金鑰管理協定)中TCP/IP框架,合併了Oakley(金鑰交換協定)的一部分和SKEME(密鑰技術協定)的混合協定。
2.IPSEC的安全特性
(1)不可否認性:"不可否認性"可以證實訊息發送方是唯一可能的發送者,發送者不能否認發送過訊息。 "不可否認性"是採用公鑰技術的特徵,當使用公鑰技術時,發送者用私鑰產生一個數位簽章隨訊息一起發送,接收者用發送者的公鑰來驗證數位簽章。由於在理論上只有發送者唯一擁有私鑰,也只有發送者才可能產生該數位簽名,所以只要數位簽名通過驗證,發送者就不能否認曾經發送過該訊息。但"不可否認性"不是基於認證的共享金鑰技術的特徵,因為在基於認證的共享金鑰技術中,發送方和接收方掌握相同的金鑰。
(2)抗重播性(Anti-Replay): IPsec接收方可根據封包資料段前加入的32位元序號來偵測每個IP套件的唯一性並拒絕接收過時或重複的報文,以防止***者截取破解訊息後,再用相同的訊息包冒取非法存取權(即使這種冒取行為發生在數月之後)。
(3)資料完整性(Data Integrity): IPsec接收方利用md5,sha-1等雜湊演算法對發送者發送的套件進行認證,防止傳輸過程中資料被竄改,確保發出資料和接收資料的一致性。
(4)資料可靠性(Confidentiality):IPsec發送者在透過des,3des,aes等對稱加密演算法在網路傳輸封包前對套件進行加密,保證在傳輸過程中,即使封包遭截取,訊息也無法被讀取。與IPSec策略的具體設定相關,此特性可在IPSec中選擇是否開啟。
(5)資料來源認證(Data Authentication):IPsec在接收端通過preshared key(域共享金鑰),證書,kerberos v5等可以認證發送IPsec封包的發送端是否合法。
3.IPSEC的工作模式
(1)隧道(tunnel)模式:使用者的整個IP封包被用來計算AH或ESP頭,AH或ESP頭以及ESP加密的用戶資料被封裝在一個新的IP資料包中。通常,隧道模式會套用在兩個安全閘道之間的通訊。
(2)傳輸(transport)模式:只是傳輸層資料被用來計算AH或ESP頭,AH或ESP頭以及ESP加密的用戶資料被放置在原IP包頭後面。常見的情況是,傳輸模式用於兩個主機之間或一台主機和安全閘道之間的通訊。
4.IPSEC安全機制中兩種協定的比較
AH協定(IP協定編號為51)提供資料來源認證、資料完整性校驗和防封包重播功能,它能保護通訊免受竄改,但無法防止竊聽,適合用於傳輸非機密資料。 AH的工作原理是在每個資料包上新增一個驗證封包頭,此封包頭插在標準IP包頭後面,對資料提供完整性保護。 ,但因為IP頭部分包含很多變量,例如type of service(TOS),flags,fragment offset,TTL以及header checksum。所以這些值在進行authtication前要全部清除。否則hash會mismatch導致丟包。因此AH不支援NAT轉換。
ESP協議,在IP協議中的編號為50,能夠提供資料加密、資料來源驗證、資料完整性檢查、防止重複傳輸的功能。 ESP的工作原理是在每個資料包的標準IP包頭後面加上一個ESP封包頭,並在資料包後面追加一個ESP尾。 ESP協定的不同之處在於它會對需要保護的用戶資料進行加密,然後再將其封裝到IP包中,以確保資料的機密性。
下圖更好的解釋了AH和ESP在IPSEC兩種工作模式下對資料包的加密與認證
5.IPsec基本概念(基於H3C)
1. 資料流:在IPSec 中,一組具有相同來源位址/遮罩/連接埠、目的位址/遮罩/連接埠和上層協定的資料集稱為資料流。通常,一個資料流採用一個存取控制清單(acl)來定義,所有為ACL 允許通過的封包在邏輯上作為一個資料流。
安全性原則指定了使用者手動設定的安全措施,用於規定對於哪些資料流採用何種安全操作。資料流的定義是透過在一個存取控制清單中配置多個規則來實現,在安全性原則中引用這個存取控制清單來決定需要進行保護的資料流。一條安全策略由「名字」和「順序號」共同唯一決定。
3.安全性原則群組:所有具有相同名字的安全性原則的集合。在一個介面上,可套用或取消一個安全性原則群組,讓安全性原則群組中的多條安全性原則同時套用在這個介面上,從而實現對不同的資料流進行不同的安全性保護。在同一個安全策略群組中,順序號碼越小的安全策略,優先順序越高。
4.安全聯盟(Security Association,簡稱SA):IPSec 對資料流提供的安全服務透過安全聯盟SA 來實現,它包括協定、演算法、金鑰等內容,具體確定瞭如何對IP報文進行處理。一個SA 就是兩個IPSec 系統之間的一個單向邏輯連接,輸入資料流和輸出資料流由輸入安全聯盟與輸出安全聯盟分別處理。安全聯盟由一個三元組(安全性參數索引(SPI)、IP 目的位址、安全協定號(AH或ESP))來唯一識別。
安全聯盟可透過手動設定和自動協商兩種方式建立。
手工建立安全聯盟的方式是指用戶透過在兩端手工設定SA的全部信息,然後在介面上應用安全策略建立安全聯盟,缺點是配置複雜,而且不支援一些高級特性(如定時更新密鑰),適用於小型企業。
自動協商方式由IKE 產生和維護,通訊雙方基於各自的安全策略庫經過配對和協商,最終建立安全聯盟而不需要使用者的干預,配置簡單,適用於大型企業。在自動協商中又分為主模式與野蠻模式,野蠻模式交換與主模式交換的主要差異在於,野蠻模式不提供身分保護。在對身分保護要求不高的場合,使用交換封包較少的野蠻模式可以提高協商的速度;在對身分保護要求較高的場合,則應使用主模式。
每個IPSec封包都攜帶32位元的安全性參數索引(SPI)。三元組由SPI、目的IP位址和安全協定號碼構成,用來唯一識別一個特定的安全聯盟。在手動配置安全聯盟時,需要手動指定SPI 的取值。為確保安全聯盟的唯一性,每個安全聯盟需要指定不同的SPI 值;使用IKE協商產生安全聯盟時,SPI 將隨機產生。
6.安全提議:包括安全協定、安全協定使用的演算法、安全協定對封包的封裝形式,規定了把普通的IP 封包轉換成IPSec封包的方式。安全策略可透過引用安全建議來規定所採用的協定、演算法等。
6.IPsecIPSEC設定步驟
建立加密存取控制清單
#根據是否與加密存取控制清單匹配,可以確定那些IP 套件加密後傳送,那些IP 包直
接轉送。需要保護的安全資料流使用擴充IP 存取控制清單進行定義。
acl acl-number
rule { normal | special }{ permit | deny } pro-number[source source-addr source-wildcard | any ][source-port operator port1 [ port2 ] ] [ destination dest-addr dest- wildcard | any ][destination-port operator port1 [ port2 ] ] [icmp-type icmp-type icmp-code][logging]
#定義安全提議
定義安全提議ipsec proposal proposal-name
設定安全協定對IP 封包的封裝模式encapsulation-mode { transport | tunnel }
##選擇安全協定transform { ah-new | ah- esp-new | esp-new }選擇加密演算法與認證演算法在ESP 協定中,轉換選項可以是{ ah-new | ah-esp-new | esp-new } AH協定下transform { ah-new | ah-esp-new | esp-new }建立安全性原則手動建立安全性原則的設定包括:手動建立安全性原則ipsec policy policy-name sequence-number manual配置安全性原則參考的存取控制清單security acl access-list-number指定安全隧道的起點與終點tunnel local ip-addresstunnel remote ip-address配置安全策略中引用的安全提議proposal proposal-name#配置安全策略聯盟的SPI 及使用的密鑰SPI的設定 sa inbound { ah | esp } spi spi-numbersa outbound { ah | esp } spi spi-numbersa outbound { ah | esp } spi sp##number AH16進位金鑰sa { inbound | outbound } ah hex-key-string hex-keyAH 字元金鑰sa { inbound | outbound } ah string-key string-keyESP16進位金鑰sa { inbound | outbound } esp encryption-hex hex-keyESP字元金鑰sa { inbound | outbound } esp string-key string-key# # 在介面上套用安全性原則群組 ipsec policy policy-nameIKE 建立安全性原則聯盟的設定包含:###用IKE 建立安全性原則聯盟
ipsec policy policy-name sequence-number isakmp
配置安全性原則引用的存取控制清單
#security acl access-list- number
指定安全隧道的終點
tunnel remote ip-address
設定安全性原則中引用的安全性提議
proposal proposal-name1 [ proposal- name2...proposal-name6 ]
設定安全聯盟的生存時間(可選)
設定全域時間
ipsec sa global-duration time-based seconds
ipsec sa global-duration traffic-based kilobytes
設定獨立時間
sa duration { time-based seconds |traffic-based kilobytes }
IPsec設定案例:使用ipsec隧道協定完成企業安全通訊
實驗器材:三台華為AR1220路由器,一台華為s5700交換器
拓撲圖:
#設定程序:
交換器:(本交換器新增連接埠需要開啟連接埠模式為access)
vlan 10
##port GE0/0/10#vlan 20port GE0/0/20vlan 24port GE0/0/24int vlan 10ip add 1.1.1.2 255.255.255.0int vlan 20ip add 1.1.2.2 255.255.255.0int vlan 241111. .3.2 255.255.255.0
R1
system-view
sysname R1
int eth0/0/0
#ip add 192.168 .1.1 24
loopback
int eth0/0/1
ip add 1.1.1.1 24
quit
ip route 0.0 .0.0 0 1.1.2.2
ping 1.1.1.1
R2
system-view
sysname R2
int eth0/0 /0
ip add 192.168.2.1 24
loopback
int eth0/0/1
ip add 1.1.2.1 24
#quit
ip route 0.0.0.0 0 1.1.2.2
ping 1.1.1.1
R3
system-view
#sysname R3
int etth0/0/0
ip add 192.168.3.1 24
loopback
int eth0/0/1
# ip add 1.1.3.1 24
quit
ip route 0.0.0.0 0 1.1.3.2
ping 1.1.1.1
R1到R2、R3的隧道
acl number 3000 match-order auto
rule 10 permit ip source 192.168.1.0 0.0.0.255 destination 192.168.2.0 0.0.0.255551 月#20 月 200.0.0.25 destination any
acl number 3001 match-order auto
rule 10 permit ip source 192.168.1.0 0.0.0.255 destination 192.168.3.0 0.0.0255 destination 192.168.3.0 0.0。 any destination any
quit
安全提議
ipsec proposal tran1
encapsulation-mode tunnel
#transform esp
esp authentication-algorithm md5 (校驗演算法)
esp encryption-algorithm des (加密演算法)
# #transform espesp authentication-algorithm md5#esp encryption-algorithm desquit#配置對應的IKE##ike peer R2
remote-address 1.1.2.1
pre-shared-key simple abcdef
ike peer R3
#remote-address 1.1.3.1
#pre-shared-key simple 123456
#新增政策
ipsec policy policy1 10 isakmp
ike peer R2
#security acl 3000
proposal tran1
ipsec policy policy1 20 isakmp
ike peer R3
security acl 3000
proposal tran2
#在外出外出介面上應用政策
int e0/0/1
ipsec policy policy1
R2到R1
acl number 3000 match-order auto
rule 10 permitip source 192.168.2.0 0.0.0.255 destination 192.168.1.0 0.0.0.255
rule 20 deny ip source any destination any
#rule 20 deny ip source any destination any##11
encapsulation-mode tunnel
transform esp
esp authentication-algorithm md5
esp encryption-algorithm des
quit
##ike peer R1
remote-address 1.1.1.1
pre-shared-key simple abcdef
quit
ipsec policy policy1 10 isakmp
ike peer R1
security acl 3000
#proposal tran1
在外出介面上套用政策
int e0/0/1
ipsec policy policy1
R3到R1
acl number 3000 match-order auto
#R3到R1
acl number 3000 match-order auto
rule 10 permitip source 192.168.3.0 0.0.0.255 destination 192.168.3.0 0.0.0.255 destination 192. 0.0.0.255
rule 20 deny ip source any destination any
quit
ipsec proposal tran1
encapsulation-mode tunnel
transform esp
esp authentication-algorithm md5
esp authentication-algorithm md5esp encryption-algorithm desquit#ike peer R1#remote-address 1.1. 1.1pre-shared-key simple 123456quitipsec policy policy1 10 isakmpike peer R1#security acl 3000 proposal tran1在外出介面上套用政策int e0/0/1ipsec policy policy1#這樣就完成了!以上是如何進行ipsec說明以及隧道案例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!