RPC ALG
El ALG de llamada a procedimiento remoto (RPC) utiliza puertos bien conocidos TCP 111 y UDP 111 para la asignación de puertos, los cuales asignan y abren puertos dinámicamente para los servicios RPC. El ALG del mapa de puertos RPC realiza un seguimiento de las solicitudes de puerto y abre dinámicamente el firewall para estos puertos solicitados. El ALG RPC puede restringir aún más el protocolo RPC especificando los números de programa permitidos.
Descripción de las ALG RPC
Junos OS admite servicios básicos de puerta de enlace de capa de aplicación de llamada de procedimiento remoto (RPC ALG). RPC es un protocolo que permite que una aplicación que se ejecuta en un espacio de direcciones acceda a los recursos de las aplicaciones que se ejecutan en otro espacio de direcciones como si los recursos fueran locales al primer espacio de direcciones. La RPC ALG es responsable del procesamiento de paquetes RPC.
La RPC ALG de Junos OS admite los siguientes servicios y funciones:
Sun Microsystems RPC Computación de red abierta (ONC)
Entorno de computación distribuida (DCE) de Microsoft RPC
Negociación dinámica de puertos
Capacidad de permitir y negar servicios RPC específicos
Traducción de direcciones de red estática (TDR) y TDR de origen (sin traducción de puertos)
Aplicaciones RPC en políticas de seguridad
Utilice LA ALG RPC si necesita ejecutar aplicaciones basadas en RPC, como NFS o Microsoft Outlook. La funcionalidad ALG RPC está habilitada de forma predeterminada.
Descripción de las ALG de Sun RPC
La llamada de procedimiento remoto (Sun RPC) de Sun Microsystems, también conocida como llamada de procedimiento remoto de computación de red abierta (ONC RPC), ofrece una forma de que un programa que se ejecuta en un host llame a procedimientos en un programa que se ejecuta en otro host. Debido a la gran cantidad de servicios RPC y a la necesidad de difusión, la dirección de transporte de un servicio RPC se negocia dinámicamente según el número de programa y el número de versión del servicio. Se definen varios protocolos de enlace para asignar el número de programa RPC y el número de versión a una dirección de transporte.
Junos OS admite Sun RPC como un servicio predefinido y permite y niega el tráfico según una política de seguridad que configure. La puerta de enlace de capa de aplicación (ALG) ofrece la funcionalidad para que los dispositivos de Juniper Networks gestionen el mecanismo dinámico de negociación de direcciones de transporte de sun RPC y garanticen la aplicación de políticas de seguridad basadas en números de programa. Puede definir una política de seguridad para permitir o denegar todas las solicitudes RPC, o para permitir o denegar por número de programa específico. El ALG también admite el modo de ruta y el modo de traducción de direcciones de red (TDR) para solicitudes entrantes y salientes.
Cuando una aplicación o un cliente de PC llama a un servicio remoto, debe encontrar la dirección de transporte del servicio. En el caso de TCP/UDP, la dirección es un número de puerto. Un procedimiento típico para este caso es el siguiente:
El cliente envía el mensaje GETPORT al servicio RPCBIND en el equipo remoto. El mensaje GETPORT contiene el número de programa y el número de versión y procedimiento del servicio remoto al que intenta llamar.
El servicio RPCBIND responde con un número de puerto.
El cliente llama al servicio remoto mediante el número de puerto devuelto.
El servicio remoto responde al cliente.
Un cliente también puede usar el mensaje CALLIT para llamar al servicio remoto directamente, sin determinar el número de puerto del servicio. En este caso, el procedimiento es el siguiente:
El cliente envía un mensaje CALLIT al servicio RPCBIND en el equipo remoto. El mensaje CALLIT contiene el número de programa y el número de versión y procedimiento del servicio remoto al que intenta llamar.
RPCBIND llama al servicio para el cliente.
RCPBIND responde al cliente si la llamada se ha realizado correctamente. La respuesta contiene el resultado de la llamada y el número de puerto del servicio.
Sun RPC ALG asigna dinámicamente nuevas entradas de asignación en lugar de usar un tamaño predeterminado (512 entradas). También ofrece una entrada de asignación RPC flexible basada en el tiempo que elimina la entrada de asignación (limpieza automática) sin afectar las sesiones RPC activas asociadas, incluida la sesión de control y la sesión de datos.
A partir de Junos OS 15.1X49-D10 y Junos OS versión 17.3R1, puede definir el valor de antigüedad de entrada de la asignación SUN RPC. Utilice el set security alg sunrpc map-entry-timeout value
comando. El valor de antigüedad varía de 1 hora a 72 horas, y el valor predeterminado es de 32 horas. Si el servicio SUN RPC ALG no activa la negociación de control incluso después de 72 horas, el valor máximo de entrada de asignación DE ALG RPC agota el tiempo de espera y la nueva conexión de datos al servicio falla.
Habilitación de ALG RPC de Sun
Sun RPC ALG está habilitado de forma predeterminada y no requiere ninguna configuración.
Habilitación de ALG SUN RPC (procedimiento de CLI)
Para deshabilitar sun RPC ALG, escriba el siguiente comando:
user@host# set security alg sunrpc disable
Para volver a habilitar sun RPC ALG, escriba el siguiente comando:
user@host# delete security alg sunrpc
Personalización de aplicaciones SUN RPC (procedimiento de CLI)
Todas las aplicaciones Sun RPC se pueden personalizar mediante un conjunto de aplicaciones predefinido.
Por ejemplo, se puede personalizar una aplicación para abrir solo la sesión de control y no permitir sesiones de datos:
application-set junos-sun-rpc { application junos-sun-rpc-tcp; application junos-sun-rpc-udp; }
En el ejemplo siguiente, el conjunto de aplicaciones predefinido solo permite sesiones de datos. No funcionará sin la sesión de control:
application-set junos-sun-rpc-portmap { application junos-sun-rpc-portmap-tcp; application junos-sun-rpc-portmap-udp; }
Para personalizar todas las aplicaciones Sun RPC con conjuntos de aplicaciones predefinidos, utilice ambos conjuntos de aplicaciones en la política:
application-set [junos-sun-rpc junos-sun-rpc-portmap]
Las aplicaciones MS RPC se personalizan de la misma manera que las aplicaciones Sun RPC.
Descripción de los servicios RPC de Sun
Sun RPC, también conocido como llamada de procedimiento remoto de computación de red abierta (ONC RPC), proporciona una forma de que un programa que se ejecuta en un host llame a procedimientos en un programa que se ejecuta en otro host. Los servicios SUN RPC se definen por un identificador de programa. El identificador del programa es independiente de cualquier dirección de transporte y la mayoría de las sesiones SUN RPC se inician a través del puerto TCP o UDP 111. Cada host vincula el servicio RPC necesario a un puerto TCP o UDP dinámico que se negocia a través del canal de control del puerto 111, lo que permite que el cliente se conecte al puerto TCP o UDP 111.
Los servicios predefinidos de llamada a procedimiento remoto (Sun RPC) de Sun Microsystems incluyen:
junos-sun-rpc-tcp
junos-sun-rpc-udp
Sun RPC ALG se puede aplicar con los siguientes métodos:
Aplicación predeterminada de ALG: utilice una de las siguientes aplicaciones predefinidas para conexiones de control y datos en su política:
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
Aplicación de control predeterminada: utilice el control predefinido mediante
junos-sun-rpc
:Cree una aplicación para datos (
USER_DEFINED_DATA
). Puede realizar un conjunto de sus propios datos (por ejemplo,my_rpc_application_set
) y usarlos en la política.Conjunto de aplicaciones predeterminado de ALG: utilice el conjunto de aplicaciones predefinido para el control y la aplicación de datos personalizada en la política:
junos-sun-rpc
(para sesiones de control)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
(para sesiones de datos)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
Control personalizado y aplicación de datos personalizados: utilice una aplicación personalizada:
Cree una aplicación para el control (
USER_DEFINED_CONTROL
) y los datos (USER_DEFINED_DATA
).En la política, use el conjunto de aplicaciones definidas por el usuario para una aplicación de control y datos personalizados:
USER_DEFINED_CONTROL
USER_DEFINED_DATA
La tabla 1 enumera los servicios RPC de Sun predefinidos, un identificador de programa asociado a cada servicio y una descripción de cada servicio.
Servicio |
ID del programa |
Descripción |
---|---|---|
PORTMAP |
100000 |
El protocolo Sun RPC Portmapper es un servicio basado en puertos TCP o UDP que incluye el puerto TCP o UDP 111. |
Nfs |
100003 |
Sistema de archivos de red Sun RPC. |
MONTE |
100005 |
Proceso de montaje SUN RPC. |
YPBIND |
100007 |
Servicio de enlace de página amarillo Sun RPC. |
ESTADO |
100024 |
Estado de Sun RPC. |
Descripción de las ALG de Microsoft RPC
La llamada de procedimiento remoto de Microsoft (MS-RPC) es la implementación de Microsoft del RPC del entorno de computación distribuida (DCE). Al igual que sun RPC, MS-RPC proporciona una forma de que un programa que se ejecuta en un host llame a procedimientos en un programa que se ejecuta en otro host. Debido a la gran cantidad de servicios RPC y a la necesidad de difusión, la dirección de transporte de un servicio RPC se negocia dinámicamente según el identificador único universal (UUID) del programa de servicio. El UUID específico se asigna a una dirección de transporte.
Los dispositivos Junos OS que ejecutan Junos OS admiten MS-RPC como un servicio predefinido y permiten y niegan el tráfico según una política que configure. La puerta de enlace de capa de aplicación (ALG) proporciona la funcionalidad para que los dispositivos de Juniper Networks gestionen el mecanismo dinámico de negociación de direcciones de transporte de MS-RPC y garanticen la aplicación de políticas de seguridad basadas en UUID. Puede definir una política de seguridad para permitir o denegar todas las solicitudes RPC, o para permitir o denegar por número UUID específico. El ALG también admite el modo de ruta y el modo de traducción de direcciones de red (TDR) para solicitudes entrantes y salientes.
Cuando tanto el cliente MS-RPC como el servidor MS-RPC tienen capacidad de 64 bits (como MS Exchange 2008), negocian usar la sintaxis de transferencia NDR64 durante la comunicación de red. cuando se utiliza NDR64, los parámetros de interfaz se deben codificar según la sintaxis NDR64, ya que el formato de paquete para NDR64 es diferente del formato de paquete para NDR20 (versión de 32 bits).
En MS-RPC, hay una interfaz de activación remota del protocolo remoto DCOM llamado ISystemActivator (también conocido como IRemoteSCMActivator). Lo utilizan la línea de comandos de instrumentación de administración de Windows (WMIC), servicios de Internet Information Services (IIS) y muchas otras aplicaciones que se utilizan ampliamente.
El ALG MS-RPC asigna dinámicamente nuevas entradas de asignación en lugar de usar un tamaño predeterminado (512 entradas). También ofrece una entrada de asignación RPC flexible basada en el tiempo que elimina la entrada de asignación (limpieza automática) sin afectar las sesiones RPC activas asociadas, incluida la sesión de control y la sesión de datos.
A partir de Junos OS versión 15.1X49-D10 y Junos OS versión 17.3R1, puede definir el valor de antigüedad de entrada de asignación MS-RPC. Utilice el set security alg msrpc map-entry-timeout value
comando. El valor de antigüedad varía de 1 hora a 72 horas, y el valor predeterminado es de 32 horas. Si el servicio ALG MS-RPC no activa la negociación de control incluso después de 72 horas, el valor máximo de entrada de asignación ALG MS-RPC agota el tiempo de espera y la nueva conexión de datos al servicio falla.
Habilitación de alg de Microsoft RPC
El ALG MS-RPC está habilitado de forma predeterminada y no requiere ninguna configuración.
Habilitación de LAS ALG de Microsoft RPC (procedimiento de CLI)
Para deshabilitar microsoft RPC ALG, escriba el siguiente comando:
user@host# set security alg msrpc disable
Para volver a activar microsoft RPC ALG, escriba el siguiente comando:
user@host# delete security alg msrpc
Configuración del ALG de Microsoft RPC
Puede configurar microsoft RPC ALG mediante los siguientes tres métodos:
- Configuración de la ALG MS-RPC con una aplicación de Microsoft predefinida
- Configuración del ALG MS-RPC con un UUID comodín
- Configuración de la ALG MS-RPC con un UUID específico
Configuración de la ALG MS-RPC con una aplicación de Microsoft predefinida
Hay varias aplicaciones MS predefinidas. Para ver las aplicaciones predefinidas de Microsoft desde la CLI, escriba el show configuration groups junos-defaults
comando.
user@host> show security policies from-zone trust to-zone untrust { policy p1 { match { source-address any; destination-address any; application junos-ms-rpc-msexchange; } then { permit; } } }
Después de confirmar la configuración, desde la CLI, ingrese el show security alg msrpc object-id-map
comando para ver el resultado.
user@host> show security alg msrpc object-id-map UUID OID 1544f5e0-613c-11d1-93df-00c04fd7bd09 0x80000001 a4f1db00-ca47-1067-b31f-00dd010662da 0x80000002 f5cc5a18-4264-101a-8c59-08002b2f8426 0x80000003
El resultado muestra que el UUID se ha aplicado a la política.
Configuración del ALG MS-RPC con un UUID comodín
Para permitir la configuración de cualquier aplicación RPC de MS, agregue la application junos-ms-rpc-any
instrucción a la configuración permit.
user@host> show security policies from-zone trust to-zone untrust { policy p1 { match { source-address any; destination-address any; application junos-ms-rpc-any; } then { permit; } } }
Después de confirmar la configuración, desde la CLI, ingrese el show security alg msrpc object-id-map
comando para ver el resultado.
user@host> show security alg msrpc object-id-map UUID OID ffffffff-ffff-ffff-ffff-ffffffffffff 0x80000004
Configuración de la ALG MS-RPC con un UUID específico
Para las aplicaciones que no se han predefinido, debe configurar manualmente un UUID específico. Por ejemplo, para permitir una aplicación NETLOGON que no está predefinida, agregue la application msrpc-netlogon
instrucción a la configuración Permit.
En Junos OS versión 15.1X49-D90 y versiones anteriores, en todos los dispositivos de la serie SRX, el identificador único universal de aplicación personalizado (UUID) de la llamada de procedimiento remoto de Microsoft (MS-RPC) con ceros iniciales y el UUID nil (000000000-0000-0000-0000-0000-0000-0000) puede coincidir con todo el tráfico TCP y las políticas a las que se hace referencia, lo que permite que todo el tráfico TCP en lugar de entrar en la comprobación ALG MS-RPC.
A partir de Junos OS versión 15.1X49-D100 y Junos OS versión 17.3R1, la aplicación personalizada UUID con ceros iniciales no coincide con todo el tráfico TCP y las políticas referenciadas, que entrarán en la comprobación ALG MS-RPC. Esta nueva aplicación no permite el UUID nil.
user@host> show applications application msrpc-netlogon { term t1 protocol tcp uuid 12345678-1234-abcd-ef00-01234567cffb; term t2 protocol udp uuid 12345678-1234-abcd-ef00-01234567cffb; term t3 protocol tcp uuid 12345778-1234-abcd-ef00-0123456789ab; } user@host> show security policies from-zone trust to-zone untrust { match { source-address any; destination-address any; application msrpc-netlogon; } then { permit; } } }
Después de confirmar la configuración, desde la CLI, escriba el show security alg msrpc object-id-map
comando para comprobar el identificador único universal de Microsoft para la tabla de asignación de ID de objeto (UUID a OID). Microsoft RPC ALG monitorea paquetes en el puerto TCP 135.
user@host> show security alg msrpc object-id-map UUID OID 12345778-1234-abcd-ef00-0123456789ab 0x80000006 12345678-1234-abcd-ef00-01234567cffb 0x80000005 be617c0-31a5-11cf-a7d8-00805f48a135 0x80000020 e3514235-4b06-11d1-ab04-00c04fc2dcd2 0x80000002 67df7c70-0f04-11ce-b13f-00aa003bac6c 0x80000014
El show security alg msrpc object-id-map
comando de CLI tiene una opción de nodo de clúster de chasis para permitir que el resultado se limite a un nodo determinado o para consultar todo el clúster. Las show security alg msrpc object-id-map node
opciones de comando de CLI son <node-id | all | local | primary>
.
Descripción de los servicios RPC de Microsoft
MS-RPC es la implementación de Microsoft del RPC del entorno de computación distribuida (DCE). Al igual que sun RPC, MS-RPC proporciona una forma de que un programa que se ejecuta en un host llame a procedimientos en un programa que se ejecuta en otro host. El MS-RPC se negocia dinámicamente según el identificador único universal (UUID) del programa de servicio. El UUID específico se asigna a una dirección de transporte.
En Junos OS versión 15.1X49-D90 y versiones anteriores, en todos los dispositivos de la serie SRX, el identificador único universal de aplicación personalizado (UUID) de la llamada de procedimiento remoto de Microsoft (MS-RPC) con ceros iniciales y el UUID nil (000000000-0000-0000-0000-0000-0000-0000) puede coincidir con todo el tráfico TCP y las políticas a las que se hace referencia, lo que permite que todo el tráfico TCP en lugar de entrar en la comprobación ALG MS-RPC.
A partir de Junos OS versión 15.1X49-D100 y Junos OS versión 17.3R1, la aplicación personalizada UUID con ceros iniciales no coincide con todo el tráfico TCP y las políticas referenciadas, que entrarán en la comprobación ALG MS-RPC. Esta nueva aplicación no permite el UUID nil.
Los servicios predefinidos de llamada de procedimiento remoto de Microsoft (MS-RPC) incluyen:
junos-ms-rpc-epm
junos-ms-rpc-tcp
junos-ms-rpc-udp
Los valores predeterminados de la aplicación MS-RPC incluyen:
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
Los valores predeterminados del conjunto de aplicaciones MS-RPC incluyen:
junos-ms-rpc
junos-ms-rpc-any
junos-ms-rpc-iis-com
junos-ms-rpc-msexchange
junos-ms-rpc-wmic
La tabla 2 enumera los servicios MS-RPC predefinidos, los valores DE UUID asociados con cada servicio y una descripción de cada servicio.
Servicio |
UUID |
Descripción |
---|---|---|
Epm |
e1af8308-5d1f-11c9-91a4-08002b14a0fa |
El protocolo MS-RPC Endpoint Mapper (EPM) es un servicio basado en puerto TCP/UDP que incluye el puerto TCP/UDP 135. |
BASE DE DATOS DE INTERCAMBIO |
1a190310-bb9c-11cd-90f8-00a00466520 |
Servicio de base de datos de Microsoft Exchange. |
EXCHANGE-DIRECTORY |
f5cc5a18-4264-101a-8c59-08002b2f8426 f5cc5a7c-4264-101a-8c59-08002b2f8426 f5cc59b4-4264-101a-8c59-08002b2f8426 |
Servicio de directorio de Microsoft Exchange. |
WIN-DNS |
50abc2a4-574d-40b3-9d66-ee4fd5fba076 |
Servidor DNS de Microsoft Windows. |
GANA |
5f52c28-7f9f-101a-b52b-08002b2efabe 811109bf-a4e1-11d1-ab54-00a0c91e9b45 |
Servicio WINS de Microsoft. |
WMIC-Webm-Level1Login |
f309ad18-d86a-11d0-a075-00c04fb68820 |
Este servicio permite a los usuarios conectarse a la interfaz de servicios de administración en un espacio de nombres determinado. |
Personalización de aplicaciones MICROSOFT RPC (procedimiento de CLI)
Las aplicaciones MS-RPC se personalizan de la misma manera que las aplicaciones SUN RPC.
Los servicios MS-RPC en políticas de seguridad son:
0e4a0156-dd5d-11d2-8c2f-00c04fb6bcde
1453c42c-0fa6-11d2-a910-00c04f990f3b
10f24e8e-0fa6-11d2-a910-00c04f990f3b
1544f5e0-613c-11d1-93df-00c04fd7bd09
Los puertos TCP/UDP correspondientes son dinámicos. Para permitirlos, utilice la siguiente instrucción para cada número:
set applications application-name term term-name uuid hex-number
El ALG asigna los números de programa a puertos TCP/UDP negociados dinámicamente según estos cuatro UUID y permite o niega el servicio según una política que configure.