一、基礎知識
VPN(Virtual Private Network)虛擬專有網絡,即虛擬專網。VPN可以實現在不安全的網絡上,安全的傳輸數據,好像專網!VPN只是一個技術,使用PKI技術,來保證數據的安全三要素(C、I、A)
1.1 VPN的類型
1)遠程訪問VPN:(Remote Access VPN)
一般用在個人到安全連接企業內部!
一般出差員工/在家辦公,安全連接內網時使用!(需要有單獨的VPN服務器)
一般公司部署VPN服務器,員工在外撥號連接VPN即可!
常見RA-VPN協議:PPTP VPN、L2TP VPN、SSTP VPN、(過時了)
EZvpn/easyvpn(思科私有的)、SSL VPN (目前最流行的)
2)點到點VPN
一般用在企業對企業安全連接!
一般需要在兩個企業總出口設備之間建立VPN通道!
常見的點到點VPN:IPsecVPN
1.2 IPsecVPN
1)屬於點到點VPN,可以在2家企業之間建立VPN隧道!
2)VPN隧道優點:安全性!合並倆家企業內網!
3)VPN隧道技術:
- 傳輸模式:只加密上層數據,不加密私有IP包頭,速度快
- 隧道模式:加密整個私有IP包,包括IP包頭,更安全,速度慢
4)VPN隧道技術:重新封裝技術+加密認證技術
5)IPsecVPN分為2大階段
第一階段:管理連接
目的:通信雙方設備通過非對稱加密算法 加密 對稱加密算法 所使用的 對稱密鑰!
命令:
conf t
crypto isakmp policy 1 ( IKE 傳輸集/策略集,可以多配置幾個策略集)
encryption des/3des/aes (加密算法類型)
hash md5/sha (完整性校驗算法類型)
group 1/2/5 (使用D-H算法的版本?)
authentication pre-share (預共享密鑰算法,身份驗證方式)
lifetime 秒 (默認86400秒) (可以不配置,對稱密鑰有效時間,如果雙方不一致,取min,最好一致)
exit
crypto isakmp key 預共享密鑰 address 對方的公網IP地址
第二階段:數據連接
目的:通過 對稱加密算法 加密 實際所要傳輸的私網數據!
定義VPN觸發流量:
access-list 100 permit ip 192.168.1.0 0.0.0.255 172.16.0.0 0.0.255.255定義加密及認證方式:
conf t
crypto ipsec transform-set 傳輸模式名 esp-des/3des/aes esp/ah-md5/sha-hmac
例:
crypto ipsec teansform-set wencoll esp-aes esp-sha-hmac
- ESP:支持加密及認證(身份驗證+完整性)
- AH:只支持認證,沒得加密(身份驗證+完整性)
創建MAP映射表
conf t
crypto map map名 1 ipsec-isakmp (1是隧道1)
match address ACL表名 (階段2里面的ACL表名)
set transform-set 傳輸模式名
set peer 對方的公網IP
exiteg:
crypto map wenmap 1 ipsec-isakmp
match address 100
set transform-set wentran
set peer 200.1.1.2
exit
crypto map wenmap 2 ipsec-isakmp (2是隧道2)
match address 101
set transform-set wentran
set peer 150.1.1.2
exit
將map表應用到外網端口
int f0/1(外網端口)
crypto map wenmap
exit
****注意:一個接口只能應用一個map表!!!!
查看命令:
show crypto isakmp sa 查看第一階段狀態
show crypto ipsec sa 查看第二階段狀態show crypto isakmp policy 查看第一階段的策略配置集
show crypto ipsec transform-set 查看第二階段的傳輸模式
路由器的工作原理:內網--to--外網: 路由--NAT--VPN--出去
實驗1:北京--上海--建立VPN隧道,並驗證(這篇文章所做的)
實驗2:在實驗1的基礎上,要求2個公司能上網,但不影響VPN隧道(因為流量經過路由器時,先NAT再VPN,但是如果經過NAT轉換的流量就無法匹配到VPN的需求了。於是需要在NAT的ACL表中豁免來源是192目標是172的流量)
acc 101 deny ip 192.168.1.0 0.0.0.255 172.16.1.0 0.0.0.255
acc 101 permit any
實驗3:在實驗1和2的基礎上,要求北京總部與廣州新成立的分公司也建立VPN隧道(北京那里有倆隧道,NAT的ACL表里再加一條豁免)
可選:
實驗4:在1-3的基礎上,要求廣州和上海之間不建立VPN隧道,但廣州和上海可以互相安全的通信!(倆路由器都加一條VPN的ACL。)
遠程訪問VPN:(擴展知識點)
在公司需要搭建VPN服務器
VPN服務器需要對VPN客戶端進行身份驗證
VPN服務器需要給VPN客戶端下發權限及IP地址
二、實驗過程
要求在中間路由器R2沒有設置路由轉發表的前提下,北京——上海建立VPN隧道互通。
1)如實驗拓撲圖給PC主機配置靜態IP、子網掩碼、網關
2)給路由器配置接口IP與路由表項
Router(config)#ho R1 R1(config)#int f0/1 R1(config-if)#ip add 192.168.1.254 255.255.255.0 R1(config-if)#no sh R1(config-if)# %LINK-5-CHANGED: Interface FastEthernet0/1, changed state to up %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up exit R1(config)#int f0/0 R1(config-if)#ip add 100.1.1.1 255.255.255.0 R1(config-if)#no sh R1(config-if)# %LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up exit R1(config)#ip route 0.0.0.0 0.0.0.0 100.1.1.2
Router(config)#ho R2 R2(config)#int f0/0 R2(config-if)#ip add 100.1.1.2 255.255.255.0 R2(config-if)#no sh R2(config-if)# %LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up exit R2(config)#int f0/1 R2(config-if)#ip add 200.1.1.1 255.255.255.0 R2(config-if)#no sh R2(config-if)# %LINK-5-CHANGED: Interface FastEthernet0/1, changed state to up exit
Router(config)#ho R3 R3(config)#int f0/1 R3(config-if)#ip add 200.1.1.2 255.255.255.0 R3(config-if)#no sh R3(config-if)# %LINK-5-CHANGED: Interface FastEthernet0/1, changed state to up exit R3(config)#int f0/0 R3(config-if)#ip add 172.16.1.254 255.255.255.0 R3(config-if)#no sh R3(config-if)# %LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up exit R3(config)#ip route 0.0.0.0 0.0.0.0 200.1.1.1
3)管理連接、創建連接、創建map映射表、將map表應用到外網端口
R1(config)#crypto isakmp policy 1 R1(config-isakmp)#encryption aes R1(config-isakmp)#group 2 R1(config-isakmp)#hash sha R1(config-isakmp)#authentication pre-share R1(config-isakmp)#exit R1(config)#crypto isakmp key coderge address 200.1.1.2 R1(config)# R1(config)#acc 100 permit ip 192.168.1.0 0.0.0.255 172.16.1.0 0.0.0.255 R1(config)#crypto ipsec transform-set getran esp-aes esp-sha-hmac R1(config)# R1(config)# R1(config)#crypto map gemap 1 ip R1(config)#crypto map gemap 1 ipsec-isakmp % NOTE: This new crypto map will remain disabled until a peer and a valid access list have been configured. R1(config-crypto-map)#set peer 200.1.1.2 R1(config-crypto-map)#match address 100 R1(config-crypto-map)#set transform-set getran R1(config-crypto-map)#exit R1(config)# R1(config)# R1(config)#int f0/0 R1(config-if)#crypto map gemap *Jan 3 07:16:26.785: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON
可以通過命令查看當前連接未建立
繼續配置另一端的路由器,Giao!!!
crypto isakmp policy 2 encryption aes group 2 hash sha authentication pre-share exit crypto isakmp key coderge address 100.1.1.1 acc 102 permit ip 172.16.1.0 0.0.0.255 192.168.1.0 0.0.0.255 crypto ipsec transform-set ge2tran esp-aes esp-sha-hmac crypto map ge2map 1 ipsec-isakmp set peer 100.1.1.1 match address 102 set transform-set ge2tran exit int f0/1 crypto map ge2map
現在就ping的通了、(試驗成功!!!)
最后在R1查看一下狀態
R1(config)#do sh crypto ipsec sa interface: FastEthernet0/0 Crypto map tag: gemap, local addr 100.1.1.1 protected vrf: (none) local ident (addr/mask/prot/port): (192.168.1.0/255.255.255.0/0/0) remote ident (addr/mask/prot/port): (172.16.1.0/255.255.255.0/0/0) current_peer 200.1.1.2 port 500 PERMIT, flags={origin_is_acl,} #pkts encaps: 271, #pkts encrypt: 271, #pkts digest: 0 #pkts decaps: 240, #pkts decrypt: 240, #pkts verify: 0 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 1, #recv errors 0 local crypto endpt.: 100.1.1.1, remote crypto endpt.:200.1.1.2 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0 current outbound spi: 0x720A552B(1913279787) inbound esp sas: spi: 0x10D639AC(282474924) transform: esp-aes esp-sha-hmac , in use settings ={Tunnel, } conn id: 2004, flow_id: FPGA:1, crypto map: gemap sa timing: remaining key lifetime (k/sec): (4525504/3448) IV size: 16 bytes replay detection support: N Status: ACTIVE inbound ah sas: inbound pcp sas: outbound esp sas: spi: 0x720A552B(1913279787) transform: esp-aes esp-sha-hmac , in use settings ={Tunnel, } conn id: 2005, flow_id: FPGA:1, crypto map: gemap sa timing: remaining key lifetime (k/sec): (4525504/3448) IV size: 16 bytes replay detection support: N Status: ACTIVE outbound ah sas: outbound pcp sas: