一、基础知识
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: