提示和技巧: 为什么使用 VPN 代理 ID?

提示和技巧: 为什么使用 VPN 代理 ID?

268699
Created On 09/25/18 19:05 PM - Last Modified 06/07/23 05:44 AM


Resolution


还记得上周我们的两难处境吗, 我们在 IPSec VPN 隧道上重叠了子网?我们正在寻找一种方法来获取对等网络的通信。代理 id 的救援。如果您的帕洛阿尔托网络防火墙使用对等支持的基于策略的 VPN, 则需要代理 id。

 

上周关于本周的讨论 (DotW) 是对代理 id的帮助, 但让我们进一步讨论 VPN 代理 id 以及使用它们的重要性.

 

当我们谈论 IPSec VPN 隧道时, 如果您要设置帕洛阿尔托网络防火墙来与支持基于策略的 VPN 的对等方合作, 则必须定义代理 id。支持基于策略的 VPN 的设备使用特定的安全规则/策略或访问列表 (源地址、目标地址和端口) 来允许通过 IPSec 隧道进行有趣的通信。在快速模式/IKE 阶段2协商过程中引用这些规则, 并在进程的第一个或第二个消息中交换为代理 id。

 

因此, 如果您正在配置帕洛阿尔托网络防火墙以使用基于策略的 VPN 对等方, 则对于成功的2阶段协商, 必须定义代理 ID, 以便两个对等点上的设置相同。如果没有配置代理 id, 因为帕洛阿尔托网络防火墙支持基于路由的 VPN, 因此用作代理 id 的默认值为源 ip: 0.0. 0.0/0, 目标 ip: 0.0. 0.0/0 及应用: 任何; 或当这些值与对等方交换时, 结果是设置 VPN 连接失败。

 

现在, 让我们来看看代理 ID 窗口和选项:
tnt-2015-12-15-pic1. png

在代理 ID 部分 (位于 WebGUI 网络 > IPSec 隧道中) 中, 选择一个隧道 > 代理 id 选项卡), 您将看到许多选项:

  • 代理 ID -单击 "添加" 并输入一个名称以标识代理. 可以是任何名称。如果只使用数字, 它将不被接受。
  • 本地 -输入 IP 地址或子网格式 ip_address/掩码 (例如, 10.1. 2.1/24).
  • 远程 -如果对等方需要, 请在格式化 ip_address/掩码 (例如 10.1. 1.1/24) 中输入 IP 地址或子网.
  • 协议-指定本地和远程端口的协议和端口号:
    • 编号-指定协议编号 (用于与第三方设备的互操作性).
    • 任何-允许 TCP 和/或 UDP 通信.
    • tcp -指定本地和远程 tcp 端口号.
    • udp -指定本地和远程 UDP 端口号.

注意: 每个代理 ID 都被计算为 VPN 隧道, 因此对防火墙的 IPSec VPN 隧道容量进行计数. (示例: 站点 toiSite IPSec VPN 隧道限制-PA-3020-1000, PA-2050-100, PA-200-25)

 

代理 id 的优点是, 如果您只需要通过 VPN 隧道访问特定的通信量, 则可以使用协议号或 TCP/UDP 端口号获得粒状。代理 id 可以轻松地启用此类粒度。

 

因为有2版本的 IKE, 所以代理 id 的行为是不同的:
-IKEv1, 帕洛阿尔托网络设备只支持代理 id 精确匹配. 在对等方的代理 ID 不匹配的情况下, VPN 正常工作会出现问题。
-使用 IKEv2, 当在两个 VPN 网关上的代理 ID 设置不同时, 支持通信选择器会缩小, 在下面的用例中仅描述实现的选项.

 

用例 IKEv2

有关 ipsec 和 IKEv2 的用例列表, 请参阅下面的代码, 这些用例可以帮助解释许多 ipsec VPN 设置, 以及如何正确使用代理 ID。

 

示例: 有两个 vpn 网关: A 和 B. IKE 协商由 VPN GW 启动。 i = 启动器, r = 响应方

 

假设 VPN GW-定义的交通选择器 TSi-a;VPN 有设置为交通选择 TSi-b/TSr。tsr 和 tsr 是一样的, 所以可以忽略它。tsi-a 可以不同于 tsi b。

 

A例如, tsi a 与 tsi b 相同, 两者都是 5.10.11.0/24。

tnt-2015-12-15-pic a. png

预期: 然后不需要收缩, 行为与现有的 IKEv1 代理 ID 大小写相同。通信将无法通过, 在本例中, NAT 将被要求允许适当的通信。

 

VPN GW-a: 发送: TSi: 5.10.11.0-5.10.11.255

VPN: 回复: TSi: 5.10.11.0-5.10.11.255 [最终结果]

 

此解决方案在 DotW 文章中详细介绍:

关于代理 ID 的

b. tsi a 是 tsi 的超集-B:

tnt-2015-12-15-pic 湾

b1。VPN GW-a 建议 TSi-a = 5.10.0. 0/16;在 VPN 上-b: TSi-b = 5.10.11.0/24。

 

我。隧道在没有通信量的情况下 (例如, 在初始化或通过测试命令时) 被提起。

 

预计: 作为响应方, vpn gw-b 答复 vpn gw-a 与 5.10.11.0/24。VPN GW-a 应该接受它并创建子 SA。

 

VPN GW-a: 发送: TSi: 5.10.0.0-5.10.255.255

VPN: 答: TSi: 5.10.11.0-5.10.11.255 [缩小到共同子集]

 

二。一个主机后面的 VPN GW (例如, 主机 IP 5.10.11.2) 试图把隧道。

 

预计: 作为响应方, vpn gw-b 答复 vpn gw-a 与 5.10.11.0/24。VPN GW-a 应该接受它并创建子 SA。交通应该通过。

 

VPN GW-a: 发送: TSi: 5.10.11.2;5.10.0.0-5.10.255.255

VPN: 答: TSi: 5.10.11.0-5.10.11.255 [缩小到共同子集]

 

如果我们是发起方, 则不会在 IKE 有效负载中发送第一个特定的通信选择器 (5.10.11.2)。

作为响应者, 我们应该能够处理发送特定通信选择器的对等方。我们还将把流量选择器缩小到公共子集。

 

(三)。一个主机后面的 VPN GW (例如, 主机 IP 5.10.6.2) 试图把隧道。

预计: 作为响应方, vpn gw-b 答复 vpn gw-a 与 5.10.11.0/24。VPN GW-a 应该接受它并创建子 SA。

 

VPN GW-a: 发送: TSi: 5.10.6.2;5.10.0.0-5.10.255.255

VPN: 答: TSi: 5.10.11.0-5.10.11.255 [缩小到共同子集]

 

如果我们是发起方, 则不会在 IKE 有效负载中发送第一个特定的通信选择器 (5.10.6.2)。

 

作为响应方, 我们将将流量选择器缩小为公共子集。如果收到的 TS 有效负载包含特定的通信选择器, 尽管它超出了本地策略, 但我们仍在进行收缩, 但忽略了每个 RFC 5996 的特定通信选择器。

 

b2。VPN GW-a 建议 TSi-a = 5.10.0. 0/16;在 VPN 上: 定义了多个条目: TSi b = 5.10.11.0/24 + 5.10.12.0/24。

 

我。隧道在没有交通的情况下被提起。

 

strongswan 支持每个通信选择器的多个条目。所以 strongswan 可以用来设置为 VPN GW b。如果帕诺斯是 GW b, 我们需要配置多个代理 id。

 

VPN GW-a: 发送: TSi: 5.10.0.0-5.10.255.255

VPN: 答: TSi: 5.10.11.0-5.10.11.255 [帕诺斯: 第一个匹配项中的公共子集]

 

上面显示了帕诺斯作为响应方 (VPN GW b) 的结果。它答复 VPN GW-a 与其中一个条目: 5.10.11.0/24 或 5.10.12.0/24 (第一个条目基于 "显示 VPN 隧道" 的顺序, 字母顺序的完整隧道名称)。

 

某些供应商 (如 VPN GW b) 可能返回 TS (5.10.11.0-5.10.11.255 + 5.10.12.0-5.10.12.255), 但我们只安装第一个条目。

 

二。一个主机后面的 VPN GW (例如主机 IP 5.10.11.2) 试图把隧道。

预计: 作为响应方, vpn gw-b 答复 vpn gw-a 与 5.10.11.0/24。交通应该通过。

 

VPN GW-a: 发送: TSi: 5.10.11.2;5.10.0.0-5.10.255.255

VPN: 答: TSi: 5.10.11.0-5.10.11.255 [PAN OS: 第一个匹配项的共同子集, 更喜欢可以覆盖5.10.11.2 的策略]

 

如果我们是发起方, 则不会在 IKE 有效负载中发送第一个特定的通信选择器 (5.10.11.2)。

 

如果我们是响应方, 我们将搜索所有配置的代理 ID, 直到一个条目可以覆盖特定的通信选择器, 并且可以缩小或精确匹配。如果特定的通信选择器不能被公共子集覆盖, 我们仍然试图缩小范围。

 

(三)。第二步之后, vpn (例如主机 IP 5.10.12.2) 后面的另一个主机试图到达 vpn 的另一端。

预期: 由于通信量与先前创建的 VPN 隧道不匹配, 将协商另一个 IPSec SA。

 

VPN GW-a: 发送: TSi: 5.10.12.2;5.10.0.0-5.10.255.255

VPN: 答: TSi: 5.10.12.0-5.10.12.255 [帕诺斯: 第一个匹配项中的公共子集, 更喜欢可以覆盖5.10.12.2 的策略]

 

此时, 两个代理 ID 的 VPN 隧道都向上和传递通信量。

 

某些供应商可能无法启动另一个 IKE 协商。他们使用在第二步中建立的现有隧道发送数据包, 尽管它与5.10.12.2 不匹配。我们需要检查整个隧道的谈判过程来分析这种行为。

 

第四。vpn (例如, 主机 IP 5.10.6.2) 后面的主机试图到达 vpn 的另一端 (没有步骤二和 iii)。

 

预期: 因为在 vpn gw a 上没有匹配的 SA, 所以它尝试与 vpn 协议进行协商。响应可能是依赖于实现的。

 

VPN GW-a: 发送: TSi: 5.10.6.2;5.10.0.0-5.10.255.255

VPN: 答: TSi: 5.10.12.0-5.10.12.255 [帕诺斯: 第一个匹配项中的公共子集]

 

v。在第三步之后, vpn (例如, 主机 IP 5.10.6.2) 后面的主机试图到达 vpn 的另一端。

 

启动器可以使用以前建立的隧道将通信转发到对等方。选择可以依赖供应商的隧道。

 

b3。对于不支持通信选择器收缩的 VPN GW b

 

有些 VPN 设备不支持流量选择器的收缩, 例如。思科 IOS 15.0 回复 NO_PROPOSAL_CHOSEN 在这种情况下。

 

无法建立隧道, 必须更改配置。

 

C. TSi a 是 TSr b 的子集:

tnt-2015-12-15-pic c. png

VPN GW-a 建议 TSi a = 5.10.11.0/24;在 VPN 上-b: TSr-b = 5.10.0. 0/16。

 

我。隧道在没有交通的情况下被提起。

 

预计: VPN GW-b 答复 5.10.11.0/24。隧道是使用交通选择器的公用部分 (5.10.11.0/24) 建立的。

VPN GW-a: 发送: TSi: 5.10.11.0-5.10.11.255

VPN: 答: TSi: 5.10.11.0-5.10.11.255 [最终结果-共同子集]

 

二。一个主机后面的 VPN GW (例如主机 IP 5.10.11.2) 试图把隧道。

 

预期: 建立了交通选择器 5.10.11.0/24 隧道。交通应该能通过。

VPN GW-a: 发送: TSi: 5.10.11.2;5.10.11.0-5.10.11.255

VPN: 回复: TSi: 5.10.11.0-5.10.11.255 [最终结果]

 

如果我们是发起方, 则不会在 IKE 有效负载中发送第一个特定的通信选择器 (5.10.11.2)。

 

作为响应者, 我们应该能够处理发送特定通信选择器的对等方。我们将选择从发起方的流量选择器, 因为它是较小的。

 

(三)。VPN 后面的主机 (例如, 主机 IP 5.10.6.2) 试图将隧道

 

预期:

VPN GW-a: 发送: TSi: 5.10.6.2;5.10.11.0-5.10.11.255

VPN: 回复: TSi: 5.10.11.0-5.10.11.255 [最终结果]

 

当泛型 OS 是启动器时, 如果在同一隧道接口上没有定义代理 id 或单个代理 id, 隧道将按照上述协议进行协商, 并且将通过隧道发送通信量。

 

如果有多个代理 id, 我们将继续检查其他代理 id (隧道 id), 以查看是否存在匹配项。如果没有匹配项, 则最后一个代理 ID 用于协商隧道并发送通信量。这是 IPsec 多阶段2关联中定义的行为。

 

如果 PAN OS 是响应方, 另一个运行策略 VPN 的供应商是启动器, 则它可能不会启动隧道协商, 因为数据包超出了其本地策略的范围。如果它确实启动了隧道协商, 我们将使用启动器的通信选择程序, 因为它更窄。

 

d. TSi a 和 TSr b 之间有重叠。

VPN GW-a 建议 TSi-a = 5.10.0. 0/16;在 VPN 上-b: TSr-b = 5.10.11.0/24 + 5.9. 0.0/24。
tnt-2015-12-15-pic d. png

我。隧道在没有交通的情况下被提起。

 

预计: VPN GW-b 答复 5.10.11.0/24。隧道是使用交通选择器的公用部分 (5.10.11.0/24) 建立的。

VPN GW-a: 发送: TSi: 5.10.0.0-5.10.255.255

VPN: 答: TSi: 5.10.11.0-5.10.11.255 [最终结果-重叠子集]

 

二。一个主机后面的 VPN GW (例如主机 IP 5.10.11.2) 试图把隧道。

 

预期: 建立了交通选择器 5.10.11.0/24 隧道。交通应该能通过。

VPN GW-a: 发送: TSi: 5.10.11.2, 5.10.0.0-5.10.255.255 

VPN: 答: TSi: 5.10.11.0-5.10.11.255 [常用子集]

 

如果我们是发起方, 则不会在 IKE 有效负载中发送第一个特定的通信选择器 (5.10.11.2)。

 

作为响应者, 我们应该能够处理发送特定通信选择器的对等方。我们还将把流量选择器缩小到公共子集。

 

(三)。vpn 的主机 (例如主机 IP 5.10.12.2-在 vpn gw 的策略中, 但在 vpn 的策略之外) 试图提出隧道。

 

预期:

vpn gw: 发送: tsi: 5.10.12.2, 5.10.0.0-5.10.255.255
VPN-b: 答复: TSi: 5.10.11.0-5.10.11.255 [常用子集]

 

如果帕诺斯是发起方: 响应方无法找到对5.10.12.2 有用的范围, 因此它返回公共范围 (5.10.11.0/24)。隧道可以建立。我们不发送特定的交通选择器。

 

根据我们在 IPsec 多阶段2关联中定义的现有行为, 该数据包将通过此隧道发送, 但响应方可能会丢弃它。发送 VPN 隧道可能没有注意到它。

 

第四。一个主机后面的 vpn gw-a (例如主机 IP 5.9.0.2-在 vpn 的策略, 但在 vpn gw 的政策之外) 试图把隧道。

 

预计:
VPN gw-a: 发送: tsi: 5.9.0.2, 5.10.0.0-5.10.255.255
VPN-b: 答复: TSi: 5.10.11.0-5.10.11.255 [常用子集]

 

如果启动器是 PAN OS, 则代理 id 0.0. 0.0/0 (如果没有定义代理 id) 或最后一个代理 id (如果在隧道接口上定义了多个代理 id), 则在 TSi 中使用。

 

响应方 (基于策略的 VPN) 可能会丢弃通信量, 因为它违反了缩小的 TS。
如果启动器正在进行严格的 VPN 策略检查 (不是 PAN OS), 那么 IKE 协商可能不会因为它违反 vpn 策略而触发。

 

这就结束了提示和技巧。我希望你从这篇文章中学到了一些东西。

 

一如既往, 我们欢迎所有的反馈意见和建议。

 

保持安全!

乔德里奥



Actions
  • Print
  • Copy Link

    https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA10g000000ClUFCA0&lang=zh_CN&refURL=http%3A%2F%2Fknowledgebase.paloaltonetworks.com%2FKCSArticleDetail

Choose Language