IPsec_VPN實現技術【轉載】
GRE Tunnel
GRE Tunnel(General Routing Encapsulation
通用路由封裝)是一種非常簡單的VPN(Virtual Private Network
虛擬專用網路),其基本思路是:VPN閘道器把發往對方的資料包在網路邊界重新進行封裝,然後通過Internet將資料包傳送到目標站點的對等VPN網
關,這個過程也就是把一個私網的資料包封裝在一個公網的資料包中;對方收到資料包後剝離報頭,復原出原來的資料包,然後向其私網內的目標主機傳遞出資料
包;這樣私網的資料包就穿過了公網,到達了另一個私網。但是採用GRE Tunnel
VPN技術的一個重要問題是資料包在Internet上傳輸是不安全的。
實驗
配置IP地址及路由:
R1(config)#ip route 0.0.0.0 0.0.0.0 s0/0
12.1.1.2 permanent
R2(config)#ip route 34.1.1.0 255.255.255.0
s0/1 23.1.1.3
R3(config)#ip route 12.1.1.0 255.255.255.0
s0/1 23.1.1.2
R4(config)#ip route 0.0.0.0 0.0.0.0 s0/0
34.1.1.3 permanent
配置GRE Tunnel:
R1(config)#int tunnel
0
//建立Tunnel介面0,編號只有本地有效
R1(config-if)#ip add 172.16.14.1
255.255.255.0 //配置隧道介面的地址,顯然該地址是私網地址
R1(config-if)#tunnel source
s0/0
//配置Tunnel的源介面
R1(config-if)#tunnel destination
34.1.1.4
//配置Tunnel的目的地址
R1(config-if)#tunnel mode gre
ip
//配置隧道為GRE模式,預設即為GRE
R4(config)#int tunnel
0
R4(config-if)#ip add 172.16.14.4
255.255.255.0
R4(config-if)#tunnel source
s0/0
R4(config-if)#tunnel destination 12.1.1.1
說明:
①Tunnel的源介面:也可以使用“tunnel source
12.1.1.1”命令配置,路由器將以此介面的地址作為源地址重
新封裝VPN資料包;
②Tunnel的目地址:路由器將以此地址作為目的地址重新封裝VPN資料包;
③隧道建立後,可以把隧道看成一條專線。
實驗除錯:
R1#show int tunnel
0
//檢視Tunnel 0介面的狀態
配置路由協議:
R1(config)#router rip
R1(config-router)#version 2
R1(config-router)#no
auto-summary
R1(config-router)#network
172.16.0.0
R4(config)#router rip
R4(config-router)#version 2
R4(config-router)#no
auto-summary
R4(config-router)#network 172.16.0.0
實驗除錯:
R1#show ip route
R1#ping 172.16.4.1 source lo0
以上輸出表明遠端辦公室已經學習到了企業總部內部網路的路由,下一跳為隧道另一端的地址。
配置NAT:
由於現在企業內部和遠端辦公室都無法與Internet通訊,還需要配置NAT。
R1(config)#access-list 10 permit
172.16.1.0 0.0.0.255
R1(config)#ip nat inside source list 10 int
s0/0 overload
R1(config)#int lo0
R1(config-if)#ip nat inside
R1(config)#int
s0/0
R1(config-if)#ip nat
outside
R4(config)#access-list 10 permit
172.16.4.0 0.0.0.255
R4(config)#ip nat inside source list 10 int
s0/0 overload
R4(config)#int lo0
R4(config-if)#ip nat inside
R4(config)#int s0/0
R4(config-if)#ip nat outside
實驗除錯:
R1#ping 34.1.1.3 source
lo0
//測試遠端辦公室和Internet的通訊
R1#ping 172.16.4.1 source
lo0
//再次測試遠端辦公室和公司總部的通訊,一切正常
Site To
Site VPN/LAN To LAN VPN
Site To Site是指把一個區域網和另一個區域網連線在一起,本實驗採用IPSec(Internet Protocol
Security 網際網路協定安全規格)VPN解決這個問題。IPSec VPN是針對IP通訊保護的協議簇,IPSec
VPN的基礎是資料機密性、資料完整性和身份驗證。
資料機密性:一個常見的安全性考慮是防止竊聽者竊取資料。VPN利用封裝和加密機制來實現機密性,常見的算
法有DES、3DES和AES。
資料完整性:資料完整性確保資料在源主機和目的主機之間傳送時不被篡改。VPN通常使用雜湊來確保資料完整
性,常見的演算法有MD5和SHA。
身份驗證:身份驗證確保訊息來自真實來源,並傳送到真實目的地。VPN利用使用者標識確信與其建立通訊的一方
正是其所認為的那一方,常用的演算法有預共享密碼和數字證書。
兩種主要的IPSec協議框架:
驗證報頭(AH):僅提供完整性和身份驗證功能,在不要求或不允許有機密性時使用。AH在原有的資料包頭部和
資料之間加入AH欄位,該欄位裡包含IP頭和資料的完整性校驗值。因此AH能為兩個系統間傳送的IP資料包提供
資料驗證和資料完整性檢查。它驗證訊息在傳送過程中是否未被篡改,還驗證來源。AH不提供資料包的資料機
密性(加密)檢查。AH協議在單獨使用時提供的保護較脆弱,因此需要將其與ESP協議配合使用,來提供資料加
密和防篡改檢測等安全功能。
封裝安全負載(ESP):通過對IP資料包加密隱藏資料及源主機和目的主機的身份提供機密性、完整性和身份驗
證。ESP可驗證內部IP資料包和ESP報頭的身份,從而提供資料來源驗證和資料完整性檢查。ESP有兩種模式:傳
輸模式和隧道模式。
傳輸模式:不產生新的IP包頭,但是在原有的IP包頭和資料欄位之間加入ESP頭部,並且在尾部加了ESP尾和完
整性校驗值,該模式提供端到端的安全。
隧道模式:用新的IP包頭對原有的資料包進行了重新封裝,新增了ESP頭、ESP尾及完整性校驗值,該模式提供
路由器到路由器的安全,計算機到路由器的資料安全並不能保證,該模式對使用者是透明的,因此使用較多。
IPSec的工作方式:
協商階段:互聯VPN之前要進行協商,VPN的協商可分為兩個階段:
①金鑰協商階段:裝置獲取了相應的金鑰(為了保證傳輸過程中傳輸的安全性會使用非對稱金鑰);
②IPsec階段:資料要進加密的資料交換(通過協商後產生的非對稱金鑰獲得加密的先決條件)。
資料傳輸階段:採用對稱加密演算法完成資料的安全傳輸,對等體雙方使用的相應加密手段與校驗手段。
說明:對稱加密演算法安全性更高,第一階段不使用對稱加密演算法的原因就是避免傳輸過程中被截獲,而第二階段
通過安全的金鑰交換之後不怕被截獲,即便被截獲通過轉換集複雜的加密演算法被解密的可能性也是微乎其微。
實驗
配置IP地址及路由:
R1(config)#ip route 0.0.0.0 0.0.0.0 s0/0
12.1.1.2 permanent
R2(config)#ip route 34.1.1.0 255.255.255.0
s0/1 23.1.1.3
R3(config)#ip route 12.1.1.0 255.255.255.0
s0/1 23.1.1.2
R4(config)#ip route 0.0.0.0 0.0.0.0 s0/0
34.1.1.3 permanent
配置Site To Site VPN:
R1(config)#crypto isakmp policy
10
//建立一個ISAKMP策略,編號為10
R1(config-isakmp)#encryption
aes
//配置ISAKMP採用AES加密演算法
R1(config-isakmp)#authentication
pre-share
//配置ISAKMP採用預共享密碼身份認證演算法
R1(config-isakmp)#hash
sha
//配置ISAKMP採用SHA HASH演算法
R1(config-isakmp)#group
5
//配置ISAKMP採用DH group 5金鑰交換演算法
R1(config-isakmp)#lifetime
86400 //為了安全起見設定生存時間,即多長時間重認證,預設即為86400
R1(config)#crypto isakmp key cisco
address
34.1.1.4 //配置對等體34.1.1.4的預共享密碼為cisco
R1(config)#crypto ipsec
transform-set TRAN esp-aes esp-sha-hmac
//建立一個名為TRAN的IPSec交換集,交換集採用ESP封裝,加密演算法為AES,HASH演算法為SHA
R3(cfg-crypto-trans)#mode
tunnel
//設定ESP的模式,預設即為Tunnel
R1(config)#ip access-list extended
VPN
R1(config-ext-nacl)#permit ip
172.16.1.0 0.0.0.255 172.16.4.0 0.0.0.255
//定義一個ACL,只限定從遠端辦公室到企業總部的流量才通過VPN加密傳送,其它流量(如到Internet)不加密
R1(config)#crypto map MAP 10
ipsec-isakmp
//建立名為MAP,編號為10的加密圖
R1(config-crypto-map)#set peer
34.1.1.4
//指明VPN對等體為路由器R4
R1(config-crypto-map)#set
transform-set
TRAN
//指明採用前邊已經定義的交換集
R1(config-crypto-map)#match address
VPN
//指明匹配名為VPN的ACL的定義的流量就是VPN流量
R1(config-crypto-map)#reverse-route
static
//指明要反向路由注入
R1(config)#int
s0/0
R1(config-if)#crypto map
MAP
//把名為MAP的加密圖應用在介面上
R4(config)#crypto isakmp policy
10
R4(config-isakmp)#encryption
aes
R4(config-isakmp)#authentication
pre-share
R4(config-isakmp)#hash
sha
R4(config-isakmp)#group
5
R4(config)#crypto isakmp key cisco
address 12.1.1.1
R4(config)#crypto ipsec transform-set
TRAN esp-aes esp-sha-hmac
R4(config)#ip access-list extended
VPN
R4(config-ext-nacl)#permit ip
172.16.4.0 0.0.0.255 172.16.1.0 0.0.0.255
R4(config)#crypto map MAP 10
ipsec-isakmp
R4(config-crypto-map)#set peer
12.1.1.1
R4(config-crypto-map)#set
transform-set TRAN
R4(config-crypto-map)#match address
VPN
R4(config-crypto-map)#reverse-route
static
R4(config)#int
s0/0
R4(config-if)#crypto map
MAP
說明:
①建立ISAKMP(Internet Security
And Key Management Protocol
因特網安全協議與金鑰管理協議)策略時,可
以建立多個ISAKMP策略,但是雙方路由器將採用編號最小、引數一致的策略,因此雙方至少要有一個策略是一
致的,否則協商失敗。
②加密演算法可以選擇:DES、3DES和AES。
③身份認證演算法可以選擇:預共享密碼和(如果有CA伺服器時也可以選擇)CA(電子證書)進行身份認證。
④HASH演算法可以選擇:SHA和MD5。
⑤金鑰交換演算法可以選擇:group 1、group 2和group
5。
⑥配置預共享密碼時,要確保雙方配置的密碼要一致,否則協商失敗。
⑦配置交換集時,交換集名稱只在本地有效,並且要確保雙方路由器有一個引數一致的交換集,否則協商失敗。
1>交換集的封裝方式:ESP、AH和ESP+AH;
1)ESP封裝提供的功能:機密性、完整性和身份認證;
2)AH封裝提供的功能:完整性和身份認證,實際上AH使用的較少。
2>交換集的加密演算法:DES、3DES和AES;
3>交換集的HASH演算法:SHA和MD5。
⑧建立加密圖時,名稱和編號都只在本地有效,如果有多個編號,路由器將從小到大逐一匹配。
⑨反向路由注入就是在VPN裝置上會根據“match address
VPN”命令生成靜態路由,靜態路由的條數和ACL條數
相對應,“static”引數指明即使VPN會話沒有建立起來返向路由也要建立。
實驗除錯:
R1#show ip route
R1#ping 172.16.4.1 source lo0
以上輸出表明路由器R1有172.16.4.0/24條路由了,下一跳為對方公網地址,並且能與對端區域網正常通訊。
R1#show crypto engine connections
active
//檢視活動的VPN會話的基本情況
以上輸出表明加密和解密是獨立的會話,可以看到加密和解密了個5個資料包。
R1#show crypto isakmp
policy
//顯示系統中所有的ISAKMP策略情況
R1#show crypto ipsec
transform-set
//顯示系統中所有的IPSec交換機情況
R1#show crypto
map
//顯示系統中的加密圖情況
R1#show crypto ipsec
sa
//顯示IPSec會話的情況
NAT配置:
由於現在遠端辦公室和企業內部都無法與Internet通訊,還需要配置NAT。
R1(config)#access-list 100 deny ip
172.16.1.0 0.0.0.255 172.16.4.0 0.0.0.255
//特別注意,要把遠端辦公室去往企業總部的IP資料包排除在進行NAT之外
R1(config)#access-list 100 permit ip
172.16.1.0 0.0.0.255 any
R1(config)#ip nat inside source list 100 int
s0/0 overload
R1(config)#int lo0
R1(config-if)#ip nat inside
R1(config)#int s0/0
R1(config-if)#ip nat outside
R4(config)#access-list 100 deny ip
172.16.4.0 0.0.0.255 172.16.1.0 0.0.0.255
R4(config)#access-list 100 permit ip
172.16.4.0 0.0.0.255 any
R4(config)#ip nat inside source list 100 int
s0/0 overload
R4(config)#int lo0
R4(config-if)#ip nat inside
R4(config)#int s0/0
R4(config-if)#ip nat outside
實驗除錯:
R1#ping 34.1.1.3 source
lo0 //測試遠端辦公室和Internet的通訊
R1#ping 172.16.4.1 source
lo0
//再次測試遠端辦公室和公司總部的通訊,一切正常
相關文章
- ORACLE同步軟體技術實現對比(轉載)Oracle
- 【轉載】SAP 系統中STO+VC 技術實現
- Delphi中停靠技術的實現 (轉)
- 超實用:實現負載均衡技術的方式負載
- 六種實現負載均衡技術的方式負載
- 技術預測法(轉載)
- linux防火牆實現技術比較(轉)Linux防火牆
- MFC抽象類之動態實現技術 (轉)抽象
- (轉載)Autodesk面試技術題解答面試
- rman技術速查手冊(轉載)
- Red Flag 技術文件下載(轉)
- 基礎統計技術(轉載)
- 團隊溝通技術(轉載)
- 用跨程式子類化技術實現對其它程式訊息的攔載 (轉)
- 技術教程網 -- 實用技術參考 (轉)
- 網上投票作弊的技術實現(純技術交流,勿用作他途!!) (轉)
- 從現場實施到技術支援的轉折
- Javascript技術實現真正的網上試聽 (轉)JavaScript
- linux防火牆實現技術比較(1)(轉)Linux防火牆
- 淺談MFC中超類化技術的實現 (轉)
- 虛擬現實技術
- Linux下雙網路卡繫結技術實現負載均衡和失效保護(轉)Linux負載
- Cocos 技術派:實時競技小遊戲技術實現分享遊戲
- 【轉載】《天諭》全新PBR技術曝光
- 佩羅的技術分類(轉載)
- 價值工程的技術方法(轉載)
- 蒙特卡羅模擬技術 (轉載)
- 培訓效果評價技術(轉載)
- 用流(stream)技術做下載 (轉)
- 滑鼠螢幕取詞技術的原理和實現 (轉)
- 【區塊鏈技術實現】區塊鏈
- 【轉載】技術人員的發展之路
- 股票技術分析的操作原則(轉載)
- 技術|如何為MySQL MGR實現簡單的負載均衡代理?MySql負載
- [Brave]請教資料懶載入的具體實現技術
- 基於HTML5樹元件延遲載入技術實現HTML元件
- WMI Series 1:實現Windows管理的各種技術概述 (轉)Windows
- VoIP與WiMAX實現結合需克服技術瓶頸(轉)