[NetWork] IPSec VPN

2022-12-04 15:46:46 浏览数 (3)

IP Security 概述

IPsec > IP Security 是一种网络层的安全保障机制或者说是体系 通过各种机制和协议实现安全保障 IPsec可以实现: <code>1. 访问控制</code> <code>2. 机密性</code> <code>3. 完整性</code> <code>4. 数据源验证</code> <code>5. 拒绝重播报文</code> 等安全功能 他可以引入多种验证算法、加密算法和秘钥管理机制 IPSec VPN是利用IPsec 隧道实现的L3 VPN IPSec也具有配置复杂,消耗运算资源较多、增加延时、不支持组播等缺点

IPsec的工作模式

IPsec的工作模式分为两种 【传输模式】: 传输模式只实现端到端的保护功能 不建立VPN隧道

【隧道模式】: 隧道模式中,不仅要负责端到端的保护 还要建立VPN隧道

PS:IPSec的功能不仅限于VPN,VPN只是他众多功能中的其中一个

IPSec的安全协议

该作用主要用于保护数据 【AH】

Authentication Header > 报文头部验证协议 IP协议号51 提供对数据的完整性校验和源验证 可以提供有限的抗重播能力 不能提供数据的加密功能 无法穿透NAT,NAT会更改数据包的IP地址,AH会对整个会话重新计算校验值,从而导致对方收到的数据计算的校验值不同。

【ESP】

Encapsulating Security Payload 又叫封装安全载荷 IP协议号50 可以提供数据的机密性保证、 数据完整性校验和源验证、 可提供一定的抗重播能力 还可以支持穿透NAT,ESP部队新的IP头部做校验,所以NAT修改数据头部后不会影响校验结果,在实际场合中,基本用的ESP

IPSec SA

又叫IPSec安全联盟 定义了一套对某些数据流进行保护的方案 里面包含了保护协议、算法、密钥 【来源】: 手动配置 以及IKE协商 【密钥管理】: 手动配置密钥 IKE协商密钥

IKE

有叫网络密钥交换协议 用于保护密钥传输和密钥的自动协商 使用<code>Diffie-Hellman</code>在不安全网络中安全分发密钥和验证身份 定时性的更新SA和密钥,实现完善的前向安全性 有效降低了手工部署的复杂度 工作在UDP端口500上

IKE与IPSec 的关系

IKE为IPSec提供自动协商服务,交换密钥,建立SA的服务 IPSec安全协议负责提供实际的安全服务

IPSec 隧道建立的流程

【第一阶段】 IKE SA协商 协商出保护第二阶段的保护方案 【第二阶段】 IPsec SA协商 在IKE SA的保护下,协商出保护数据传输方案

IPsec 的工作流程

> 出站包处理流程

SPD安全策略数据库 记录了对那些目的地址的数据包要调用哪一个 IPsec SA来进行保护

  1. 首先,数据包到达出接口,查找IPSec策略
  2. 根据IPSec策略查找对应的IPsec SA,查到则执行相对应的安全服务,未查到则查找IKE SA
  3. 查找IKE SA, 找到则在IKE SA的保护下创建IPSec SA,并执行安全服务, 未找到则创建IKE SA
  4. 创建IKE SA后,在IKE SA的保护下,创建IPSec SA并执行安全服务

> 入站包处理流程

  1. 数据包到达入接口后,查看该数据是否被IPSec保护
  2. 如果保护则查找对应IPSec SA
  3. 没有查到则直接交由上层处理
  4. 查找IPSec SA
  5. 未找到则丢弃数据包
  6. 找到则使用IPSec SA 解封装,获取原始数据

一阶段IKE的模式

> 主模式 Main Mode

采用六次握手机制,更加安全可靠 由于身份信息在第5次、第6此握手中加密 导致主模式只能通过公网IP地址识别对方身份,双方必须都具有固定公网IP地址,双方通过公网IP标识对端身份

> 野蛮模式 Aggressive Mode

采用三次握手,速度更快 身份信息在1、2次握手中传递,野蛮模式只加密 第3次握手的某一端,可以不具有固定公网IP地址,双方通过FQDN来标识对端身份 必须由IP地址不固定的一端主动发起协商

二阶段IPSec的模式

> 快速模式

一共会协商出两个IPSec SA <code>出站 IPSec SA</code> <code>入站 IPSec SA</code>

NAT 穿透

解决NAT与IPSec之间冲突的问题 因为ESP/AH只是三层封装,没有四层头部,所以无法被NAT转换端口 NAT穿透是在ESP头部前再封装一个UDP4500的四层头部端口

IPsec VPN端口

UDP 500 来标识未使用NAT穿透 UDP 4500 来标识使用了NAT穿透

IPSec VPN的部署模式

一共分为两种部署模式

> 双臂部署

又叫网关部署,把VPN部署在公网出口设备上

> 单臂部署

又指把VPN部署在内网中,需要在公网出口设备上配置端口映射至VPN设备 减轻公网出口设备的资源消耗和性能负担

IPSec VPN的配置

> 主动模式的配置流程

  • ===一阶段配置===
  • 首先是创建感兴趣流,配置ACL的源目地址,匹配两端私有地址
  • 创建IKE Proposal(提议),配置IKE的加密方式,验证算法,和验证方法
  • 创建配置秘钥,使用公网地址标识对方身份
  • 创建IKE Profile(档案)调用前方创建的Proposal和Keychain,并指定对端公网IP地址
  • ===二阶段配置===
  • 创建IPSec转转换集,配置IPSec的工作模式、封装协议,验证、加密算法
  • 创建IPSec Policy(策略)调用前面创建的感兴趣流、IKE Profile、IPsec转换集
  • 最后在公网口下发IPsec策略

【一阶段配置】

代码语言:javascript复制
/*&#x4E3B;&#x52A8;&#x6A21;&#x5F0F;&#x914D;&#x7F6E;&#x6D41;&#x7A0B;*/
/*&#x4E00;&#x9636;&#x6BB5;&#x914D;&#x7F6E;*/
acl advance [id] 
/*&#x521B;&#x5EFA;&#x9AD8;&#x7EA7;ACL*/
rule 1 permit source [ip-address] [wild-mask] destination [ip-address] [wild-mask]
/*&#x5339;&#x914D;&#x6E90;&#x5730;&#x5740;&#x4E3A;address&#x3001;&#x76EE;&#x7684;&#x5730;&#x5740;&#x4E3A;address&#x7684;&#x6570;&#x636E;&#x5305;*/
/*&#x8FD9;&#x91CC;&#x4E0D;&#x9700;&#x8981;&#x914D;&#x7F6E;permit any &#x534E;&#x4E09;&#x5728;&#x7528;&#x4E8E;&#x5305;&#x8FC7;&#x6EE4;&#x7684;&#x60C5;&#x51B5;&#x4E0B;&#x7B56;&#x7565;&#x9ED8;&#x8BA4;&#x662F;permit*/
/*&#x8FD9;&#x4E00;&#x4E2A;&#x6B65;&#x9AA4;&#x5C31;&#x662F;&#x5728;&#x521B;&#x5EFA;&#x6211;&#x4EEC;&#x7684;&#x611F;&#x5174;&#x8DA3;&#x6D41;*/
[Router] ike proposal [number]
/*&#x521B;&#x5EFA;&#x6211;&#x4EEC;&#x7684;IKE Proposal &#x5B89;&#x5168;&#x63D0;&#x8BAE;*/
[Router-ike-proposal-[id]] encryption-algorithm [3des-cbc / aes-cbc-128 / aes-cbc-192 / aes-cbc-256 / des-cbc]
/*&#x8BBE;&#x7F6E;IKE&#x5B89;&#x5168;&#x63D0;&#x8BAE;&#x4E2D;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x52A0;&#x5BC6;&#x7B97;&#x6CD5;*/
[Router-ike-proposal-[id]]authentication-method [dsa-signature / pre-share / rsa-signature]
/*&#x8BBE;&#x7F6E;IKE&#x5B89;&#x5168;&#x63D0;&#x8BAE;&#x4E2D;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x9A8C;&#x8BC1;&#x65B9;&#x6CD5;*/
[Router-ike-proposal-[id]] authentication-algrithm [md5 / sha]
/*&#x914D;&#x7F6E;IKE&#x5B89;&#x5168;&#x63D0;&#x8BAE;&#x4E2D;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x9A8C;&#x8BC1;&#x7B97;&#x6CD5;*/
[Router-ike-proposal-[id]] dh [group-id]
/*&#x521B;&#x5EFA;IKE&#x9636;&#x6BB5;1&#x5BC6;&#x94A5;&#x534F;&#x5546;&#x65F6;&#x641C;&#x4F7F;&#x7528;&#x7684;DH&#x4EA4;&#x6362;&#x7EC4;&#x3010;&#x53EF;&#x7565;&#x3011;*/
[Router-ike-proposal-[id]] sa duration [seconds]
/*&#x914D;&#x7F6E;IKE&#x5B89;&#x5168;&#x63D0;&#x8BAE;&#x7684;SA&#x751F;&#x5B58;&#x5468;&#x671F;&#x3010;&#x53EF;&#x7565;&#x3011;*/
[Router] ike keychain [name]
/*&#x521B;&#x5EFA;IKE keychain*/
[Router-ike-keychain-[name]]pre-shared-key [address [ip-address] / hostname [hostname] key [cipher / simple [password]]]
/*&#x914D;&#x7F6E;KIE keychain&#x7684;&#x9884;&#x5171;&#x4EAB;&#x5BC6;&#x94A5;&#xFF0C;&#x662F;&#x516C;&#x7F51;&#x5730;&#x5740;&#xFF08;ip-address&#xFF09;&#x6A21;&#x5F0F;&#x8FD8;&#x662F;&#x4E3B;&#x673A;&#x540D;&#xFF08;hostname&#xFF09;&#x6A21;&#x5F0F;*/
[Router-ike-keychain-[name]]match local address [interface range / ip-address] vpn-instance [vpn-name]
/*&#x914D;&#x7F6E;IKE keychain&#x7684;&#x4F7F;&#x7528;&#x8303;&#x56F4;&#x3010;&#x53EF;&#x7565;&#x3011;*/
[Router] ike identiy [address [ip-address] dh / fqdn [fqdn-name] user-fqdn [user-fqdn-name]]
/*&#x914D;&#x7F6E;&#x672C;&#x7AEF;&#x7684;&#x8EAB;&#x4EFD;&#x4FE1;&#x606F;*/
[Router] ike profile [name]
/*&#x521B;&#x5EFA;&#x4E00;&#x4E2A;IKE  Profile &#x6863;&#x6848;*/
[Router-profile-[name]]exchange-mode [aggressive / main]
/*&#x914D;&#x7F6E;IKE&#x7B2C;&#x4E00;&#x9636;&#x6BB5;&#x7684;&#x534F;&#x5546;&#x6A21;&#x5F0F;*/
[Router-profile-[name]]keychain [keychain-name]
/*&#x914D;&#x7F6E;IKE&#x8C03;&#x7528;&#x524D;&#x9762;&#x914D;&#x7F6E;&#x7684;keychain&#x9884;&#x5171;&#x4EAB;&#x5BC6;&#x94A5;*/
[Router-profile-[name]]proposal [proposal-number]
/*&#x914D;&#x7F6E;IKE&#x8C03;&#x7528;&#x524D;&#x9762;&#x914D;&#x7F6E;&#x7684;proposal&#x63D0;&#x8BAE;&#xFF0C;&#x91CC;&#x9762;&#x5305;&#x542B;&#x4E86;&#x6211;&#x4EEC;&#x7684;&#x52A0;&#x5BC6;&#x65B9;&#x5F0F;&#x3001;&#x9A8C;&#x8BC1;&#x65B9;&#x6CD5;&#x3001;&#x9A8C;&#x8BC1;&#x7B97;&#x6CD5;*/
[Router-profile-[name]] local-identity [address [ip-address] / dn [dn-name] / fqdn [fqdn-name] / user-fqdn [user-fqdn]  ]
/*&#x914D;&#x7F6E;IKE&#x7684;&#x672C;&#x5730;&#x8EAB;&#x4EFD;&#x4FE1;&#x606F;&#xFF0C;&#x662F;&#x4F7F;&#x7528;&#x516C;&#x7F51;&#x5730;&#x5740;[address]&#x6216;&#x8005;&#x4F7F;&#x7528;&#x4E3B;&#x673A;&#x540D;[dn/fqdn/user-fqdn]&#x6765;&#x6807;&#x8BC6;&#x5BF9;&#x7AEF;&#x4E3B;&#x673A;*/
[Rouer-ike-profile-[name]]match remote 
certificate [policy-name]
identity [address [ip-address] mask [mask] 
range [start-address - end-address] 
vpn-instance [vpn-name] 
fqdn [fqdn-name] 
user-fqdn [user-fqdn] 
/*&#x914D;&#x7F6E;IKE&#x5339;&#x914D;&#x5BF9;&#x7AEF;&#x8EAB;&#x4EFD;&#x7684;&#x89C4;&#x5219;&#xFF0C;&#x662F;&#x5339;&#x914D;identiy &#x8FD8;&#x662F;&#x5339;&#x914D;certificate*&#x662F;&#x7528;fqdn&#x6765;&#x5339;&#x914D;&#x8FD8;&#x662F;&#x7528;user-fqdn&#x6765;&#x5339;&#x914D;/
[Router-ike-profile-[name]]priority [name]
/*&#x914D;&#x7F6E;IKE Profile&#x7684;&#x4F18;&#x5148;&#x7EA7;*/

【二阶段配置】

代码语言:javascript复制
/*&#x4E3B;&#x52A8;&#x6A21;&#x5F0F;&#x914D;&#x7F6E;&#x6D41;&#x7A0B;*/
/*&#x4E8C;&#x9636;&#x6BB5;&#x914D;&#x7F6E;*/
[Router]ipsec transform-ser [name]
/*&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x5B89;&#x5168;&#x63D0;&#x8BAE;*/
[Router-ipsec-transform-set-[naem]] protocol [ah / ah-esp / esp] 
/*&#x914D;&#x7F6E;ipsec&#x7684;&#x5B89;&#x5168;&#x534F;&#x8BAE;*/
[Router-ipsec-transform-set-[name]] encapsulation-mode [transport / trunnel]
/*&#x8BBE;&#x7F6E;ipsec&#x7684;&#x5DE5;&#x4F5C;&#x6A21;&#x5F0F;&#xFF0C;&#x662F;&#x8F6C;&#x53D1;&#xFF08;transport&#xFF09;&#x6A21;&#x5F0F;&#x8FD8;&#x662F;&#x96A7;&#x9053;&#xFF08;tunnel&#xFF09;&#x6A21;&#x5F0F;*/
[Router-ipsec-transform-set-[name]] esp encryption-algorithm [3des-cbc / aes-cbc-128 / aes-cbc-192 / aes-cbc-256 / des-cbc / null]
/*&#x914D;&#x7F6E;&#x8F6C;&#x6362;&#x96C6;&#xFF0C;&#x91C7;&#x7528;esp&#x5B89;&#x5168;&#x534F;&#x8BAE;&#xFF0C;&#x8BBE;&#x7F6E;esp&#x534F;&#x8BAE;&#x91C7;&#x7528;&#x7684;&#x52A0;&#x5BC6;&#x7B97;&#x6CD5;&#x662F;&#x4EC0;&#x4E48;*/
[Router-ipsec-transform-set-[name]] esp authentication-algorithm [md5 / sha1]
/*&#x914D;&#x7F6E;ESP&#x534F;&#x8BAE;&#x91C7;&#x7528;&#x7684;&#x9A8C;&#x8BC1;&#x7B97;&#x6CD5;&#x662F;md5&#x8FD8;&#x662F;sha1*/
[Router-ipsec-transform-set-[name]] ah authentication-algorithm [md5 / sha1]
/*&#x91C7;&#x7528;ah&#x5B89;&#x5168;&#x534F;&#x8BAE;&#xFF0C;&#x914D;&#x7F6E;ah&#x5B89;&#x5168;&#x534F;&#x8BAE;&#x91C7;&#x7528;&#x7684;&#x9A8C;&#x8BC1;&#x7B97;&#x6CD5;&#x662F;md5&#x8FD8;&#x662F; sha1*/
[Router] ipsec policy [seq-name] [number] manual
/*&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x5B89;&#x5168;&#x7B56;&#x7565;&#xFF0C;&#x8C03;&#x7528;&#x6211;&#x4EEC;&#x524D;&#x9762;&#x7684;&#x611F;&#x5174;&#x8DA3;&#x6D41;&#x3001;&#x9A8C;&#x8BC1;&#x65B9;&#x6CD5;&#x3001;&#x7B97;&#x6CD5;&#x7B49;*/
[Router-ipsec-policy-manual-[name]] security acl [acl-number]
/*&#x8C03;&#x7528;&#x524D;&#x9762;&#x8BBE;&#x7F6E;&#x7684;ACL&#x7B56;&#x7565;*/
[Router-ipsec-policy-manual-[name]] transform-set [name]
/*&#x8BBE;&#x7F6E;&#x5B89;&#x5168;&#x7B56;&#x7565;&#x6240;&#x5F15;&#x7528;&#x7684;&#x5B89;&#x5168;&#x63D0;&#x8BAE;*/
[Router-ipsec-policy-manual-[name] ]ike-profile [name]
/*&#x8C03;&#x7528;&#x5148;&#x524D;&#x914D;&#x7F6E;&#x7684;ike&#x6863;&#x6848;*/
[Router-ipsec-policy-manual-[name]] remote-address [ip-address / ipv6-address]
/*&#x914D;&#x7F6E;IPsec&#x96A7;&#x9053;&#x5BF9;&#x7AEF;&#x7684;&#x5730;&#x5740;*/
[Router-interface] ipsec apply policy [name]
/*&#x6700;&#x540E;&#x5728;&#x63A5;&#x53E3;&#x4E0A;&#x4E0B;&#x53D1;ipsec&#x7B56;&#x7565;*/

1 人点赞