1.ipsec簡介
IPSec 是包括安全協(xié)議(Security Protocol)和密鑰交換協(xié)議(IKE),由IETF(Internet Engineering TaskForce,Internet 工程任務組)開發(fā)的,可為通訊雙方提供訪問控制、無連接的完整性、數據來源認證、反重放、加密以及對數據流分類加密等服務的一系列網絡安全協(xié)議的總稱,其中安全協(xié)議又包括AH(頭驗證協(xié)議)和ESP(安全封裝載荷);而IKE是一種基于ISAKMP(Internet Security Association and Key Management Protocol,互聯(lián)網安全關聯(lián)和密鑰管理協(xié)議)中TCP/IP框架,合并了Oakley(密鑰交換協(xié)議)的一部分和SKEME(密鑰技術協(xié)議)的混合協(xié)議。
2.IPSEC的安全特性
(1)不可否認性:”不可否認性”可以證實消息發(fā)送方是唯一可能的發(fā)送者,發(fā)送者不能否認發(fā)送過消息。”不可否認性”是采用公鑰技術的一個特征,當使用公鑰技術時,發(fā)送方用私鑰產生一個數字簽名隨消息一起發(fā)送,接收方用發(fā)送者的公鑰來驗證數字簽名。由于在理論上只有發(fā)送者才唯一擁有私鑰,也只有發(fā)送者才可能產生該數字簽名,所以只要數字簽名通過驗證,發(fā)送者就不能否認曾發(fā)送過該消息。但”不可否認性”不是基于認證的共享密鑰技術的特征,因為在基于認證的共享密鑰技術中,發(fā)送方和接收方掌握相同的密鑰。
(2)抗重播性(Anti-Replay): IPsec接收方可根據數據包數據段前加入的32位序列號來檢測每個IP包的唯一性并拒絕接收過時或重復的報文,以防止***者截取破譯信息后,再用相同的信息包冒取非法訪問權(即使這種冒取行為發(fā)生在數月之后)。
(3)數據完整性(Data Integrity): IPsec接收方利用md5,sha-1等哈希算法對發(fā)送方發(fā)送來的包進行認證,防止傳輸過程中數據被篡改,確保發(fā)出數據和接收數據的一致性。
(4)數據可靠性(Confidentiality):IPsec發(fā)送方在通過des,3des,aes等對稱加密算法在網絡傳輸包前對包進行加密,保證在傳輸過程中,即使數據包遭截取,信息也無法被讀。與IPSec策略的具體設置相關,該特性可在IPSec中選擇是否開啟。
(5)數據來源認證(Data Authentication):IPsec在接收端通過preshared key(域共享密鑰),證書,kerberos v5等可以認證發(fā)送IPsec報文的發(fā)送端是否合法。
3.IPSEC的工作模式
(1)隧道(tunnel)模式:用戶的整個IP數據包被用來計算AH或ESP頭,AH或ESP頭以及ESP加密的用戶數據被封裝在一個新的IP數據包中。通常,隧道模式應用在兩個安全網關之間的通訊。
(2)傳輸(transport)模式:只是傳輸層數據被用來計算AH或ESP頭,AH或ESP頭以及ESP加密的用戶數據被放置在原IP包頭后面。常見的情況是,傳輸模式用于兩個主機之間或一臺主機和安全網關之間的通信。
4.IPSEC安全機制中兩種協(xié)議的比較
AH協(xié)議(IP協(xié)議號為51)提供數據源認證、數據完整性校驗和防報文重放功能,它能保護通信免受篡改,但不能防止竊聽,適合用于傳輸非機密數據。AH的工作原理是在每一個數據包上添加一個身份驗證報文頭,此報文頭插在標準IP包頭后面,對數據提供完整性保護。,但因為IP頭部分包含很多變量,比如type of service(TOS),flags,fragment offset,TTL以及header checksum。所以這些值在進行authtication前要全部清零。否則hash會mismatch導致丟包。因此AH不支持NAT轉換。
ESP協(xié)議,在IP協(xié)議中的編號為50,能夠提供數據加密、數據來源驗證、數據完整性檢查以及防止重復傳輸的功能。ESP的工作原理是在每一個數據包的標準IP包頭后面添加一個ESP報文頭,并在數據包后面追加一個ESP尾。ESP協(xié)議的不同之處在于它會對需要保護的用戶數據進行加密,然后再將其封裝到IP包中,以確保數據的機密性。
下圖更好的解釋了AH和ESP在IPSEC兩種工作模式下對數據包的加密與認證
5.IPsec基本概念(基于H3C)
1. 數據流:在 IPSec 中,一組具有相同源地址/掩碼/端口、目的地址/掩碼/端口和上層協(xié)議的數據集稱為數據流。通常,一個數據流采用一個訪問控制列表(acl)來定義,所有為ACL 允許通過的報文在邏輯上作為一個數據流。
安全策略指定了用戶手動配置的安全措施,用于規(guī)定對于哪些數據流采用何種安全操作。對數據流的定義是通過在一個訪問控制列表中配置多條規(guī)則來實現,在安全策略中引用這個訪問控制列表來確定需要進行保護的數據流。一條安全策略由“名字”和“順序號”共同唯一確定。
3.安全策略組:所有具有相同名字的安全策略的集合。在一個接口上,可應用或者取消一個安全策略組,使安全策略組中的多條安全策略同時應用在這個接口上,從而實現對不同的數據流進行不同的安全保護。在同一個安全策略組中,順序號越小的安全策略,優(yōu)先級越高。
4.安全聯(lián)盟(Security Association,簡稱SA):IPSec 對數據流提供的安全服務通過安全聯(lián)盟SA 來實現,它包括協(xié)議、算法、密鑰等內容,具體確定了如何對IP 報文進行處理。一個SA 就是兩個IPSec 系統(tǒng)之間的一個單向邏輯連接,輸入數據流和輸出數據流由輸入安全聯(lián)盟與輸出安全聯(lián)盟分別處理。安全聯(lián)盟由一個三元組(安全參數索引(SPI)、IP 目的地址、安全協(xié)議號(AH或ESP))來唯一標識。 ?
安全聯(lián)盟可通過手工配置和自動協(xié)商兩種方式建立。 ? ?
手工建立安全聯(lián)盟的方式是指用戶通過在兩端手工設置SA的全部信息,然后在接口上應用安全策略建立安全聯(lián)盟,缺點是配置復雜,而且不支持一些高級特性(如定時更新密鑰),適用于小型企業(yè)。 ? ?
自動協(xié)商方式由IKE 生成和維護,通信雙方基于各自的安全策略庫經過匹配和協(xié)商,最終建立安全聯(lián)盟而不需要用戶的干預,配置簡單,適用于大型企業(yè)。在自動協(xié)商中又分為主模式與野蠻模式,野蠻模式交換與主模式交換的主要差別在于,野蠻模式不提供身份保護。在對身份保護要求不高的場合,使用交換報文較少的野蠻模式可以提高協(xié)商的速度;在對身份保護要求較高的場合,則應該使用主模式。
每個IPSec報文都攜帶32位的安全參數索引(SPI)。三元組由SPI、目的IP地址和安全協(xié)議號構成,被用來唯一標識一個特定的安全聯(lián)盟。在手工配置安全聯(lián)盟時,需要手工指定SPI 的取值。為保證安全聯(lián)盟的唯一性,每個安全聯(lián)盟需要指定不同的SPI 值;使用IKE協(xié)商產生安全聯(lián)盟時,SPI 將隨機生成。
6.安全提議:包括安全協(xié)議、安全協(xié)議使用的算法、安全協(xié)議對報文的封裝形式,規(guī)定了把普通的IP 報文轉換成IPSec報文的方式。安全策略可通過引用安全建議來規(guī)定所采用的協(xié)議、算法等。
6.IPsecIPSEC配置步驟
創(chuàng)建加密訪問控制列表
根據是否與加密訪問控制列表匹配,可以確定那些 IP 包加密后發(fā)送,那些IP 包直
接轉發(fā)。需要保護的安全數據流使用擴展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
設置安全協(xié)議對 IP 報文的封裝模式encapsulation-mode { transport | tunnel }
選擇安全協(xié)議transform { ah-new | ah-esp-new | esp-new }
選擇加密算法與認證算法
在 ESP 協(xié)議中,轉換選項可以是 { ah-new | ah-esp-new | esp-new }
AH協(xié)議下 transform { ah-new | ah-esp-new | esp-new }
創(chuàng)建安全策略
手工創(chuàng)建安全策略的配置包括:
手工創(chuàng)建安全策略ipsec policy policy-name sequence-number manual
配置安全策略引用的訪問控制列表 security acl access-list-number
指定安全隧道的起點與終點 tunnel local ip-address
tunnel remote ip-address
配置安全策略中引用的安全提議 proposal proposal-name
配置安全策略聯(lián)盟的 SPI 及使用的密鑰
SPI的配置 ? ? ? ? ? ? ? ? sa inbound { ah | esp } spi spi-number
sa outbound { ah | esp } spi spi-number
密鑰的配置
AH16進制密鑰 sa { inbound | outbound } ah hex-key-string hex-key
AH 字符密鑰 sa { inbound | outbound } ah string-key string-key
ESP16進制密鑰 sa { inbound | outbound } esp encryption-hex hex-key
ESP字符密鑰 sa { inbound | outbound } esp string-key string-key
? ?在接口上應用安全策略組
? ? ? ? ? ? ? ? ? ?ipsec policy policy-name
IKE 創(chuàng)建安全策略聯(lián)盟的配置包括:
用 IKE 創(chuàng)建安全策略聯(lián)盟
ipsec policy policy-name sequence-number isakmp
配置安全策略引用的訪問控制列表
security acl access-list-number
指定安全隧道的終點
tunnel remote ip-address
配置安全策略中引用的安全提議
proposal proposal-name1 [ proposal-name2…proposal-name6 ]
配置安全聯(lián)盟的生存時間(可選)
配置全局時間
ipsec sa global-duration time-based seconds
ipsec sa global-duration traffic-based kilobytes
配置獨立時間
sa duration { time-based seconds |traffic-based kilobytes }
IPsec配置案例:使用ipsec隧道協(xié)議完成企業(yè)安全通信
實驗器材:三臺華為AR1220路由器,一臺華為s5700交換機
拓撲圖:
配置過程:
交換機:(本交換機添加端口需要開啟端口模式為access)
vlan 10
port GE0/0/10
vlan 20
port GE0/0/20
vlan 24
port GE0/0/24
int vlan 10
ip add 1.1.1.2 255.255.255.0
int vlan 20
ip add 1.1.2.2 255.255.255.0
int vlan 24
ip add 1.1.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.255
rule 20 deny ip source any 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.0.255
rule 20 deny ip source any destination any
quit
安全提議
ipsec proposal tran1
encapsulation-mode tunnel
transform esp
esp authentication-algorithm md5 (校驗算法)
esp encryption-algorithm des (加密算法)
ipsec proposal tran2
encapsulation-mode tunnel
transform esp
esp authentication-algorithm md5
esp encryption-algorithm des
quit
配置相應的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
quit
ipsec proposal tran1
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
rule 10 permitip source 192.168.3.0 0.0.0.255 destination 192.168.1.0 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 encryption-algorithm des
quit
ike peer R1
remote-address 1.1.1.1
pre-shared-key ?simple 123456
quit
ipsec policy policy1 10 isakmp
ike peer R1
security acl 3000
proposal tran1
在外出接口上應用策略
int e0/0/1
ipsec policy policy1
這樣就完成了!