Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

RPC ALG

远程过程调用 (RPC) ALG 使用众所周知的端口 TCP 111 和 UDP 111 进行端口映射,这些端口可动态为 RPC 服务分配和打开端口。RPC Portmap ALG 可跟踪端口请求,并动态为这些请求的端口打开防火墙。RPC ALG 可通过指定允许的程序编号进一步限制 RPC 协议。

了解 RPC ALG

Junos OS 支持基本的远程过程调用应用层网关 (RPC ALG) 服务。RPC 是一种协议,允许在一个地址空间中运行的应用程序访问其他地址空间中运行的应用程序的资源,就像第一个地址空间的本地资源一样。RPC ALG 负责 RPC 数据包处理。

Junos OS 中的 RPC ALG 支持以下服务和功能:

  • Sun Microsystems RPC 开放式网络计算 (ONC)

  • Microsoft RPC 分布式计算环境 (DCE)

  • 动态端口协商

  • 允许和拒绝特定 RPC 服务的能力

  • 静态网络地址转换 (NAT) 和源 NAT(无端口转换)

  • 安全策略中的 RPC 应用程序

如果您需要运行基于 RPC 的应用程序(如 NFS 或 Microsoft Outlook),请使用 RPC ALG。默认情况下,RPC ALG 功能已启用。

了解 Sun RPC ALG

Sun Microsystems 远程过程调用 (Sun RPC)(也称为开放式网络计算远程过程调用 (ONC RPC))为在一个主机上运行的程序提供了一种方法,用于在另一个主机上运行的程序中执行呼叫过程。由于大量 RPC 服务和广播需求,RPC 服务的传输地址将根据服务的程序编号和版本编号进行动态协商。已定义多个绑定协议,用于将 RPC 程序号和版本编号映射到传输地址。

Junos OS 支持将 Sun RPC 作为预定义服务,并根据您配置的安全策略允许和拒绝流量。应用程序层网关 (ALG) 为瞻博网络设备提供功能,可处理 Sun RPC 的动态传输地址协商机制,并确保基于程序号的安全策略实施。您可以定义安全策略以允许或拒绝所有 RPC 请求,或者允许或拒绝特定程序编号。ALG 还支持传入和传出请求的路由模式和网络地址转换 (NAT) 模式。

当应用程序或 PC 客户端调用远程服务时,需要查找服务的传输地址。对于 TCP/UDP,地址为端口号。此案例的典型过程如下:

  1. 客户端将 GETPORT 消息发送至远程机上的 RPCBIND 服务。GETPORT 消息包含程序编号,以及其尝试调用的远程服务的版本和过程编号。

  2. RPCBIND 服务回复端口号。

  3. 客户端使用返回的端口号呼叫远程服务。

  4. 远程服务回复客户端。

客户端还可以使用 CALLIT 消息直接呼叫远程服务,而无需确定服务的端口号。在这种情况下,过程如下:

  1. 客户端向远程机上的 RPCBIND 服务发送 CALLIT 消息。CALLIT 消息包含其尝试呼叫的远程服务的程序编号以及版本和过程编号。

  2. RPCBIND 称此服务为客户端。

  3. 如果通话成功,RCPBIND 会回复客户端。回复包含呼叫结果和服务的端口号。

Sun RPC ALG 动态分配新映射条目,而不是使用默认大小(512 个条目)。它还提供了基于时间的灵活 RPC 映射条目,可移除映射条目(自动清洁),并且不会影响相关的活动 RPC 会话,包括控制会话和数据会话。

从 Junos OS 15.1X49-D10 和 Junos OS 17.3R1 版开始,您可以定义 Sun RPC 映射入口老化值。使用 命令 set security alg sunrpc map-entry-timeout value 。超龄值范围为 1 小时至 72 小时,默认值为 32 小时。如果 Sun RPC ALG 服务即使在 72 小时后也不会触发控制协商,则最大 RPC ALG 映射出的入门值时间和与服务的新数据连接将发生故障。

启用 Sun RPC ALG

Sun RPC ALG 默认启用,无需配置。

启用 Sun RPC ALG(CLI 过程)

要禁用 Sun RPC ALG,请输入以下命令:

要重新启用 Sun RPC ALG,请输入以下命令:

自定义 Sun RPC 应用程序(CLI 过程)

所有 Sun RPC 应用程序均可使用预定义的应用程序集进行自定义。

例如,可以自定义应用程序以仅开放控制会话,不允许任何数据会话:

在以下示例中,预定义的应用程序集仅允许进行数据会话。如果没有控制会话,它就不会发挥作用:

要使用预定义的应用程序集自定义所有 Sun RPC 应用程序,请在策略中使用两个应用程序集:

注意:

MS RPC 应用程序的自定义方式与 Sun RPC 应用程序相同。

了解 Sun RPC 服务

Sun RPC 又称为开放网络计算远程过程调用 (ONC RPC),为在一个主机上运行的程序提供了一种方法,用于在另一个主机上运行的程序中呼叫程序。Sun RPC 服务由程序标识符定义。程序标识符独立于任何传输地址,并且大多数 Sun RPC 会话都是通过 TCP 或 UDP 端口 111 启动的。每个主机都会将所需的 RPC 服务链接到通过端口 111 控制通道协商的动态 TCP 或 UDP 端口,从而允许客户端连接到 TCP 或 UDP 端口 111。

预定义的 Sun Microsystems 远程过程调用 (Sun RPC) 服务包括:

  • junos-sun-rpc-tcp

  • junos-sun-rpc-udp

使用以下方法可应用 Sun RPC ALG:

  • ALG 默认应用程序 — 使用以下一个预定义应用程序实现策略中的控制和数据连接:

    • junos-sun-rpc-any-tcp

    • junos-sun-rpc-any-udp

    • junos-sun-rpc-mountd-tcp

    • junos-sun-rpc-mountd-udp

    • junos-sun-rpc-nfs-tcp

    • junos-sun-rpc-nfs-udp

    • junos-sun-rpc-nlockmgr-tcp

    • junos-sun-rpc-nlockmgr-udp

    • junos-sun-rpc-portmap-tcp

    • junos-sun-rpc-portmap-udp

    • junos-sun-rpc-rquotad-tcp

    • junos-sun-rpc-rquotad-udp

    • junos-sun-rpc-ruserd-tcp

    • junos-sun-rpc-ruserd-udp

    • junos-sun-rpc-sadmind-tcp

    • junos-sun-rpc-sadmind-udp

    • junos-sun-rpc-sprayd-tcp

    • junos-sun-rpc-sprayd-udp

    • junos-sun-rpc-status-tcp

    • junos-sun-rpc-status-udp

    • junos-sun-rpc-walld-tcp

    • junos-sun-rpc-walld-udp

    • junos-sun-rpc-ypbind-tcp

    • junos-sun-rpc-ypbind-udp

    • junos-sun-rpc-ypserv-tcp

    • junos-sun-rpc-ypserv-udp

  • 默认控制应用程序 — 使用预定义的控制,方法是 junos-sun-rpc

    • 创建数据应用程序 (USER_DEFINED_DATA)。您可以制作一组自己的数据(例如 my_rpc_application_set),并将其用于策略中。

    • ALG 默认应用程序集 — 使用预定义的应用程序集在策略中控制和自定义数据应用程序:

      • junos-sun-rpc (用于控制会话)

      • junos-sun-rpc-any

      • junos-sun-rpc-mountd

      • junos-sun-rpc-nfs

      • junos-sun-rpc-nfs-access

      • junos-sun-rpc-nlockmgr

      • junos-sun-rpc-portmap (针对数据会话)

      • junos-sun-rpc-rquotad

      • junos-sun-rpc-ruserd

      • junos-sun-rpc-sadmind

      • junos-sun-rpc-sprayd

      • junos-sun-rpc-status

      • junos-sun-rpc-walld

      • junos-sun-rpc-ypbind

      • junos-sun-rpc-ypserv

  • 自定义控制和自定义数据应用程序 — 使用自定义应用程序:

    • 创建控制 (USER_DEFINED_CONTROL) 和数据 () 应用程序。USER_DEFINED_DATA

    • 在策略中,使用用户定义的应用程序集进行控制和自定义数据应用程序:

      • USER_DEFINED_CONTROL

      • USER_DEFINED_DATA

表 1 列出了预定义的 Sun RPC 服务、与每项服务关联的程序标识符以及每项服务的说明。

表 1:预定义的 Sun RPC 服务

服务

计划 ID

描述

PORTMAP

100000

Sun RPC 端口地图协议是基于 TCP 或 UDP 端口的服务,包含 TCP 或 UDP 端口 111。

Nfs

100003

Sun RPC 网络文件系统。

安装

100005

Sun RPC 安装过程。

YPBIND

100007

Sun RPC 黄页绑定服务。

地位

100024

Sun RPC 状态。

了解 Microsoft RPC ALG

Microsoft 远程过程调用 (MS-RPC) 是 Microsoft 实施的分布式计算环境 (DCE) RPC。与 Sun RPC 一样,MS-RPC 为在一个主机上运行的程序提供了一种方法,用于在另一个主机上运行的程序中执行呼叫程序。由于大量 RPC 服务和广播需求,RPC 服务的传输地址将根据服务计划的通用唯一标识符 (UUID) 进行动态协商。特定 UUID 映射到传输地址。

运行 Junos OS 的 Junos OS 设备支持将 MS-RPC 作为预定义服务,并根据您配置的策略允许和拒绝流量。应用程序层网关 (ALG) 为瞻博网络设备提供功能,用于处理 MS-RPC 的动态传输地址协商机制,并确保基于 UUID 的安全策略实施。您可以定义安全策略以允许或拒绝所有 RPC 请求,或者允许或拒绝特定 UUID 编号。ALG 还支持传入和传出请求的路由模式和网络地址转换 (NAT) 模式。

当 MS-RPC 客户端和 MS-RPC 服务器均支持 64 位(例如 MS Exchange 2008)时,它们协商在网络通信期间使用 NDR64 传输语法。使用 NDR64 时,接口参数应根据 NDR64 语法进行编码,因为 NDR64 的数据包格式不同于 NDR20 的数据包格式(32 位版本)。

在 MS-RPC 中,有一个 DCOM 远程协议的远程激活接口,称为 ISystemActivator(也称为 IRemoteSCMActivator)。它由 Windows 管理仪器命令行 (WMIC)、互联网信息服务 (IIS) 以及广泛使用的许多其他应用程序使用。

MS-RPC ALG 动态分配新映射条目,而不是使用默认大小(512 个条目)。它还提供了基于时间的灵活 RPC 映射条目,可移除映射条目(自动清洁),并且不会影响相关的活动 RPC 会话,包括控制会话和数据会话。

从 Junos OS 15.1X49-D10 版和 Junos OS 17.3R1 版开始,您可以定义 MS-RPC 映射入口老化值。使用 命令 set security alg msrpc map-entry-timeout value 。超龄值范围为 1 小时至 72 小时,默认值为 32 小时。如果 MS-RPC ALG 服务即使在 72 小时后也不会触发控制协商,则最大 MS-RPC ALG 映射出的入门值时间和与服务的新数据连接将发生故障。

启用 Microsoft RPC ALG

MS-RPC ALG 默认启用,无需配置。

启用 Microsoft RPC ALG(CLI 过程)

要禁用 Microsoft RPC ALG,请输入以下命令:

要使 Microsoft RPC ALG 重新开机,请输入以下命令:

配置 Microsoft RPC ALG

您可以使用以下三种方法配置 Microsoft RPC ALG:

使用预定义的 Microsoft 应用程序配置 MS-RPC ALG

有几个预定义的 MS 应用程序。要从 CLI 查看预定义的 Microsoft 应用程序,请输入 show configuration groups junos-defaults 命令。

提交配置后,从 CLI 输入 show security alg msrpc object-id-map 命令以查看输出。

输出显示 UUID 已应用于策略。

使用通配符 UUID 配置 MS-RPC ALG

要允许任何 MS RPC 应用程序的配置,请将语句添加 application junos-ms-rpc-any 至“许可”配置。

提交配置后,从 CLI 输入 show security alg msrpc object-id-map 命令以查看输出。

使用特定 UUID 配置 MS-RPC ALG

对于尚未预定义的应用程序,您需要手动配置特定 UUID。例如,要允许尚未预定义的 NETLOGON 应用程序,请将语句添加 application msrpc-netlogon 至“许可”配置。

在所有 SRX 系列设备上,在 Junos OS 15.1X49-D90 及更高版本中 Microsoft 远程过程调用 (MS-RPC) 的自定义应用程序通用唯一标识符 (UUID) 具有领先的零和 nil UUID (0000000-0000-0000-0000-0000000000)可能与所有 TCP 流量和参考策略相匹配,允许所有 TCP 流量而不是进入 MS-RPC ALG 检查。

从 Junos OS 15.1X49-D100 版和 Junos OS 17.3R1 版开始,具有领先零的自定义应用程序 UUID 与所有 TCP 流量和引用的策略不匹配,这些策略将进入 MS-RPC ALG 检查。此新应用程序不允许 nil UUID。

提交配置后,从 CLI 输入 show security alg msrpc object-id-map 命令,验证 Microsoft 通用唯一标识符到对象 ID (UUID-to-OID) 映射表。Microsoft RPC ALG 监控 TCP 端口 135 上的数据包。

注意:

show security alg msrpc object-id-map CLI 命令具有机箱群集节点选项,允许将输出限制在特定节点或查询整个群集。show security alg msrpc object-id-map node CLI 命令选项为 <node-id | all | local | primary>

了解 Microsoft RPC 服务

MS-RPC 是 Microsoft 实施的分布式计算环境 (DCE) RPC。与 Sun RPC 一样,MS-RPC 为在一个主机上运行的程序提供了一种方法,用于在另一个主机上运行的程序中执行呼叫程序。MS-RPC 根据服务计划的通用唯一标识符 (UUID) 进行动态协商。特定 UUID 映射到传输地址。

在所有 SRX 系列设备上,在 Junos OS 15.1X49-D90 及更高版本中 Microsoft 远程过程调用 (MS-RPC) 的自定义应用程序通用唯一标识符 (UUID) 具有领先的零和 nil UUID (0000000-0000-0000-0000-0000000000)可能与所有 TCP 流量和参考策略相匹配,允许所有 TCP 流量而不是进入 MS-RPC ALG 检查。

从 Junos OS 15.1X49-D100 版和 Junos OS 17.3R1 版开始,具有领先零的自定义应用程序 UUID 与所有 TCP 流量和引用的策略不匹配,这些策略将进入 MS-RPC ALG 检查。此新应用程序不允许 nil UUID。

预定义的 Microsoft 远程过程调用 (MS-RPC) 服务包括:

  • junos-ms-rpc-epm

  • junos-ms-rpc-tcp

  • junos-ms-rpc-udp

MS-RPC 应用程序默认值包括:

  • junos-ms-rpc-iis-com-1

  • junos-ms-rpc-iis-com-adminbase

  • junos-ms-rpc-msexchange-directory-nsp

  • junos-ms-rpc-msexchange-directory-rfr

  • junos-ms-rpc-msexchange-info-store

  • junos-ms-rpc-uuid-any-tcp

  • junos-ms-rpc-uuid-any-udp

  • junos-ms-rpc-wmic-admin

  • junos-ms-rpc-wmic-admin2

  • junos-ms-rpc-wmic-mgmt

  • junos-ms-rpc-wmic-webm-callresult

  • junos-ms-rpc-wmic-webm-classobject

  • junos-ms-rpc-wmic-webm-level1login

  • junos-ms-rpc-wmic-webm-login-clientid

  • junos-ms-rpc-wmic-webm-login-helper

  • junos-ms-rpc-wmic-webm-objectsink

  • junos-ms-rpc-wmic-webm-refreshing-services

  • junos-ms-rpc-wmic-webm-remote-refresher

  • junos-ms-rpc-wmic-webm-services

  • junos-ms-rpc-wmic-webm-shutdown

MS-RPC 应用程序集默认值包括:

  • junos-ms-rpc

  • junos-ms-rpc-any

  • junos-ms-rpc-iis-com

  • junos-ms-rpc-msexchange

  • junos-ms-rpc-wmic

表 2 列出了预定义的 MS-RPC 服务、与每项服务关联的 UUID 值以及每个服务的说明。

表 2:预定义的 MS-RPC 服务

服务

Uuid

描述

EPM

e1af8308-5d1f-11c9-91a4-08002b14a0fa

MS-RPC 端点映射器 (EPM) 协议是基于 TCP/UDP 端口的服务,包含 TCP/UDP 端口 135。

交换数据库

1a190310-bb9c-11cd-90f8-00aa00466520

Microsoft Exchange Database 服务。

EXCHANGE-DIRECTORY

f5cc5a18-4264-101a-8c59-08002b2f8426

f5cc5a7c-4264-101a-8c59-08002b2f8426

f5cc59b4-4264-101a-8c59-08002b2f8426

Microsoft Exchange Directory 服务。

WIN-DNS

50abc2a4-574d-40b3-9d66-ee4fd5fba076

Microsoft Windows DNS 服务器。

5f52c28-7f9f-101a-b52b-08002b2efabe

811109bf-a4e1-11d1-ab54-00a0c91e9b45

Microsoft WINS 服务。

WMIC-Webm 级别1日志

f309ad18-d86a-11d0-a075-00c04fb68820

此服务允许用户连接到特定名称空间中的管理服务接口。

自定义 Microsoft RPC 应用程序(CLI 过程)

MS-RPC 应用程序的自定义方式与 SUN RPC 应用程序相同。

安全策略中的 MS-RPC 服务包括:

  • 0e4a0156-dd5d-11d2-8c2f-00c04fb6bcde

  • 1453c42c-0fa6-11d2-a910-00c04f990f3b

  • 10f24e8e-0fa6-11d2-a910-00c04f990f3b

  • 1544f5e0-613c-11d1-93df-00c04fd7bd09

相应的 TCP/UDP 端口为动态端口。要允许,您可为每个编号使用以下语句:

ALG 根据这四个 UUID 将程序编号映射到动态协商的 TCP/UDP 端口中,并根据您配置的策略允许或拒绝该服务。

发布历史记录表
释放
描述
15.1X49-D90
在所有 SRX 系列设备上,在 Junos OS 15.1X49-D90 及更高版本中 Microsoft 远程过程调用 (MS-RPC) 的自定义应用程序通用唯一标识符 (UUID) 具有领先的零和 nil UUID (0000000-0000-0000-0000-0000000000)可能与所有 TCP 流量和参考策略相匹配,允许所有 TCP 流量而不是进入 MS-RPC ALG 检查。
15.1X49-D90
在所有 SRX 系列设备上,在 Junos OS 15.1X49-D90 及更高版本中 Microsoft 远程过程调用 (MS-RPC) 的自定义应用程序通用唯一标识符 (UUID) 具有领先的零和 nil UUID (0000000-0000-0000-0000-0000000000)可能与所有 TCP 流量和参考策略相匹配,允许所有 TCP 流量而不是进入 MS-RPC ALG 检查。
15.1X49-D100
从 Junos OS 15.1X49-D100 版和 Junos OS 17.3R1 版开始,具有领先零的自定义应用程序 UUID 与所有 TCP 流量和引用的策略不匹配,这些策略将进入 MS-RPC ALG 检查。此新应用程序不允许 nil UUID。
15.1X49-D100
从 Junos OS 15.1X49-D100 版和 Junos OS 17.3R1 版开始,具有领先零的自定义应用程序 UUID 与所有 TCP 流量和引用的策略不匹配,这些策略将进入 MS-RPC ALG 检查。此新应用程序不允许 nil UUID。
15.1X49-D10
从 Junos OS 15.1X49-D10 和 Junos OS 17.3R1 版开始,您可以定义 Sun RPC 映射入口老化值。
15.1X49-D10
从 Junos OS 15.1X49-D10 版和 Junos OS 17.3R1 版开始,您可以定义 MS-RPC 映射入口老化值。