概述

VPN(Virtual Private Network)可以实现在不安全的网络上(一般指互联网),安全的传输数据,像专线网络一样。

专线网络具有安全,可靠的特性,但单独拉一条专线价格也比较高,而VPN通过互联网传输数据,虽然无法保证可靠性,但可以做到安全传输。

VPN使用 PKI技术 来保证数据的安全三要素

VPN的类型

  1. 远程访问VPN(Remote Access VPN)
    用在个人安全连接到企业内部,公司部署VPN服务器,员工在外拨号连接VPN即可
    常见RA-VPN协议:PPTP VPN、L2TP VPN、SSTP VPN、EZvpn/easyvpn、SSL VPN

    一般翻墙软件使用的就是PPTP VPN协议,用户连接到VPN服务器加密传输数据,绕过防火墙拦截。运营商只对企业做了流量过滤,拦截所有访问VPN服务端口的数据包,个人家用网络一般不做限制,否则数据包在连接VPN服务器之前就会被干掉。

  2. 点到点VPN
    用在企业对企业的安全连接,需要在两个企业总出口设备之间建立VPN通道。
    常见的点到点VPN:IPsecVPN

IPsecVPN

VPN隧道优点:安全性,合并内网

VPN隧道技术:重新封装技术+加密认证技术

  1. 传输模式:
    只加密上层数据,不加密私有IP包头,速度快。

    对4、5层数据进行加密,并将三层IP头部中的源IP和目标IP移动到IP包头中的可选将,然后替换为公网地址

    缺点:没有对IP包头进行加密,黑客依然可以获取IP包头中可选项的数据,并可对段偏移量进行篡改。

  2. 隧道模式:
    加密整个私有三层数据包,包括IP头部,更安全,速度慢

    对数据包加密后添加VPN头和VPN尾,然后添加新的IP包头部

查看状态命令:

查看第一阶段状态
do sh crypto isakmp sa

查看第二阶段状态
do sh crypto ipsec sa

查看第一阶段IKE策略配置集
show crypto isakmp policy

查看阶段二的传输模式
show crypto ipsec transform-set


建立隧道过程

第一阶段-管理连接

通信双方设备通过非对称加密算法加密对称加密算法所使用的对称密钥

ISAKMP是一个框架,在该框架以内,它定义了每一次交换的包结构
ISAKMP使用IKE协议来传输数据,默认端口UDP 500

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Router>en
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.

/*激活传输集(策略集)*/
Router(config)#crypto isakmp policy 1

/*对称加密算法,一般使用aes*/
Router(config-isakmp)#encryption des/3des/aes

/*验证数据完整性*/
Router(config-isakmp)#hash md5/sha

/*IKE默认使用DH算法,此处配置非对称算法的长度,可选择1/2/5,*/
Router(config-isakmp)#group 2

/*预共享秘钥 不在互联网上传输,由同一管理员配置*/
Router(config-isakmp)#authentication pre-share

/*生存时间,默认1天*/
Router(config-isakmp)#lifetime 86400
Router(config-isakmp)#exit

Router(config)#crypto isakmp key 预共享秘钥 address 对方的公网IP

预共享秘钥的作用类似于PKI技术中的数字证书,用来验证hash值的真实性。将元数据加密后加上预共享秘钥后在通过sha算法签名

策略集可以不只一个,协商双方依次按照优先级传输策略表,如果参数一致则协商成功,最后得出一个用于对称算法使用的秘钥,进入阶段二


第二阶段-数据连接

通过对称加密算法加密实际索要传输的私网数据。

VPN触发流量

1
2
conf t
access-list 100 permit ip 192.168.1.0 0.0.0.255 172.16.0.0 0.0.255.255

定义加密及认证方式

1
2
conf t
crypto ipsec transform-set 自定义传输模式名 esp-des/3des/aes esp/ah-md5/sha-hmac

ESP支持加密及认证(身份验证+完整性)
AH只支持认证(身份验证+完整性)
一般使用ESP协议即可

-hmac表示启用消息验证码,将消息(预共享秘钥)和秘钥作为输入生成摘要,接收方通过验证hash值可以同时确保完整性和合法性。

如对方设备不支持个别算法可以写多张表进行适配。


ESP和AH协议封装格式

创建MAP映射表

1
2
3
4
5
6
conf t
crypto map map名 1 ipsec-isakmp
match address acl表名
set transform-set 自定义传输模式名
set peer 对方的公网IP
exit

将MAP表应用到外网端口

1
2
3
4
5
/*一个接口只能应用一个MAP表*/

int f0/1
crypto map map名
exit