1、IPSEC ××× 模式
一、tunnel模式
隧道模式中,×××設備將整個三層數據報文封裝在×××數據內,再爲封裝後的數據報文添加新的IP包頭。因爲新IP包頭中封裝的是×××設備的ip地址信息,因此當***者截獲數據後,不但沒法瞭解實際載荷數據的內容,同時也沒法知道實際通訊雙方的地址信息。
二、transport模式
傳輸模式一個最顯著的特色就是:在整個×××的傳輸過程當中,IP包頭並無被封裝進去,這就意味着從源端到目的端數據始終使用原有的IP地址進行通訊。而傳輸的實際數據載荷被封裝在×××報文中。對於大多數×××傳輸而言,×××的報文封裝過程就是數據的加密過程,所以,***者截獲數據後將沒法破解數據內容,但卻能夠清晰地知道通訊雙方的地址信息。
2、數據加密算法
一、對稱加密
對稱加密,加密祕鑰解密祕鑰相同,而且祕鑰在公網中傳輸,經常使用的對稱加密算法有DES、3DES、AES等。
二、非對稱加密
非對稱加密,因爲算法強度複雜,使得加密解密速度很是慢。爲了解決這個問題,咱們採用這樣一種方法:數據傳輸仍是採起對稱加密算法,而對稱加密的祕鑰用非對稱加密算法來加密。即公鑰用非對稱算法加密,只能用私鑰來解密,但私鑰不在公網中傳輸。經常使用的費對稱加密算法有RSA、ES、DH等。
3、數據報文驗證
數據報文驗證包括兩個方面:數據來源驗證(身份驗證)和報文完整性驗證。
HMAC功能實現驗證功能
HMAC(hash-based message authentication codes,散列消息代碼)功能專門開發用來處理數據包相關的驗證問題,它使用一個共享的對稱祕鑰來產生固定的輸出結果——數字簽名。HMAC屬於單向散列算法(hash算法)的一個子集,區別於前面講解的加密算法,散列算法是不可逆的,即加密後的數據是沒法還原的。MD5和SHA是HMAC的兩種經常使用算法。
4、IPSEC ×××
一、 IPSec鏈接
對等體之間創建IPSec ×××的鏈接須要三個步驟。
1) 流量觸發IPSec
通常來講,IPSec創建過程是由對等體之間發送的流量觸發的,一旦有×××流量通過×××網關,鏈接過程便開始創建了。算法
2) 創建管理鏈接
IPSec使用ISAKMP/IKE階段1來構建一個安全的管理連結。這裏須要注意的是,這個管理鏈接只是一個準備工做,它不被用來傳輸實際的數據。
3) 創建數據鏈接
IPSec基於安全的管理鏈接協商創建安全的數據鏈接,而ISAKMP/IKE階段2就是用來完成這個任務的,數據鏈接用於傳輸真正的用戶數據。安全
二、IKE 第一階段:共使用了6個報文
第 1 2 報文,明文發送。驗證正確的peer 地址,使用發送本身全部的SA信息(該SA信息爲ISAKMP SA ,雙向的,雙方必須一致),對方會回覆匹配的SA策略。
第 3 4 報文,明文發送。傳遞DH算法的公鑰。隨機產生一些值,雙方交互運算,獲得公共信息,從而計算出來三個相同的Skey-id。
Skey-id d ----衍生出來Ipsec 中對稱加密算法的密鑰
Skey-id a---衍生出來Ipsec 的隨機值(用於hamc)
Skey-id e---衍生出來ISAMKP中的對稱加密算法的密鑰
IKE 第二階段hmac的隨機是雙方手工指定的。
第 5 6 報文,使用密文發送,將全部的公共信息進行認證。
三、IKE第二階段: 進行Ipsec SA協商(該SA對傳遞的數據進行封裝)共三個報文,所有是加密的。
第1個再次進行認證(檢測IPsec中的公共信息)
第2個報文發送本身全部SA策略
第3個報文進行確認ipsec *** 創建完成。ide
5、實驗
一、pc1的配置
PC1(config)#int e0/0
PC1(config-if)#ip address 192.168.10.100 255.255.255.0
PC1(config)#ip default-gateway 192.168.10.254
PC1(config)#no ip routing測試
二、pc3的配置
PC1(config)#int e0/0
PC1(config-if)#ip address 192.168.20.100 255.255.255.0
PC1(config)#ip default-gateway 192.168.20.254
PC1(config)#no ip routing加密
三、R1的配置
R1(config)#int e0/1
R1(config-if)#ip address 192.168.10.254 255.255.255.0
R1(config-if)#no shutdown
R1(config)#int e0/0
R1(config-if)#ip add ress 12.1.1.1 255.255.255.0
R1(config-if)#no shutdown
R1(config)#ip route 0.0.0.0 0.0.0.0 12.1.1.2
R1(config)#int lo 1
R1(config-if)#ip add ress 192.168.1.100 255.255.255.0
四、R2的配置
R2(config)#int e0/0
R2(config-if)#ip address 12.1.1.2 255.255.255.0
R2(config-if)#no shutdown
R2(config)#int e0/1
R2(config-if)#ip address 23.1.1.2 255.255.255.0
R2(config-if)#no shutdown
五、R3的配置
R3(config)int e0/0
R3(config-if)#ip address 23.1.1.3 255.255.255.0
R3(config-if)#no shutdown
R3(config)#int e0/1
R3(config-if)#ip add ress 192.168.20.254 255.255.255.0
R3(config-if)#no shutdown
R3(config)#ip route 0.0.0.0 0.0.0.0 23.1.1.2
R3(config)#int lo 1
R3(config-if)#ip add ress 192.168.2.100 255.255.255.0
以上配置完後,能夠測試,pc之間不通,R1與R3能夠ping通。
R1能夠ping通R3
R1#ping 23.1.1.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 23.1.1.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/2 ms3d
PC1不可以ping通PC3
PC1#ping 192.168.20.100 source 192.168.10.100
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.10.100, timeout is 2 seconds:
UUUUU
Success rate is 0 percent (0/5)code
接下來開始配置IPSec ×××
六、在R1上配置IPSec ×××
R1(config)#access-list 100 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255
R1(config)#access-list 100 permit ip 192.168.10.0 0.0.0.255 192.168.20.0 0.0.0.255
R1(config)#crypto isakmp policy 10
R1(config-isakmp)#encr 3des
R1(config-isakmp) #hash md5
R1(config-isakmp) #authentication pre-share
R1(config-isakmp) #group 2
R1(config)#crypto isakmp key 6 cisco address 23.1.1.3
R1(config)#crypto ipsec transform-set xxx esp-3des esp-md5-hmac
R1(cfg-crypto-trans)#mode tunnel
R1(config)#crypto map yy 10 ipsec-isakmp
R1(config-crypto-map)#set peer 23.1.1.3
R1(config-crypto-map)# set transform-set xxx
R1(config-crypto-map)# match address 100
R1(config)#int e0/0
R1(config-if)#crypto map yyorm
七、在R3上配置IPSec ×××
抓取感興趣流量
R1(config)#access-list 100 permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255
R1(config)#access-list 100 permit ip 192.168.20.0 0.0.0.255 192.168.10.0 0.0.0.255
IKE第一階段,ISAKMP SA協商
R1(config)#crypto isakmp policy 10 //定義ISAKMP(用於輪循)
R1(config-isakmp)#encr 3des //定義加密算法
R1(config-isakmp) #hash md5 //定義認證算法
R1(config-isakmp) #authentication pre-share //使用域共享祕鑰方式產生key
R1(config-isakmp) #group 2 //定義非對稱加密算法(爲DH-2)
定義共享祕鑰
R1(config)#crypto isakmp key 6 cisco address 12.1.1.1
IKE第二階段,IPSEC SA協商
R1(config)#crypto ipsec transform-set xxx esp-3des esp-md5-hmac
//使用ESP封裝,3DES加密算法,MD5認證,HMAC源認證
R1(cfg-crypto-trans)#mode tunnel //定義爲隧道模式
定義cryto map(配置加密映射)
R1(config)#crypto map yy 10 ipsec-isakmp //定義名稱
R1(config-crypto-map)#set peer 12.1.1.1 //定義對方某個IP地址生效
R1(config-crypto-map)# set transform-set xxx //定義轉換集
R1(config-crypto-map)# match address 100 //匹配感興趣流量
R1(config)#int e0/0 //接口調用crypto map
R1(config-if)#crypto map yy
八、測試
1)、PC1可以ping通PC3
PC1#ping 192.168.20.100 source 192.168.10.100
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.20.100, timeout is 2 seconds:
Packet sent with a source address of 192.168.10.100
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 1/3/4 ms
2)、R1的環回可以ping通R3的環回(做用與PC1 ping PC3相同)
R1#ping 192.168.2.100 source 192.168.1.100
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.2.100, timeout is 2 seconds:
Packet sent with a source address of 192.168.1.100
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 7/8/11 ms
3)、PC 不可以ping通R2
PC1#ping 12.1.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 12.1.1.2, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)blog