前言
企业对网络安全性的需求日益提升,而传统的TCP/IP协议缺乏有效的安全认证和保密机制.IPsec作为一种开放标准的安全框架结构,可以用来保证IP数据报文在网络传输的机密性 完整性和防重放
IPsec
- 源于IPV6
- IETF制定的一套安全保密性能框架
- 建立在网络层的安全保障机制
- 引入多种加密算法,验证算法,和**密钥管理(密钥交换)**机制
- 也具有配置复杂,消耗运算资源较多,增加延迟,不支持组播等缺点
- ipsec vpn 是利用ipsec隧道建立起来的vpn技术
- 认证方式
- PSK 预共享密钥 两段输入的PSK一致 则通过
- RSA签名 由CA机构签发 本地导入证书即可
ipsec加解密过程
- 加密算法 [报文进行加密]
- 手工配置 [成本高]
- DH算法生成并共享 [简单高效 前提是对端设备支持什么版本]
- 验证算法 [产生ICV]
- 加密报文进行Hash验证报文完整性 [此处也有密钥加密]
- 手工配置 [成本高]
- DH算法生成并共享 [简单高效 前提是对端设备支持什么版本]
- 加密报文+ICV(验证算法的值) 作用是验证真实性
- 验证完整性与真实性 [验证算法计算]
- 上述通过则根据加密算法解密报文 否则丢弃
- 得到原始报文
ipsec技术框架
AH DES 3DES MD5 SHA1 SHA2 不推荐使用 DES 3DES加密算法存在安全隐患,建议优先使用AES,SM1或SM4算法 MD5和SHA-1验证算法存在安全隐患,建议使用SHA-2或者SM3算法
IKE协商
- IKE协商的什么? 验证算法以及加密算法
ipsec安全协议
- AH无法保证机密性
- NAT穿越功能 解决的问题是 内网设备进行ipsec 不改变源地址以及原始端口
ipsec封装模式
- 加入新的包头 占用更多带宽
- 一个企业的内网到一个企业的内网 肯定是隧道模式 或者GRE+IPSEC传输模式
- 传输模式:传输点=加密点 隧道模式:传输点≠加密点
传输模式封装结构
- ESP AUTH DATA 为验证的值 ICA
- AH验证全部 ESP验证被加密的报文+ESP标识
隧道模式封装结构
安全联盟 SA
- 顾名思义,通信双方结成盟友,相互信任亲密无间,即可达成约定
- 由一个(SPI,IP目的地址,安全协议号)三元唯一标识
- 决定了对报文进行何种处理:模式,协议,算法,密钥,生存周期等
- 每个ipsec SA都是单向的
- 可以手工建立或者通过IKE协商生成
- SPD security policy database 安全策略数据库
- SAD security association database 安全协商数据库
-
SA协商出一条隧道
-
生存周期 指的是多久应该修改密码
IKE 因特网密钥交换
- 建立在ISAKMP定义的框架上
- 基于UDP(端口号500)的应用层协议,可为数据加密提供所需的密钥
- 使用DH算法,在不安全的网络上安全的分发密钥,验证身份
- 定时更新SA和密钥,实现完善的前向安全性
- PFS 密钥丢失 不影响未来的数据安全 类似于(DH)
- 允许ipsec提供抗重播服务
- 生成随机数 发现重复的会丢弃
- 简化ipsec的使用和管理,大大简化了ipsec的配置和维护工作
用IKE-SA协商出隧道 然后用ipsec-SA加密数据报文
主模式6个包 野蛮模式3个包
IKE-SA主模式 [推荐使用]
IKE-SA野蛮模式 [早期设备不支持加密的]
IPSEC-SA快速模式
IKE-SA 与 IPSEC-SA区别
ipsec vpn 基本配置步骤
- 配置网络可达
- 配置acl匹配兴趣流
- 创建安全提议
- 创建安全策略
- 应用安全策略
基本配置
- 策略名称 自定义
- 本端接口 应用的接口
- 本端地址 local address
- 对端地址 remote address
- 认证方式 key
- 本端ID spi inbound
- 对端ID spi outbound
配置验证
// 查看加密几个包
[CEA]display ipsec statistics
IPsec packet statistics:
Received/sent packets: 5/5
Received/sent bytes: 480/480
Dropped packets (received/sent): 0/0
Dropped packets statistics
No available SA: 0
Wrong SA: 0
Invalid length: 0
Authentication failure: 0
Encapsulation failure: 0
Decapsulation failure: 0
Replayed packets: 0
ACL check failure: 0
MTU check failure: 0
Loopback limit exceeded: 0
Crypto speed limit exceeded: 0
[CEA]
ipsec手工配置 [应用于私网对接私网]
配置网络基本可达
CEA
sys
sys CEA
acl ad 3000
rule 15 permit ip so 192.168.1.0 0.0.0.255
rule 20 deny ip
int g0/2
ip add 12.1.1.2 24
nat out 3000
int g0/1
ip add 192.168.1.1 24
int Tunnel0 mode gre
ip add 192.168.0.1 30
so GigabitEthernet0/2
des 34.1.1.2
ip route-s 0.0.0.0 0 12.1.1.1
ip route-s 192.168.2.0 24 tun0
CEB
sys
sys CEB
acl ad 3000
rule 15 permit ip so 192.168.2.0 0.0.0.255
rule 20 deny ip
int g0/2
ip add 34.1.1.2 24
nat out 3000
int g0/1
ip add 192.168.2.1 24
int Tunnel0 mode gre
ip add 192.168.0.2 30
so GigabitEthernet0/2
des 12.1.1.2
ip route-s 0.0.0.0 0 34.1.1.1
ip route-s 192.168.1.0 24 tun0
PEA
sys
sys PEA
ospf 1
a 0
int l0
ip add 1.1.1.1 32
ospf 1 a 0
int g0/2
ip add 12.1.1.1 24
int g0/0
ip add 23.1.1.1 24
ospf 1 a 0
PEB
sys
sys PEB
ospf 1
a 0
int l0
ip add 2.2.2.2 32
ospf 1 a 0
int g0/2
ip add 34.1.1.1 24
int g0/0
ip add 23.1.1.2 24
ospf 1 a 0
配置匹配数据流
CEA
// 配置匹配数据流
[CEA]acl ad 3001
[CEA-acl-ipv4-adv-3001]rule 15 permit gre so 12.1.1.2 0 de 34.1.1.2 0
[CEA-acl-ipv4-adv-3001]qu
// 创建ipsec安全提议 名称cea
[CEA]ipsec transform-set cea
// 配置安全协议对IP报文的封装形式为传输模式
[CEA-ipsec-transform-set-cea]encapsulation-mode transport
// 配置ESP协议采用的加密算法为AES-CBC-192,认证算法为HMAC-SHA1
[CEA-ipsec-transform-set-cea]esp encryption-algorithm aes-cbc-192
[CEA-ipsec-transform-set-cea]esp authentication-algorithm sha1
[CEA-ipsec-transform-set-cea]quit
// 手工创建ipsec安全策略 名称P1
[CEA]ipsec policy P1 10 manual
// 指定引用acl 3001
[CEA-ipsec-policy-manual-P1-10]security acl 3001
// 指定饮用安全提议
[CEA-ipsec-policy-manual-P1-10]transform-set cea
// 指定对端ip地址
[CEA-ipsec-policy-manual-P1-10]remote-address 34.1.1.2
// 配置ESP协议的出方向SPI为12345,入方向SPI为54321
[CEA-ipsec-policy-manual-P1-10]sa spi outbound esp 12345
[CEA-ipsec-policy-manual-P1-10]sa spi inbound esp 54321
// 配置ESP协议的出方向SA的密钥为明文字符串abcdefg,入方向SA的密钥为明文字符串gfedcba
[CEA-ipsec-policy-manual-P1-10]sa string-key outbound esp simple abcdefg
[CEA-ipsec-policy-manual-P1-10]sa string-key inbound esp simple gfedcba
[CEA-ipsec-policy-manual-P1-10]quit
// 应用安全策略
[CEA]interface GigabitEthernet 0/2
[CEA-GigabitEthernet0/2]ipsec apply policy P1
CEB
[CEB]acl ad 3001
[CEB-acl-ipv4-adv-3001]rule 15 permit ip so 34.1.1.2 0 de 12.1.1.2 0
[CEB-acl-ipv4-adv-3001]qu
[CEB]ipsec transform-set ceb
[CEB-ipsec-transform-set-ceb]encapsulation-mode transport
[CEB-ipsec-transform-set-ceb]esp encryption-algorithm aes-cbc-192
[CEB-ipsec-transform-set-ceb]esp authentication-algorithm sha1
[CEB-ipsec-transform-set-ceb]quit
[CEB]ipsec policy P1 10 manual
[CEB-ipsec-policy-manual-P1-10]security acl 3001
[CEB-ipsec-policy-manual-P1-10]transform-set ceb
[CEB-ipsec-policy-manual-P1-10]remote-address 12.1.1.2
[CEB-ipsec-policy-manual-P1-10]sa spi outbound esp 54321
[CEB-ipsec-policy-manual-P1-10]sa spi inbound esp 12345
[CEB-ipsec-policy-manual-P1-10]sa string-key outbound esp simple gfedcba
[CEB-ipsec-policy-manual-P1-10]sa string-key inbound esp simple abcdefg
[CEB-ipsec-policy-manual-P1-10]qu
[CEB]interface GigabitEthernet 0/2
[CEB-GigabitEthernet0/2]ipsec apply policy P1
验证
[CEA]dis ipsec policy
-------------------------------------------
IPsec Policy: P1
Interface: Tunnel0
-------------------------------------------
-----------------------------
Sequence number: 10
Mode: Manual
-----------------------------
Security data flow: 3001
Remote address: 192.168.0.2
Transform set: cea
Inbound AH setting:
AH SPI:
AH string-key:
AH authentication hex key:
Inbound ESP setting:
ESP SPI: 54321 (0x0000d431)
ESP string-key: ******
ESP encryption hex key:
ESP authentication hex key:
Outbound AH setting:
AH SPI:
AH string-key:
AH authentication hex key:
Outbound ESP setting:
ESP SPI: 12345 (0x00003039)
ESP string-key: ******
ESP encryption hex key:
ESP authentication hex key:
[CEA]
ipsec [应用于私网出口ipsec 对接公网服务器数据加密]
[CEA]ipsec transform-set cea
[CEA-ipsec-transform-set-cea]protocol ah
[CEA-ipsec-transform-set-cea]ah authentication-algorithm sha1
[CEA]acl ad 3001
[CEA-acl-ipv4-adv-3001]rule 15 permit ip source 12.1.1.2 0.0.0.0 destination 34.1.1.2 0.0.0.0
[CEA]ipsec policy P1 10 manual
[CEA-ipsec-policy-manual-P1-10]transform-set cea
[CEA-ipsec-policy-manual-P1-10]security acl 3001
[CEA-ipsec-policy-manual-P1-10]sa spi outbound ah 123456
[CEA-ipsec-policy-manual-P1-10]sa spi inbound ah 123456
[CEA-ipsec-policy-manual-P1-10]sa string-key inbound ah simple 123456
[CEA-ipsec-policy-manual-P1-10]sa string-key outbound ah simple 123456
[CEA-ipsec-policy-manual-P1-10]qu
[CEA]interface GigabitEthernet 0/2
[CEA-GigabitEthernet0/2]ipsec apply policy P1
-----------------------------------------------------------------------------------------
[CEB]acl advanced 3001
[CEB-acl-ipv4-adv-3001]rule 15 permit ip source 34.1.1.2 0.0.0.0 destination 12.
1.1.2 0.0.0.0
[CEB-acl-ipv4-adv-3001]qu
[CEB]ipsec transform-set ceb
[CEB-ipsec-transform-set-ceb]protocol ah
[CEB-ipsec-transform-set-ceb]ah authentication-algorithm sha1
[CEB]ipsec policy P1 10 manual
[CEB-ipsec-policy-manual-P1-10]transform-set ceb
[CEB-ipsec-policy-manual-P1-10]security acl 3001
[CEB-ipsec-policy-manual-P1-10]remote-address 12.1.1.2
[CEB-ipsec-policy-manual-P1-10]sa spi outbound ah 123456
[CEB-ipsec-policy-manual-P1-10]sa spi inbound ah 123456
[CEB-ipsec-policy-manual-P1-10]sa string-key inbound ah simple 123456
[CEB-ipsec-policy-manual-P1-10]sa string-key outbound ah simple 123456
[CEB-ipsec-policy-manual-P1-10]qu
[CEB]int g0/2
[CEB-GigabitEthernet0/2]ipsec apply policy P1
常见问题
- 园区出口nat与ipsec冲突解决办法
- 解决问题思路是进入ipsec隧道的数据流量不能被地址转换 地址转换后 acl匹配不到
- 思路一:nat地址不转换 nat acl 将去往对端园区的地址段deny掉 rule 5 deny ip so 192.168.1.0 0.0.0.255 de 192.168.2.0 0.0.0.255
- 思路二:感兴趣流将所有数据都匹配 匹配感兴趣流acl 将源地址改为自己的园区出口公网地址 rule 5 permit ip so 12.1.1.2 0 de 192.168.2.0 0.0.0.255 <此办法会导致原有前往互联网的数据中断>
- 思路三:感兴趣流只匹配gre数据进入隧道 通过gre+ipsec方式 acl匹配gre流量 rule 5 permit gre so 12.1.1.2 0 de 192.168.2.0 0.0.0.255