IPsec VPN
IPsec VPN概述
- VPN(Virtual Private Network),利用公共网络来构建的私人专用网络
- IPsec(IP security),是一组开放协议的总称。定义了保护数据私密性、保证数据完整性、确保数据合法性的方法,能做到:
- 数据的合法性:身份认证,确保信息来源的可信
- 数据的完整性:保证数据不被修改
- 数据的私密性:进行加密,确保数据的安全性
- 抗重放:接收方拒绝旧的或重复的数据包,防止恶意用户通过重复发送捕获到的数据包所进行的attck
- 通过HASH来确保数据的合法性和完整性MD5、SHA-1
- 通过数据加密来实现数据传输的安全性:DES、3DES、AES
IPSec工作模式术语
1、通信点
指实际进行数据通信的站点
2、加解密点
指负责将数据包进行加密和解密的站点
数据流处理过程
VPN加密技术
- 对称密钥算法
- 加密方与解密方采用相同的密钥
- 用于加密用户数据
- DES、3DES、AES
- 非对称密钥算法
- 加密方通过对端的公钥加密数据
- 解密方通过自己的私钥解密数据
- 用于密钥交换和数字签名
- RSA、DH
- 散列函数
- MD5
- SHA1
- 用于验证数据完整性
IPsec协议/组件构成
- 算法:用于加密/解密或身份验证
- 安全协议:AH或ESP
- 密钥管理:ISAKMP
IPsec安全架构组成
- IKE(Internet Key Exchange,密钥交换协议),他的对象是密钥,用来保证密钥的安全传输、交换以及存储
- ESP(Encapsulation Security Payload,封装安全负载),对象为用户数据。对用户的数据进行封装,提供对数据进行认证和加密。通常采用3DES来加密,使用IP协议号50
- AH(Authentication Header),对象为用户数据,对用户数据进行封装,只提供认证,不加密。使用IP协议号51
IPsec VPN模式
- 传输模式(Transport Mode),封装的时候不会产生新的IP头部
- 隧道模式(Tunnel Mode),封装的时候产生新的IP头部 (主流模式)
ESP
AH
SA安全联盟
- SA是隧道的一组规则,内容包括采用何种IPsec协议(AH还是ESP)、运行模式(传输模式还是隧道模式)、验证算法、加密算法、密钥生存期、抗重放窗口、计数器等,从而决定保护什么、如何保护以及谁来保护,可以说SA是构成IPsec的基础
- 安全联盟是单向的,两个对等体之间的双向通信至少需要两个SA
- ISAKMP SA(也叫IKE SA):定义了如何保护密钥。IKE SA要保护的对象是与密钥有关的,IKE并不直接关心用户数据,并且IKE SA是为安全协商IPsec SA服务的
- IPsec SA:定义了如何保护数据。IPSec SA直接为用户数据流服务。即IPsec SA中所有安全策略都是为了用户数据流的安全。每个IPsec对等体都有一对IPsec SA,一个去往远程目的地的,而另一个是从远程回来的,也就是一进一出,都存放在本地SA Database中
- 建立SA的方式
- 手工方式:SA所需全部信息都必须手工配置,比较复杂,适合对等体较少或小型静态环境
- IKE动态协商方式:只需要对等体之间配置好IKE协商参数,由IKE自动协商来创建和维护SA
2DBA
SPD
SADB
隧道建立过程
IKEv1支持的身份验证方法
- 预共享密钥
这种方法要求对等体双方必须要有相同的预共享密钥(该密钥直接参与SKEYID的生成计算)。对于设备数量较少的VPN网络来说易于配置,在大型VPN网络中,不建议采用预共享密钥来做身份认证 - RSA签名(数字证书)
数字证书需要由CA服务器来颁发。这种方法适用于大型动态的VPN网络,证书验证和预共享密钥验证的主要区别在于SKEYID的计算和交换身份信息,其他的交换和计算过程和预共享密钥验证方式相同
IKE协商过程
- 第一阶段:建立ISAKMP SA(IKE SA)
- 两种模式:
- 主模式(main mode):6条ISAKMP消息交互(针对站点到站点)
- 野蛮模式(aggressive mode):3条ISAKMP消息交互(针对远程访问)
- ISAKMP SA是为第二阶段的ISAKMP消息提供安全保护,对象为密钥,保证密钥安全
- 第二阶段:建立IPsec SA
- 一种模式
- 快速模式(quick mode):3条ISAKMP消息交互
- IPsec SA是为IP数据提供安全保护
- ISAKMP SA可以用来保护多个第二阶段的IPsec SA协商的通信过程
IKE协商第一阶段过程分析(main mode)
- 第1、2个ISAKMP报文(协商加密算法、认证算法、认证方式和DH等)
- 用于交换并协商保护ISAKMP消息的安全参数以及对等体验证方式,包含加密算法、验证算法、验证方式、ISAKMP SA生存时间等安全策略信息(即SA载荷)。IPsec实体会选择双方都支持的安全策略信息。
- 路由器会将本地配置的所有ISAKMP策略放置在SA载荷中,发送给对端
- 对端路由器收到发来的安全策略后,会返回本地与之匹配的策略。若本地存在多条匹配策略,则选择序号最小的策略
- 第3、4个ISAKMP报文(算出共同密钥)
- 用于交互IKE的密钥交换载荷(Key exchange)(预共享密钥)和随机值载荷(nonce),此过程交互信息用于双方使用DH算法计算出共同的密钥材料。SKEYID为基础密钥,通过它推导出SKEYID_a(消息完整性验证密钥)和SKEYID_e(消息加密密钥)以及SKEYID_d,用于衍生出IPsec报文加密验证密钥
- 第5、6个ISAKMP报文(做身份验证,从此报文开始接下来的报文会被加密)
- 用于交换身份(Identification)载荷和HASH载荷
- 在前4条ISAKMP消息中通信双方并没有核实对方的合法性,很有可能与假冒者计算出公共密钥,从而与假冒者进行加密通信。因此要对双方的真实身份进行核实。由于已经计算出SKEYID_a和SKEYID_e,因此第5、6个ISAKMP报文是经过保护的,具体的策略为第1、2个ISAKMP报文协商的加密算法、验证算法以及刚计算出来的SKEYID_a和SKEYID_e
- 对端路由器收到第5条ISAKMP报文后,首先对消息进行验证再解密,会将收到的身份载荷与本地存储的信息一起进行HMAC计算,得到一个HASH值,再与收到的HASH载荷进行比较,如果不相等,则会中断协商过程,相等则发出第6条ISAKMP消息
- 对端验证本端合法后(即通过对比计算得到的HASH值与所收到的HASH值相等,及判断掌握了相同密钥),发送本地信息,供本端来验证。本端使用同样的方法判断对端是否掌握相同密钥,若判断为也合法,则第一阶段协商过程结束
IKE协商第二阶段过程分析(quick mode)
真正开始保护数据安全
- 第1、2、3个ISAKMP报文
- 第1个ISAKMP报文携带本端所配置的IPsec安全提议,即使用ESP还是AH、采用什么模式、加密IP数据使用什么加密算法、验证IP数据使用什么算法、对什么样的数据流进行保护等。以及身份认证信息,包括第一阶段计算出的密钥和第二阶段产生的密钥材料,可以再次认证对等体
- 对端收到发出的第二阶段第1个ISAKMP报文后,首先验证报文并解密,查看SA载荷中的策略是否与本地匹配,并在本地使用同样的方法计算HASH值,并与收到的HASH载荷进行比较(身份认证)。若相同,发出第2条ISAKMP消息,包含的载荷与收到的第1个ISAKMP报文一致,并生成IPsec密钥
- 本端收到发出的第二阶段第2个ISAKMP报文后,首先验证报文并解密,查看SA载荷中的策略是否与本地匹配,并在本地使用同样的方法计算HASH值,并与收到的HASH载荷进行比较。若相同,发出第3条ISAKMP消息,只包含HASH载荷,用以通知对端完成第二阶段IPsec SA协商并可以使用IPsec SA对IP数据进行保护
配置步骤
- 配置网络可达
- 匹配感兴趣ACL
- 配置第一阶段和第二阶段
- 创建安全策略
- 应用安全策略
1、匹配感兴趣流
R2配置
acl number 3000
rule 5 permit ip source 192.168.1.0 0.0.0.255 destination 192.168.2.0 0.0.0.255
2、配置第一阶段和第二阶段
第一阶段第二阶段均有默认的安全策略,故不需要配置也能协商成功故本实验第一阶段只配置了对等体,第二阶段只配置了安全策略名称
ike peer huawei v1 # 定义对等体名字,ike版本
pre-sha huawei # 配置预共享密钥
remote-address 34.1.1.4 # 对端ip
ipsec proposal tran1 # 第二阶段
3、配置安全策略及应用安全策略
ipsec policy vpn 1 isakmp
security acl 3000
ike-peer huawei
proposal tran1
interface GigabitEthernet0/0/1
ip address 23.1.1.2 255.255.255.0
ipsec policy vpn
4、应用安全策略
interface GigabitEthernet0/0/1
ip address 23.1.1.2 255.255.255.0
ipsec policy vpn
R2完整配置
[R2] dis cu
[V200R003C00]
#
sysname R2
#
snmp-agent local-engineid 800007DB03000000000000
snmp-agent
#
clock timezone China-Standard-Time minus 08:00:00
#
portal local-server load portalpage.zip
#
drop illegal-mac alarm
#
set cpu-usage threshold 80 restore 75
#
acl number 3000
rule 5 permit ip source 192.168.1.0 0.0.0.255 destination 192.168.2.0 0.0.0.255
#
ipsec proposal tran1
esp encryption-algorithm aes-128
#
ike peer huawei v1
pre-shared-key simple huawei
remote-address 34.1.1.4
#
ipsec policy vpn 1 isakmp
security acl 3000
ike-peer huawei
proposal tran1
#
aaa
authentication-scheme default
authorization-scheme default
accounting-scheme default
domain default
domain default_admin
local-user admin password cipher %$%$K8m.Nt84DZ}e#<0`8bmE3Uw}%$%$
local-user admin service-type http
#
firewall zone Local
priority 15
#
interface Ethernet0/0/0
#
interface Ethernet0/0/1
#
interface Ethernet0/0/2
#
interface Ethernet0/0/3
#
interface Ethernet0/0/4
#
interface Ethernet0/0/5
#
interface Ethernet0/0/6
#
interface Ethernet0/0/7
#
interface GigabitEthernet0/0/0
ip address 12.1.1.2 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 23.1.1.2 255.255.255.0
ipsec policy vpn
#
interface NULL0
#
ospf 1
area 0.0.0.0
network 23.1.1.2 0.0.0.0
#
ip route-static 192.168.1.0 255.255.255.0 12.1.1.1
ip route-static 192.168.2.0 255.255.255.0 23.1.1.3
#
user-interface con 0
authentication-mode password
user-interface vty 0 4
user-interface vty 16 20
#
wlan ac
#
return
R4完整配置
<R4>dis cu
[V200R003C00]
#
sysname R4
#
snmp-agent local-engineid 800007DB03000000000000
snmp-agent
#
clock timezone China-Standard-Time minus 08:00:00
#
portal local-server load portalpage.zip
#
drop illegal-mac alarm
#
set cpu-usage threshold 80 restore 75
#
acl number 3000
rule 5 permit ip source 192.168.2.0 0.0.0.255 destination 192.168.1.0 0.0.0.255
#
ipsec proposal tran1
#
ike peer huawei v1
pre-shared-key simple huawei
remote-address 23.1.1.2
#
ipsec policy vpn 1 isakmp
security acl 3000
ike-peer huawei
proposal tran1
#
aaa
authentication-scheme default
authorization-scheme default
accounting-scheme default
domain default
domain default_admin
local-user admin password cipher %$%$K8m.Nt84DZ}e#<0`8bmE3Uw}%$%$
local-user admin service-type http
#
firewall zone Local
priority 15
#
interface Ethernet0/0/0
#
interface Ethernet0/0/1
#
interface Ethernet0/0/2
#
interface Ethernet0/0/3
#
interface Ethernet0/0/4
#
interface Ethernet0/0/5
#
interface Ethernet0/0/6
#
interface Ethernet0/0/7
#
interface GigabitEthernet0/0/0
ip address 34.1.1.4 255.255.255.0
ipsec policy vpn
#
interface GigabitEthernet0/0/1
ip address 45.1.1.4 255.255.255.0
#
interface NULL0
#
ospf 1
area 0.0.0.0
network 34.1.1.4 0.0.0.0
#
ip route-static 192.168.1.0 255.255.255.0 34.1.1.3
ip route-static 192.168.2.0 255.255.255.0 45.1.1.5
#
user-interface con 0
authentication-mode password
user-interface vty 0 4
user-interface vty 16 20
#
wlan ac
#
return