Vpn的连接模式
1) 传输模式
从数据的发出到接收,中间的传输过程全部是加密的(隐藏)
不保护目标和源IP地址(可见)
截获后可以看见目的IP地址和源IP地址,但是看不见里面的数据
多用于一个局域网内通信
2) 隧道模式
隐藏整个数据包
添加一个新的包头,,封装VPN设备的IP地址信息
截获后,既无法看见数据内容,又无法看到通信双方的地址
多用于,总公司和分公司之间通信
VPN的类型:
1) 站点到站点
通过隧道模式在VPN网关之间保护两个或多个站点之间的流量
对于终端用户来说,在VPN网关中间的网络是透明的,相当与一个路由器连接了两个局域网一样
2) 远程访问VPN
一般用于出差在外的员工连接公司网络使用
当远程用户连接到公司内网的时候,就相当与在局域网内办公一样
VPN加密算法
对称加密算法:
算法公开,两边使用相同的密钥
常见的算法有
DES:安全性较低,加密速度最快
3DES:安全一般,加密速度一般
AES:最高安全,加密速度最慢
非对称加密算法:
使用对方的公钥加密,数据传输过去后,对方使用自己的私钥解密
常用的算法有
ESA,DSA,DH
Cisco支持的DH算法组有:1、2、5
1:有效密钥长度768
2:有效密钥长度1024
5:有效密钥长度1536
密钥越长,安全性越高,但是资源占用率也高
IKE技术
通过非对称加密算法加密对称加密算法的密钥
然后再用对称加密算法加密实际要传输的数据
数据报文的验证(HMAC):
验证数据在传输过程中是否被修改
常用算法:
Md5:使用128位共享的密钥
Sha:使用160为共享的密钥
建立IPSecVPN的三个步骤
1:流量的触发
一旦有流量经过VPN网关就算是触发了流量,流量可以自己定义
2:建立管理连接
IPSec VPN使用ISAMAP/IKE阶段1来构建管理连接
管理连接只是一个准备工作,不被用来传输数据
3:建立数据连接
基于管理连接建立数据连接,使用ISAMAP/IKE阶段2来完成
数据连接用于传输真正的用户数据
经过IPSecVPN建立的三个连接之后,VPN流量就可以按照协商的结果被加密/解密了。
ISAKMP/IKE阶段1建立需要定义:
加密算法:DES、3DES或AES
HMAC功能:MD5或SHA
设备验证的类型:预共享密钥
DH密钥组:cisco路由器支持1、2、5
管理连接的生存周期
阶段一相关配置命令:
Router(config)#cryptoisakmp policy priority
指定加密算法
Router(config-isakmp)#encryption{ des | 3des | aes }
指定hash算法
Router(config-isakmp)#hash{ sha | md5 }
设置身份验证的方式
Router(config-isakmp)#authentication{ pre-share | rsa-encr |rsa-sig }
指定DH密钥组
Router(config-isakmp)#group{ 1 | 2 | 5 }
设置管理连接生存周期,默认为86400s(24小时)
Router(config-isakmp)#lifetimeseconds
配置预共享密钥
Router(config)#crypto isakmp key { 0 | 6 } keystring address peer-address{subnet_mask}
0表示明文,6表示密文
peer-address:填写为对端设备的IP地址
ISAKMP/IKE阶段2建立需要定义:
ACL:定义何种流量被保护,通过ACL匹配IPSec VPN的流量
定义用来保护数据的安全协议:
AH | ESP验证 | ESP加密 | |
ah-md5-hmac ah-sha-hmac |
esp-md5-hmac esp-sha-hmac |
esp-null esp-des esp-3des |
esp-aes 128 esp-aes 192 esp-aes 256 |
定义传输模式
定义数据连接的生存周期以及密钥刷新方式
2阶段配置命令
配置传输集:必须两端有一条匹配的传输集阶段二的数据SA才能协商成功。
Router(config)#cryptoipsec transform-set transform_set_name transform1[transform2[transform3]
配置连接模式,默认为隧道模式
Router(cfg-crypto-tran)#mode{ tunnel | transport }
配置Crypt Map
Crypt Map的功能就是将所有信息组织在一起构建IPSec会话。
Router(config)#crypto map map_name seq_num ipsec-isakmp
Set peer命令用于指定IPSec的对等体设备,即配置的设备应该与谁建立连接
Router(config-crypto-m)#set peer { hostname | IP_address }
定义传输集的名称,这里最多可以定义出六个传输集
Router(config-crypto-m)#set transform-set transform_set_name1
PFS(完美转发协议)保证两个阶段中的密钥只能使用一次,进一步增强了安全性,但使用PFS可能占用设备更多的资源 ,一般不开
Router(config-crypto-m)#set pfs [ group1 | group2 | group5 ]
指定SA的生存周期。
Router(config-crypto-m)#set security-association lifetime {seconds seconds | kilobytes kilobytes}
配置空闲超时计时器,范围为60s~86400S,默认情况下,空闲超时计时器是关闭的。
Router(config-crypto-m)#set security-association idle-time seconds
站点到站点VPN配置
配置之间已经配置了三个路由器的Ip地址,并且在R1和R3的出口上面做了默认路由。
R1配置:
配置ISAKMP策略
R1(config)#crypto isakmp policy 1
R1(config-isakmp)#authentication pre-share
R1(config-isakmp)#encryption 3des
R1(config-isakmp)#group 2
R1(config-isakmp)#hash md5
R1(config)#crypto isakmp key 0 vpn address200.0.0.1 填写的是对端路由器的地址
配置IPSec变换集
R1(config)#crypto ipsec transform-setvpn-set esp-des ah-sha-hmac
ACL配置:
R1(config)#access-list 100 permit ip172.16.0.0 0.0.0.255 10.10.33.0 0.0.0.255
配置加密映射
R1(config)#crypto map vpn-map 1ipsec-isakmp
R1(config-crypto-map)#set peer 200.0.0.1
R1(config-crypto-map)#set transform-setvpn-set
R1(config-crypto-map)#match address 100
将映射应用在接口
R1(config)#interface fastEthernet 0/0
R1(config-if)#crypto map vpn-map
R3配置:
配置ISAKMP策略
R3(config)#crypto isakmp policy 1
R3(config-isakmp)#authentication pre-share
R3(config-isakmp)#encryption 3des
R3(config-isakmp)#group 2
R3(config-isakmp)#hash md5
R3(config)#crypto isakmp key 0 vpn address100.0.0.1
配置IPSec变换集
R3(config)#crypto ipsec transform-setvpn-set ah-sha-hmac esp-des
配置加密映射
R3(config)#crypto map vpn-map 1 ipsec-isakmp
R3(config-crypto-map)#set peer 100.0.0.1
R3(config-crypto-map)#set transform-setvpn-set
R3(config-crypto-map)#match address 100
R3(config)#access-list 100 permit ip10.10.33.0 0.0.0.255 172.16.0.0 0.0.0.255
将映射应用在接口
R3(config)#interface fastEthernet 0/0
R3(config-if)#crypto map vpn-map
验证:
R3#ping 172.16.0.1 source 10.10.33.1 使用带源的ping可以ping通
而且使用show crypto engine connections active 可以查看出有加密的数据包
显示ISAKMP协商策略的配置结果
R3#show crypto isakmp policy
查看IPSec变换集
R3#show crypto isakmp sa
显示IPSec变换集
R3#show crypto ipsec transform-set
显示数据链接建立的生存周期
R3#show crypto ipsec security-associationlifetime
显示数据连接SA的细节信息
R3#show crypto ipsec sa
查看Crypto Map的信息
R3#show crypto map