IPSEC基础
- IPSEC简介:
IPSEC是一个工业标准网络安全协议,为IP网络提供通信提供透明的安全服务,保护TCP/IP通信免遭窃听和篡改,可以有效抵御网络攻击,同时保持易用性。
IPSEC通过在IPSEC对等体间建立双向安全联盟,形成一个安全互通的IPSEC隧道,来实现INTERNET上数据的安全传输。
1.1 IPSEC组成部分:
1.2 IPSEC特性:
(1)私有性:用户的敏感数据以密文形式传送。
(2)完整性:数据来源验证,判断数据是否被篡改
(3)防重放:AH ESP存在序列号,防止攻击。
(4)真实性:验证数据来源,判断数据来自真实的发送者。
1.3 IPSEC基本组件:
(1)IPSEC对等体
(2)IPSEC隧道
(3)安全联盟:如何加密数据,如何做封装,由SA决定
(4)数据的封装模式:隧道模式、传输模式
(5)安全协议:ESP、AH
1.4 安全联盟
(1)用IPSEC保护数据之前,必须先建立安全联盟。SA是出于安全目的而创建的一个单项逻辑连接,是通信的对等体间对某要素的约定,例如对等体间使用何种安全协议,需要保护的数据流特征、对等体间传输的数据的封装模式、用于数据安全转换和传输的密钥以及SA的生存周期等。对等体间需要通过手工配置或IKE协议协商匹配的参数才能建立起安全联盟。
(2)SA由一个三元组来唯一标识,这个三元组包括安全索引SPI、目的地址和使用的安全协议。
(3)IPSEC实施方案始终会构建一个SA数据库SADB,由它来维护IPSEC协议用来保障数据包安全的SA记录。
SA是单向的:in和out
SA是“与协议相关”的:AH和EPS
SA由安全参数索引SPI唯一标志
SA由手工或IKE自动协商两种方式创建。手工方式创建的SA除非手动删除,一直有效;协商方式创建的SA既可以手动删除,也可以时间或流量为周期自动删除。
1.5 IPSEC两种封装模式:
传输模式:加密节点与通信节点一致。
隧道模式:加密节点与通信节点不一致。
传输模式示意图:
隧道模式示意图:
(1)安全协议AH:
a)IP协议,协议号51。
b)提供数据完整性校验、数据源认证和抗重放攻击服务。
c)不提供加密服务。
(2)安全协议ESP协议
a)IP层协议,协议号50。
b)提供数据加密、数据完整性校验、数据源认证和抗重放攻击服务。
1.6 IPSEC协议实现
(1)IPSEC的处理——外出
检索SPDB
绕过安全服务
应用安全服务:若已建立相关SA,就会返回指向这个SA的指针;若未建立相关SA,调用IKE,建立SA。
(2)IPSEC的处理——外出
没有包含IPSEC头,检索SPDB
绕过安全服务
应用安全服务:调用IKE,建立SA
包含IPSEC头,检索SADB
丢弃
应用安全服务:解密,传至下一层处理
1.7 IPSEC协议实现
(1)加密算法
DES:密钥长度56位
3DES:密钥长度168位
AES:密钥长度128位
(2)验证算法
MD5:128位的摘要算法
3DES:160位的摘要算法
二、 IKE介绍
2.1. IKE协议简介
(1)属于一种混合型协议,建立在由internet安全联盟和密钥管理协议定义的一个框架上。IKE为IPSEC提供了自动协商交换密钥、建立安全联盟的服务,能够简化IPSEC的使用和管理。IKE提供身份验证功能。
(2)IKE的精髓可以在不安全网络上直接传送密钥,即使第三方截取计算密钥所交换的数据,也不足以计算出真正的密钥。其中核心技术就是DH交换技术。
(3)完善的前向安全性。PFS特性是一种安全特性,指一个密钥被破解,并不影响其他密钥的安全性,密钥间没有派生关系,PFS特性由DH算法保障。
2.2. IKE协议简介
DH交换及密钥分发:DH密钥交换是一种公共密钥加密系统。利用DH交换技术,我们可以在一个不受保护的通信信道上,在交换双方建立一个安全的共享密钥会话。
根据截获g、p、c、d无法逆向运算出a、b
2.3 IPSEC与IKE的关系
2.4 两种模式的区别:
主模式:
(1)对等方具有较高的计算资源和网络带宽:主模式需要多个回合的交互,因此对等方需要具备较高的计算资源和网络带宽来处理这些交互过程。
(2)需要更完善的安全关联参数协商:主模式允许在多个回合的交互中协商更多的安全关联参数,如加密算法、哈希算法、Diffie-Hellman组等。
(3)对等方需要更严格的身份验证:主模式提供了更严格的身份验证机制,包括交换证书或预共享密钥等。
野蛮模式:
(1)资源受限的网络环境:积极模式在较短的交互中完成身份验证和密钥协商,适用于资源受限的网络环境,如移动网络或嵌入式设备。
(2)需要快速建立安全通信:积极模式通过减少交互回合数来实现快速建立安全通信的目的。这对于需要快速建立安全连接的场景非常有用,如远程访问、VPN等。
(3)对等方之间已经有预共享密钥:积极模式可以使用预共享密钥进行快速身份验证和密钥协商。
三、 NAT穿越存在的问题
3.1. NAT技术同普通IPSEC技术共存的主要问题:
(1)AH和NAT共存问题
(2)IKE固定端口号与NAT共存问题
(3)IPSEC不能验证NAT报文的问题
(4)NAT超时影响IPSEC的问题
3.2. 解决办法
在IPSEC中,SA的管理既可以手工设置,也可以通过自动协商。自动协商我们使用IKE协商方式。通过IKE协商得到IPSEC SA,然后IPSEC数据报文采用IKE的UDP封装,从而实现IPSEC穿越NAT。
3.3 IKE协商的改进:
IKE协商有两个阶段,我们需要在阶段1协商的过程中,探测出IPSEC的两端是否经过NAT,当然,首先是需要判断是否和我一样,支持NAT穿越,需要解决三个问题。
(1)解决IKE报文使用UDP端口500的问题
(2)需要确认双方支持NAT穿越(NAT-T)
(3)需要确认双方的协商报文经过了NAT设备
3.4 NAT超时解决方法
NAT协议是有方向的地址转换协议,在现网中,大多数NAT都是单方向的。同时NAT表项还有超时问题。解决这一问题的办法是,在NAT会话超时前发送一个NAT-keepalive报文,以维持NAT会话。
- IPSEC实验
实验拓扑
4.2 设备地址分配情况如下:
设备 | 接口 | 地址 |
RTA | 0/0 | 192.168.1.1/24 |
RTA | 0/1 | 1.1.1.1/24 |
RTB | 0/0 | 192.168.2.1/24 |
RTB | 0/1 | 2.2.2.1/24 |
SW | 0/3 | 1.1.1.2/24 |
SW | 0/2 | 2.2.2.2/24 |
PC1 | 0/1 | 192.168.1.2/24 |
PC2 | 0/1 | 192.168.2.2/24 |
4.3 设备配置信息:
RTA配置 | RTB配置 | 说明 |
int g0/0 | int g0/0 | |
ip address 192.168.1.1 24 | ip address 192.168.2.1 24 | |
qu | qu | |
int g0/1 | int g0/1 | |
ip address 1.1.1.1 24 | ip address 2.2.2.1 24 | |
qu | qu | |
ip route-static 0.0.0.0 0 1.1.1.2 | ip route-static 0.0.0.0 0 2.2.2.2 | |
# | # | |
acl advanced 3001 | acl advanced 3101 | |
rule permit ip source 192.168.1.0 0.0.0.255 destination 192.168.2.0 0.0.0.255 | rule permit ip source 192.168.2.0 0.0.0.255 destination 192.168.1.0 0.0.0.255 | |
# | # | |
ipsec transform-set tran1 | ipsec transform-set tran1 | 创建IPsec安全提议tran1 |
encapsulation-mode tunnel | encapsulation-mode tunnel | 配置安全协议对IP报文的封装形式为隧道模式 |
protocol esp | protocol esp | 置采用的安全协议为ESP |
esp encryption-algorithm aes-cbc-128 | esp encryption-algorithm aes-cbc-128 | 配置ESP协议采用的加密算法为128比特的AES |
esp authentication-algorithm sha1 | esp authentication-algorithm sha1 | 认证算法为HMAC-SHA1 |
qu | qu | |
# | # | |
ike keychain keychain1 | ike keychain keychain1 | 创建并配置IKE keychain,名称为keychain1 |
pre-shared-key address 2.2.2.1 255.255.0.0 key simple 123456TESTplat&! | pre-shared-key address 1.1.1.1 255.255.255.0 key simple 123456TESTplat&! | 配置与IP地址为2.2.2.1的对端使用的预共享密钥为明文123456TESTplat&! |
# | # | |
ike profile profile1 | ike profile profile1 | 创建并配置IKE profile,名称为profile1: |
keychain keychain1 | keychain keychain1 | |
local-identity address 1.1.1.1 | local-identity address 2.2.2.1 | |
match remote identity address 2.2.2.1 255.255.0.0 | match remote identity address 1.1.1.1 255.255.0.0 | |
# | # | |
ipsec policy map1 10 isakmp | ipsec policy map1 10 isakmp | 创建一条IKE协商方式的IPsec安全策略,名称为map1,顺序号为10 |
remote-address 2.2.2.1 | remote-address 1.1.1.1 | 配置IPsec隧道的对端IP地址为2.2.2.1 |
security acl 3101 | security acl 3101 | 定引用ACL 3101 |
transform-set tran1 | transform-set tran1 | 指定引用的安全提议为tran1 |
ike-profile profile1 | ike-profile profile1 | 指定引用的IKE profile为profile1 |
qu | qu | |
# | # | |
int g0/1 | int g0/1 | |
ipsec apply policy map1 | ipsec apply policy map1 | 在接口GigabitEthernet0/1上应用IPsec安全策略map1 |
# | # |
交换机配置 |
interface Vlan-interface 1 |
ip address 1.1.1.2 24 |
qu |
vlan 2 |
qu |
interface Vlan-interface 2 |
ip address 2.2.2.2 24 |
qu |
interface GigabitEthernet 1/0/2 |
port access vlan 2 |
# |
如隧道状态异常,建议适用reset ike sa,reset ipsec sa重新出发sa
4.4 实验检查
(1)检查ipsec隧道状态
(2)查询数据报文结构
PC1 ping测试PC2可通,并查询报文源目地址为封装后隧道端点地址。