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 AALG

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 AALG

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

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

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

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

  2. RPCBIND 服务回复端口号。

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

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

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

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

  2. RPCBIND 为客户端调用服务。

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

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

从Junos OS 15.1X49-D10 Junos OS版本17.3R1,可定义 Sun RPC 映射条目 ageout 值。使用 set security alg sunrpc map-entry-timeout value 命令。长距离值的范围为 1 小时到 72 小时,默认值为 32 小时。如果 Sun RPC ALG 服务即使在 72 小时之后未触发控制协商,则最大 RPC ALG 映射条目值会过长,并且与服务的新数据连接失败。

启用 Sun RPC AALG

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

启用 Sun RPC AALG(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

描述

端口MAP

100000

Sun RPC 端口映射协议是基于 TCP 或 UDP 端口的服务,包括 TCP 或 UDP 端口 111。

NFS

100003

Sun RPC 网络文件系统。

安装

100005

Sun RPC 安装过程。

YPBIND

100007

Sun RPC 黄色页面绑定服务。

地位

100024

Sun RPC 状态。

了解 Microsoft RPC AALG

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请求的路由模式( NAT)模式。

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

在 MS-RPC 中,有一个称为 ISystemActivator(也称为 IRemoteSCMActivator)的 DCOM 远程协议远程激活接口。它由 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 AALG

默认情况下,MS-RPC ALG 已启用,不需要配置。

启用 Microsoft RPC AALG(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 添加至 Permit 配置。

在您提交配置后(从 CLI输入 show security alg msrpc object-id-map 命令可查看输出。

使用特定 UUID 配置 MS-RPC ALG

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

在Junos OS SRX 系列15.1X49-D90和早期版本中, Microsoft 远程过程调用 (MS-RPC) 的自定义应用程序通用唯一标识符 (UUID),具有领先的零和 nil UUID (0000000-0000-0000-0000-00000000) 可能匹配所有 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 对象 ID (UUID 到 OID) 映射表的 Microsoft 通用唯一标识符。Microsoft RPC ALG 监控 TCP 端口 135 上的数据包。

注意:

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

了解 Microsoft RPC 服务

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

在Junos OS SRX 系列15.1X49-D90和早期版本中, Microsoft 远程过程调用 (MS-RPC) 的自定义应用程序通用唯一标识符 (UUID),具有领先的零和 nil UUID (0000000-0000-0000-0000-00000000) 可能匹配所有 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 数据库服务。

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-Level1Login

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
在Junos OS SRX 系列15.1X49-D90和早期版本中, Microsoft 远程过程调用 (MS-RPC) 的自定义应用程序通用唯一标识符 (UUID),具有领先的零和 nil UUID (0000000-0000-0000-0000-00000000) 可能匹配所有 TCP 流量和参考策略,以允许所有 TCP 流量,而不是输入 MS-RPC ALG 检查。
15.1X49-D90
在Junos OS SRX 系列15.1X49-D90和早期版本中, Microsoft 远程过程调用 (MS-RPC) 的自定义应用程序通用唯一标识符 (UUID),具有领先的零和 nil UUID (0000000-0000-0000-0000-00000000) 可能匹配所有 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 映射条目 ageout 值。
15.1X49-D10
从Junos OS版本15.1X49-D10和Junos OS版本17.3R1,可定义 MS-RPC 映射条目年龄线值。