在运行 Junos OS 的设备上配置 VPN
本节介绍使用以下 IKE 身份验证方法在 Junos OS 设备上进行的 IPsec VPN 配置示例:
在运行 Junos OS 的设备上配置 VPN 概述
本节介绍使用以下 IKE 身份验证方法在 Junos OS 设备上进行的 IPsec VPN 配置示例:
图 1 展示了本节所述的所有示例中使用的 VPN 拓扑。此处,H0 和 H1 是主机 PC,R0 和 R2 是 IPsec VPN 隧道的两个端点,R1 是在两个不同网络之间路由流量的路由器。
路由器 R1 可以是基于 Linux 的路由器、瞻博网络设备或任何其他供应商的路由器。
表 1 提供了支持的 IKE 协议、隧道模式、第 1 阶段协商模式、身份验证方法或算法、加密算法、IKE 身份验证和加密(第 1 阶段,IKE 提案)以及 IPsec 身份验证和加密(第 2 阶段,IPsec 提案)支持的 DH 组的完整列表。22.2 R1 S1 通用标准支持和必需列出的协议、模式和算法。
| IKE 协议 |
隧道模式 |
第 1 阶段协商模式 |
第 1 阶段提议(P1、IKE) |
|||
|---|---|---|---|---|---|---|
| 身份验证方法 |
身份验证算法 |
DH 集团 |
加密算法 |
|||
| IKEv1 |
主 |
路由 |
预共享密钥 |
SHA-256 |
组 14 |
|
| IKEv2 |
RSA 签名-2048 |
SHA-384 |
组 19 |
AES-128-CBC |
||
| ECDSA-签名-256 |
组 20 |
AES-128-GCM |
||||
| ECDSA-签名-384 |
group24 |
AES-192-CBC |
||||
| AES-256-CBC |
||||||
| AES-256-GCM |
||||||
| IKE 协议 |
隧道模式 |
第 1 阶段协商模式 |
第 2 阶段提议(P2、IPsec) |
|||
|---|---|---|---|---|---|---|
| 身份验证算法 |
DH 组 (PFS) |
加密方法 |
加密算法 |
|||
| IKEv1 |
主 |
路由 |
HMAC-SHA1-96 |
组 14 |
ESP |
3DES-CBC |
| IKEv2 |
HMAC-SHA-256-128 |
组 19 |
AES-128-CBC |
|||
| 组 20 |
AES-128-GCM |
|||||
| group24 |
AES-192-CBC |
|||||
| AES-192-GCM |
||||||
| AES-256-CBC |
||||||
| AES-256-GCM |
||||||
以下部分提供了针对所选算法的 IKEv1 IPsec VPN 示例的配置示例。可以在配置中替换身份验证和加密算法,以完成用户所需的配置。对 IKEv2 IPsec VPN 使用 set security ike gateway <gw-name> version v2-only 命令。
- 使用预共享密钥配置 IPsec VPN,以便进行 IKE 身份验证
- 使用 RSA 签名配置 IPsec VPN,以便进行 IKE 身份验证
- 使用 ECDSA 签名配置 IPsec VPN,以便进行 IKE 身份验证
使用 RSA 签名配置 IPsec VPN,以便进行 IKE 身份验证
以下部分提供了一个示例,用于使用 RSA 签名作为 IKE 身份验证方法为 IPsec VPN 配置 Junos OS 设备,而 IKE/IPsec 身份验证/加密中使用的算法如下表所示。在本部分中,您将使用 RSA 签名作为 IKE 身份验证方法来配置运行 Junos OS for IPsec VPN 的设备。 表 3 显示了 IKE 或 IPsec 身份验证或加密中使用的算法。
| IKE 协议 |
隧道模式 |
第 1 阶段协商模式 |
第 1 阶段提议(P1、IKE) |
|||
|---|---|---|---|---|---|---|
| 身份验证方法 |
身份验证算法 |
DH 集团 |
加密算法 |
|||
| IKEv1 |
主 |
路由 |
RSA 签名-2048 |
SHA-256 |
组 19 |
AES-128-CBC |
| IKE 协议 |
隧道模式 |
第 1 阶段协商模式 |
第 2 阶段提议(P2、IPsec) |
|||
|---|---|---|---|---|---|---|
| 身份验证算法 |
DH 组 (PFS) |
加密方法 |
加密算法 |
|||
| IKEv1 |
主 |
路由 |
HMAC-SHA-256-128 |
组 19 |
ESP |
AES-128-CBC |
将使用 RSA 签名配置 IPsec VPN 作为发起方或响应方上的 IKE 身份验证
要在发起方上使用 RSA 签名 IKE 身份验证配置 IPsec VPN:
-
配置 PKI。请参阅 示例:配置 PKI。
-
生成 RSA 密钥对。请参阅 示例:生成公钥-私钥对。
-
生成并加载 CA 证书颁发机构证书。请参阅 示例:手动加载证书颁发机构和本地证书。
-
加载 CRL。请参阅 示例:手动将CRL加载到设备上 。
-
生成并加载本地证书。请参阅 示例:手动加载证书颁发机构和本地证书。
-
配置 IKE 提议。
[edit security ike] user@host# set proposal ike-proposal1 authentication-method rsa-signatures user@host# set proposal ike-proposal1 dh-group group19 user@host# set proposal ike-proposal1 authentication-algorithm sha-256 user@host# set proposal ike-proposal1 encryption-algorithm aes-128-cbc
注意:这是
ike-proposal1授权管理员给出的名称。 -
配置 IKE 策略。
[edit security ike] user@host# set policy ike-policy1 mode main user@host# set policy ike-policy1 proposals ike-proposal1 user@host# set policy ike-policy1 certificate local-certificate cert1
注意:此处由
ike-policy1授权管理员提供的 IKE 策略名称。 -
配置 IPsec 提议。
[edit security ipsec] user@host# set proposal ipsec-proposal1 protocol esp user@host# set proposal ipsec-proposal1 authentication-algorithm hmac-sha-256-128 user@host# set proposal ipsec-proposal1 encryption-algorithm aes-128-cbc
注意:这是
ipsec-proposal1授权管理员给出的名称。 -
配置 IPsec 策略。
[edit security ipsec] user@host# set policy ipsec-policy1 perfect-forward-secrecy keys group19 user@host# set policy ipsec-policy1 proposals ipsec-proposal1
注意:这是
ipsec-policy1授权管理员给出的名称。 -
配置 IKE。
[edit security ike] user@host# set gateway gw1 ike-policy ike-policy1 user@host# set gateway gw1 address 192.0.2.8 user@host# set gateway gw1 local-identity inet 192.0.2.5 user@host# set gateway gw1 external-interface fe-0/0/1
注意:这里是
192.0.2.8对等 VPN 端点 IP,192.0.2.5是本地 VPN 端点 IP,是fe-0/0/1作为 VPN 端点的本地出站接口。IKEv2 还需要以下配置。[edit security ike] user@host# set gateway gw1 version v2-only
-
配置 VPN。
[edit security ipsec] user@host# set vpn vpn1 ike gateway gw1 user@host# set vpn vpn1 ike ipsec-policy ipsec-policy1 user@host# set vpn vpn1 bind-interface st0.0
注意:下面是
vpn1授权管理员提供的 VPN 隧道名称。[edit] user@host# set routing-options static route 192.0.2.10/24 qualified-next-hop st0.0 preference 1
-
配置出站流策略。
[edit security policies] user@host# set from-zone trustZone to-zone untrustZone policy policy1 match source-address trustLan user@host# set from-zone trustZone to-zone untrustZone policy policy1 match destination-address untrustLan user@host# set from-zone trustZone to-zone untrustZone policy policy1 match application any user@host# set from-zone trustZone to-zone untrustZone policy policy1 then permit user@host# set from-zone trustZone to-zone untrustZone policy policy1 then log session-init user@host# set from-zone trustZone to-zone untrustZone policy policy1 then log session-close
注意:这里是
trustZoneuntrustZone预配置的安全区域和trustLanuntrustLan预配置的网络地址。 -
配置入站流策略。
[edit security policies] user@host# set from-zone untrustZone to-zone trustZone policy policy1 match source-address untrustLan user@host# set from-zone untrustZone to-zone trustZone policy policy1 match destination-address trustLan user@host# set from-zone untrustZone to-zone trustZone policy policy1 match application any user@host# set from-zone untrustZone to-zone trustZone policy policy1 then permit user@host# set from-zone untrustZone to-zone trustZone policy policy1 then log session-init user@host# set from-zone untrustZone to-zone trustZone policy policy1 then log session-close
注意:这里是
trustZoneuntrustZone预配置的安全区域,trustLanuntrustLan是预配置的网络地址。 -
提交配置。
[edit] user@host# commit
使用 ECDSA 签名配置 IPsec VPN,以便进行 IKE 身份验证
在本部分中,您将使用 ECDSA 签名作为 IKE 身份验证方法来配置运行 Junos OS for IPsec VPN 的设备。 表 4 显示了 IKE 或 IPsec 身份验证或加密中使用的算法。
| IKE 协议 |
隧道模式 |
第 1 阶段协商模式 |
第 1 阶段提议(P1、IKE) |
|||
|---|---|---|---|---|---|---|
| 身份验证方法 |
身份验证算法 |
DH 集团 |
加密算法 |
|||
| IKEv1 |
主 |
路由 |
ECDSA-签名-256 |
SHA-384 |
组 14 |
AES-256-CBC |
| IKE 协议 |
隧道模式 |
第 1 阶段协商模式 |
第 2 阶段提议(P2、IPsec) |
|||
|---|---|---|---|---|---|---|
| 身份验证算法 |
DH 组 (PFS) |
加密方法 |
加密算法 |
|||
| IKEv1 |
主 |
路由 |
无算法 |
组 14 |
ESP |
AES-256-GCM |
在发起方上使用 ECDSA 签名 IKE 身份验证配置 IPsec VPN
要在发起方上使用 ECDSA 签名 IKE 身份验证配置 IPsec VPN:
-
配置 PKI。请参阅 示例:配置 PKI。
-
生成 RSA 密钥对。请参阅 示例:生成公钥-私钥对。
-
生成并加载 CA 证书颁发机构证书。请参阅 示例:手动加载证书颁发机构和本地证书。
-
加载 CRL。请参阅 示例:手动将CRL加载到设备上 。
-
生成并加载本地证书。请参阅 示例:手动加载证书颁发机构和本地证书。
-
配置 IKE 提议。
[edit security ike] user@host# set proposal ike-proposal1 authentication-method ecdsa-signatures-256 user@host# set proposal ike-proposal1 dh-group group14 user@host# set proposal ike-proposal1 authentication-algorithm sha-384 user@host# set proposal ike-proposal1 encryption-algorithm aes-256-cbc
注意:下面是
ike-proposal1授权管理员给出的 IKE 提议名称。 -
配置 IKE 策略。
[edit security ike] user@host# set policy ike-policy1 mode main user@host# set policy ike-policy1 proposals ike-proposal1 user@host# set policy ike-policy1 certificate local-certificate cert1
-
配置 IPsec 提议。
[edit security ipsec] user@host# set proposal ipsec-proposal1 protocol esp user@host# set proposal ipsec-proposal1 encryption-algorithm aes-256-gcm
注意:下面
ipsec-proposal1是授权管理员给出的 IPsec 提议名称。 -
配置 IPsec 策略。
[edit security ipsec] user@host# set policy ipsec-policy1 perfect-forward-secrecy keys group14 user@host# set policy ipsec-policy1 proposals ipsec-proposal1
注意:这里
ipsec-policy1是 IPsec 策略名称,也是ipsec-proposal1授权管理员提供的 IPsec 提议名称。 -
配置 IKE。
[edit security ike] user@host# set gateway gw1 ike-policy ike-policy1 user@host# set gateway gw1 address 192.0.2.8 user@host# set gateway gw1 local-identity inet 192.0.2.5 user@host# set gateway gw1 external-interface ge-0/0/2
注意:这里是
gw1IKE 网关名称,192.0.2.8是对等 VPN 端点 IP,192.0.2.5是本地 VPN 端点 IP,并且ge-0/0/2是作为 VPN 端点的本地出站接口。IKEv2 还需要以下配置。[edit security ike] user@host# set gateway gw1 version v2-only
-
配置 VPN。
[edit] user@host# set security ipsec vpn vpn1 ike gateway gw1 user@host# set security ipsec vpn vpn1 ike ipsec-policy ipsec-policy1 user@host# set security ipsec vpn vpn1 bind-interface st0.0 user@host# set routing-options static route 192.0.2.10/24 qualified-next-hop st0.0 preference 1
注意:下面是
vpn1授权管理员提供的 VPN 隧道名称。 -
配置出站流策略。
[edit security policies] user@host# set from-zone trustZone to-zone untrustZone policy policy1 match source-address trustLan user@host# set from-zone trustZone to-zone untrustZone policy policy1 match destination-address untrustLan user@host# set from-zone trustZone to-zone untrustZone policy policy1 match application any user@host# set from-zone trustZone to-zone untrustZone policy policy1 then permit user@host# set from-zone trustZone to-zone untrustZone policy policy1 then log session-init user@host# set from-zone trustZone to-zone untrustZone policy policy1 then log session-close
注意:这里是
trustZoneuntrustZone预配置的安全区域,trustLanuntrustLan是预配置的网络地址。 -
配置入站流策略。
[edit security policies] user@host# set from-zone untrustZone to-zone trustZone policy policy1 match source-address untrustLan user@host# set from-zone untrustZone to-zone trustZone policy policy1 match destination-address trustLan user@host# set from-zone untrustZone to-zone trustZone policy policy1 match application any user@host# set from-zone untrustZone to-zone trustZone policy policy1 then permit user@host# set from-zone untrustZone to-zone trustZone policy policy1 then log session-init user@host# set from-zone untrustZone to-zone trustZone policy policy1 then log session-close
注意:这里是
trustZoneuntrustZone预配置的安全区域,trustLanuntrustLan是预配置的网络地址。 -
提交配置。
user@host# commit
在响应方上使用 ECDSA 签名 IKE 身份验证配置 IPsec VPN
要在响应方上使用 ECDSA 签名 IKE 身份验证配置 IPsec VPN:
-
配置 PKI。请参阅 示例:配置 PKI。
-
生成 ECDSA 密钥对。请参阅 示例:生成公钥-私钥对。
-
生成并加载 CA 证书颁发机构证书。请参阅 示例:手动加载证书颁发机构和本地证书。
-
加载 CRL。请参阅 示例:手动将CRL加载到设备上 。
-
配置 IKE 提议。
[edit security ike] user@host# set proposal ike-proposal1 authentication-method ecdsa-signatures-256 user@host# set proposal ike-proposal1 dh-group group14 user@host# set proposal ike-proposal1 authentication-algorithm sha-384 user@host# set proposal ike-proposal1 encryption-algorithm aes-256-cbc
注意:下面是
ike-proposal1授权管理员给出的 IKE 提议名称。 -
配置 IKE 策略。
[edit security ike] user@host# set policy ike-policy1 mode main user@host# set policy ike-policy1 proposals ike-proposal1 user@host# set policy ike-policy1 certificate local-certificate cert1
-
配置 IPsec 提议。
[edit security ipsec] user@host# set proposal ipsec-proposal1 protocol esp user@host# set proposal ipsec-proposal1 encryption-algorithm aes-256-gcm
注意:下面
ipsec-proposal1是授权管理员给出的 IPsec 提议名称。 -
配置 IPsec 策略。
[edit security ipsec] user@host# set policy ipsec-policy1 perfect-forward-secrecy keys group14 user@host# set policy ipsec-policy1 proposals ipsec-proposal1
注意:这里
ipsec-policy1是 IPsec 策略名称,也是ipsec-proposal1授权管理员提供的 IPsec 提议名称。 -
配置 IKE。
[edit security ike] user@host# set gateway gw1 ike-policy ike-policy1 user@host# set gateway gw1 address 192.0.2.5 user@host# set gateway gw1 local-identity inet 192.0.2.8 user@host# set gateway gw1 external-interface ge-0/0/1
注意:这里是
gw1IKE 网关名称,192.0.2.5是对等 VPN 端点 IP,192.0.2.8是本地 VPN 端点 IP,并且ge-0/0/1是作为 VPN 端点的本地出站接口。IKEv2 还需要以下配置。[edit security ike] user@host# set gateway gw1 version v2-only
-
配置 VPN。
[edit] user@host# set security ipsec vpn vpn1 ike gateway gw1 user@host# set security ipsec vpn vpn1 ike ipsec-policy ipsec-policy1 user@host# set security ipsec vpn vpn1 bind-interface st0.0 user@host# set routing-options static route 192.0.2.1/24 qualified-next-hop st0.0 preference 1
注意:下面是
vpn1授权管理员提供的 VPN 隧道名称。 -
配置出站流策略。
[edit security policies] user@host# set from-zone trustZone to-zone untrustZone policy policy1 match source-address trustLan user@host# set from-zone trustZone to-zone untrustZone policy policy1 match destination-address untrustLan user@host# set from-zone trustZone to-zone untrustZone policy policy1 match application any user@host# set from-zone trustZone to-zone untrustZone policy policy1 then permit user@host# set from-zone trustZone to-zone untrustZone policy policy1 then log session-init user@host# set from-zone trustZone to-zone untrustZone policy policy1 then log session-close
注意:这里是
trustZoneuntrustZone预配置的安全区域,trustLanuntrustLan是预配置的网络地址。 -
配置入站流策略。
[edit security policies] user@host# set from-zone untrustZone to-zone trustZone policy policy1 match source-address untrustLan user@host# set from-zone untrustZone to-zone trustZone policy policy1 match destination-address trustLan user@host# set from-zone untrustZone to-zone trustZone policy policy1 match application any user@host# set from-zone untrustZone to-zone trustZone policy policy1 then permit user@host# set from-zone untrustZone to-zone trustZone policy policy1 then log session-init user@host# set from-zone untrustZone to-zone trustZone policy policy1 then log session-close
注意:这里是
trustZoneuntrustZone预配置的安全区域,trustLanuntrustLan是预配置的网络地址。 -
提交配置。
user@host# commit