RPC ALG
L’ALG RPC (Remote Procedure Call) utilise des ports connus TCP 111 et UDP 111 pour le mappage de ports, qui affecte et ouvre dynamiquement des ports pour les services RPC. Le plan de port RPC ALG surveille les demandes de port et ouvre le pare-feu de manière dynamique pour ces ports demandés. L’ALG RPC peut restreindre davantage le protocole RPC en spécifiant les numéros de programme autorisés.
Comprendre les ALG RPC
Junos OS prend en charge les services de base De procédure à distance Appel de passerelle de couche applicative (RPC ALG). RPC est un protocole qui permet à une application exécutée dans un espace d’adressage d’accéder aux ressources des applications exécutées dans un autre espace d’adressage comme si les ressources étaient locales dans le premier espace d’adressage. L’ALG RPC est responsable du traitement des paquets RPC.
L’ALG RPC dans Junos OS prend en charge les services et fonctionnalités suivants :
Sun Microsystems RPC Open Network Computing (ONC)
Environnement de calcul distribué (DCE) RPC Microsoft
Négociation dynamique des ports
Possibilité d’autoriser et de refuser des services RPC spécifiques
Traduction statique des adresses réseau (NAT) et NAT source (sans traduction de port)
Applications RPC dans les stratégies de sécurité
Utilisez l’ALG RPC si vous devez exécuter des applications basées sur RPC, telles que NFS ou Microsoft Outlook. La fonctionnalité ALG RPC est activée par défaut.
Comprendre les ALG RPC Sun
Sun Microsystems Remote Procedure Call (Sun RPC), également connu sous le nom d’Open Network Computing Remote Procedure Call (ONC RPC), permet à un programme exécuté sur un hôte d’appeler des procédures d’un programme exécuté sur un autre hôte. En raison du grand nombre de services RPC et du besoin de diffusion, l'adresse de transport d'un service RPC est négociée dynamiquement en fonction du numéro de programme et de la version du service. Plusieurs protocoles de liaison sont définis pour mapper le numéro du programme RPC et le numéro de version à une adresse de transport.
Junos OS prend en charge Sun RPC en tant que service prédéfini et autorise et refuse le trafic en fonction d’une stratégie de sécurité que vous configurez. La passerelle de couche applicative (ALG) permet aux équipements Juniper Networks de gérer le mécanisme de négociation d’adresses de transport dynamique du système Sun RPC et d’assurer l’application des stratégies de sécurité en fonction du numéro du programme. Vous pouvez définir une stratégie de sécurité pour autoriser ou refuser toutes les demandes RPC, ou pour autoriser ou refuser par numéro de programme spécifique. L’ALG prend également en charge le mode de routage et le mode NAT (Network Address Translation) pour les requêtes entrantes et sortantes.
Lorsqu’une application ou un client d’ordinateur appelle un service distant, il doit trouver l’adresse de transport du service. Dans le cas de TCP/UDP, l’adresse est un numéro de port. Une procédure typique dans ce cas est la suivante :
Le client envoie le message GETPORT au service RPCBIND sur la machine distante. Le message GETPORT contient le numéro de programme, la version et le numéro de procédure du service distant qu’il tente d’appeler.
Le service RPCBIND répond à l’aide d’un numéro de port.
Le client appelle le service distant à l’aide du numéro de port renvoyé.
Le service à distance répond au client.
Un client peut également utiliser le message CALLIT pour appeler directement le service distant, sans déterminer le numéro de port du service. Dans ce cas, la procédure est la suivante :
Le client envoie un message CALLIT au service RPCBIND sur l’ordinateur distant. Le message CALLIT contient le numéro de programme, la version et le numéro de procédure du service distant qu’il tente d’appeler.
RPCBIND appelle le service pour le client.
RCPBIND répond au client si l’appel a réussi. La réponse contient le résultat de l'appel et le numéro de port du service.
L’ALG Sun RPC alloue de façon dynamique les nouvelles entrées de mappage au lieu d’utiliser une taille par défaut (512 entrées). Il offre également une entrée de mappage RPC flexible basée sur l’heure qui supprime l’entrée de mappage (auto-clean) sans affecter les sessions RPC actives associées, y compris la session de contrôle de session et la session de données.
À partir de Junos OS 15.1X49-D10 et junos OS version 17.3R1, vous pouvez définir la valeur de l’âge d’entrée du mappage RPC sun. Utilisez la set security alg sunrpc map-entry-timeout value
commande. La valeur limite d’âge varie entre 1 heure et 72 heures, et la valeur par défaut est 32 heures. Si le service ALG RPC Sun ne déclenche pas la négociation de contrôle même au bout de 72 heures, le maximum de RPC ALG mappe la valeur d’entrée et la nouvelle connexion de données au service échoue.
Activation des ALG RPC Sun
L’ALG RPC Sun est activé par défaut et ne nécessite aucune configuration.
Activation des ALG RPC Sun (procédure CLI)
Pour désactiver l’ALG RPC Sun, saisissez la commande suivante :
user@host# set security alg sunrpc disable
Pour réactiver l’ALG Sun RPC, saisissez la commande suivante :
user@host# delete security alg sunrpc
Personnalisation des applications RPC Sun (procédure CLI)
Toutes les applications Sun RPC peuvent être personnalisées à l’aide d’un ensemble d’applications prédéfinis.
Par exemple, une application peut être personnalisée pour ouvrir uniquement la session de contrôle et ne permettre aucune session de données :
application-set junos-sun-rpc { application junos-sun-rpc-tcp; application junos-sun-rpc-udp; }
Dans l’exemple suivant, l’ensemble d’applications prédéfinies autorise uniquement les sessions de données. Il ne fonctionnera pas sans la session de contrôle :
application-set junos-sun-rpc-portmap { application junos-sun-rpc-portmap-tcp; application junos-sun-rpc-portmap-udp; }
Pour personnaliser toutes les applications Sun RPC à l’aide de jeux d’applications prédéfinis, utilisez les deux ensembles d’applications dans la stratégie :
application-set [junos-sun-rpc junos-sun-rpc-portmap]
Les applications MS RPC sont personnalisées de la même manière que les applications Sun RPC.
Comprendre les services RPC sun
Sun RPC, également connu sous le nom d’Open Network Computing Remote Procedure Call (ONC RPC), permet à un programme s’exécutant sur un hôte d’appeler les procédures d’un programme exécuté sur un autre hôte. Les services RPC Sun sont définis par un identifiant de programme. L’identifiant du programme est indépendant de toute adresse de transport et la plupart des sessions Sun RPC sont lancées via le port TCP ou UDP 111. Chaque hôte relie le service RPC requis à un port TCP ou UDP dynamique négocié sur le canal de contrôle du port 111, ce qui permet au client de se connecter au port TCP ou UDP 111.
Les services Sun RPC (Remote Procedure Call) prédéfinis de Sun Microsystems incluent :
junos-sun-rpc-tcp
junos-sun-rpc-udp
L’ALG RPC Sun peut être appliqué à l’aide des méthodes suivantes :
Application ALG par défaut : utilisez l’une des applications prédéfinies suivantes pour les connexions de données et de contrôle dans votre stratégie :
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
Application de contrôle par défaut : utilisez le contrôle prédéfini via
junos-sun-rpc
:Créer une application pour les données (
USER_DEFINED_DATA
). Vous pouvez créer un ensemble de vos propres données (par exemple)my_rpc_application_set
et les utiliser dans la stratégie.Jeu d’applications par défaut ALG : utilisez l’ensemble d’applications prédéfinies pour le contrôle et l’application de données personnalisée dans la stratégie :
junos-sun-rpc
(pour les sessions de contrôle)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
(pour les sessions de données)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
Application de données personnalisée et de contrôle personnalisé : utilisez une application personnalisée :
Créez une application pour le contrôle (
USER_DEFINED_CONTROL
) et les données (USER_DEFINED_DATA
).Dans la stratégie, utilisez l’ensemble d’applications définies par l’utilisateur pour une application de données de contrôle et personnalisée :
USER_DEFINED_CONTROL
USER_DEFINED_DATA
Le tableau 1 répertorie les services Sun RPC prédéfinis, un identifiant de programme associé à chaque service et une description de chaque service.
Service |
ID du programme |
Description |
---|---|---|
PORTMAP |
100000 |
Le protocole Sun RPC Portmapper est un service basé sur un port TCP ou UDP qui inclut le port TCP ou UDP 111. |
Nfs |
100003 |
Système de fichiers réseau Sun RPC. |
MONTER |
100005 |
Processus de montage SUN RPC. |
YPBIND |
100007 |
Service de liaison de page jaune Sun RPC. |
STATUT |
100024 |
État RPC Sun. |
Comprendre les ALG RPC Microsoft
Microsoft Remote Procedure Call (MS-RPC) est l’implémentation Microsoft du RPC d’environnement de calcul distribué (DCE). À l’instar du RPC Sun, MS-RPC permet à un programme exécuté sur un hôte d’appeler les procédures d’un programme exécuté sur un autre hôte. En raison du grand nombre de services RPC et du besoin de diffusion, l'adresse de transport d'un service RPC est négociée dynamiquement en fonction de l'identifiant universel unique (UUID) du programme de service. L’UUID spécifique est mappé à une adresse de transport.
Les équipements Junos OS exécutant Junos OS prennent en charge MS-RPC en tant que service prédéfini et autorisent et refusent le trafic en fonction d’une stratégie que vous configurez. La passerelle de couche applicative (ALG) permet aux équipements Juniper Networks de gérer le mécanisme de négociation d’adresses de transport dynamique du MS-RPC et de garantir l’application des stratégies de sécurité UUID. Vous pouvez définir une stratégie de sécurité pour autoriser ou refuser toutes les demandes RPC, ou pour autoriser ou refuser par numéro d’UUID spécifique. L’ALG prend également en charge le mode de routage et le mode NAT (Network Address Translation) pour les requêtes entrantes et sortantes.
Lorsque le client MS-RPC et le serveur MS-RPC sont capables de 64 bits (comme MS Exchange 2008), ils négocient l’utilisation de la syntaxe de transfert NDR64 pendant la communication réseau. lorsque vous utilisez le NDR64, les paramètres de l’interface doivent être encodés en fonction de la syntaxe NDR64, car le format de paquet pour NDR64 est différent du format de paquet pour NDR20 (version 32 bits).
Dans MS-RPC, il existe une interface d’activation à distance du protocole distant DCOM appelée ISystemActivator (également connu sous le nom d’IRemoteSCMActivator). Il est utilisé par le WMIC (Windows Management Instrumentation Command-line), INTERNET Information Services (FAI) et de nombreuses autres applications très utilisées.
L’ALG MS-RPC alloue de façon dynamique les nouvelles entrées de mappage au lieu d’utiliser une taille par défaut (512 entrées). Il offre également une entrée de mappage RPC flexible basée sur l’heure qui supprime l’entrée de mappage (auto-clean) sans affecter les sessions RPC actives associées, y compris la session de contrôle de session et la session de données.
À partir de Junos OS Version 15.1X49-D10 et Junos OS Version 17.3R1, vous pouvez définir la valeur d’entrée et d’expiration de mappage MS-RPC. Utilisez la set security alg msrpc map-entry-timeout value
commande. La valeur limite d’âge varie entre 1 heure et 72 heures, et la valeur par défaut est 32 heures. Si le service ALG MS-RPC ne déclenche pas la négociation de contrôle même au bout de 72 heures, le temps maximal de mappage ms-RPC ALG pour l’entrée et la nouvelle connexion des données au service échoue.
Activation des ALG RPC Microsoft
L’ALG MS-RPC est activé par défaut et ne nécessite aucune configuration.
Activation des ALG RPC Microsoft (procédure CLI)
Pour désactiver microsoft RPC ALG, saisissez la commande suivante :
user@host# set security alg msrpc disable
Pour réactiver l’ALG MICROSOFT RPC, saisissez la commande suivante :
user@host# delete security alg msrpc
Configuration de Microsoft RPC ALG
Vous pouvez configurer microsoft RPC ALG à l’aide des trois méthodes suivantes :
- Configuration de l’ALG MS-RPC avec une application Microsoft prédéfinie
- Configuration de l’ALG MS-RPC avec un UUID Générique
- Configuration de l’ALG MS-RPC avec un UUID spécifique
Configuration de l’ALG MS-RPC avec une application Microsoft prédéfinie
Il existe plusieurs applications de MS prédéfinies. Pour afficher les applications Microsoft prédéfinies à partir de l’interface de ligne de commande, saisissez la show configuration groups junos-defaults
commande.
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; } } }
Une fois la configuration valide, saisissez la show security alg msrpc object-id-map
commande dans l’interface de ligne de commande pour afficher la sortie.
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
Le résultat montre que l’UUID a été appliqué à la stratégie.
Configuration de l’ALG MS-RPC avec un UUID Générique
Pour autoriser la configuration pour n’importe quelle application MS RPC, ajoutez l’instruction application junos-ms-rpc-any
à la configuration 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; } } }
Une fois la configuration valide, saisissez la show security alg msrpc object-id-map
commande dans l’interface de ligne de commande pour afficher la sortie.
user@host> show security alg msrpc object-id-map UUID OID ffffffff-ffff-ffff-ffff-ffffffffffff 0x80000004
Configuration de l’ALG MS-RPC avec un UUID spécifique
Pour les applications qui n’ont pas été prédéfinies, vous devez configurer manuellement un UUID spécifique. Par exemple, pour autoriser une application NETLOGON qui n’a pas été prédéfinie, vous ajoutez l’instruction application msrpc-netlogon
à la configuration Permit.
Dans Junos OS version 15.1X49-D90 et antérieure, sur tous les équipements SRX Series, l’UUID (Universal Unique Identifier) d’application personnalisé d’appel de procédure distante Microsoft (MS-RPC) avec zéros principaux et l’UUID néant (00000000-0000-0000-0000000000) peut correspondre à tout le trafic TCP et aux stratégies référencées autorisant tout le trafic TCP au lieu de passer le contrôle ALG MS-RPC.
À partir de Junos OS Version 15.1X49-D100 et Junos OS Version 17.3R1, l’UUID d’application personnalisé avec zéros principaux ne correspond pas à l’ensemble du trafic TCP et aux stratégies référencées, qui entrent dans la vérification ALG MS-RPC. Cette nouvelle application ne permet pas l’UUID néant.
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; } } }
Une fois la configuration valider, dans l’interface de ligne de commande, saisissez la show security alg msrpc object-id-map
commande de vérification de l’identifiant universel unique Microsoft vers la table de mappage UUID vers OID (Object ID-to-OID). Microsoft RPC ALG surveille les paquets sur le port 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
La show security alg msrpc object-id-map
commande CLI dispose d’une option de nœud de cluster de châssis permettant de limiter la sortie à un nœud particulier ou d’interroger l’ensemble du cluster. Les show security alg msrpc object-id-map node
options de commande CLI sont : <node-id | all | local | primary>
.
Comprendre les services RPC Microsoft
MS-RPC est l’implémentation Microsoft du RPC d’environnement de calcul distribué (DCE). À l’instar du RPC Sun, le MS-RPC permet à un programme exécuté sur un hôte d’appeler les procédures d’un programme exécuté sur un autre hôte. Le MS-RPC est négocié de manière dynamique en fonction de l'identifiant universel unique (UUID) du programme de services. L’UUID spécifique est mappé à une adresse de transport.
Dans Junos OS version 15.1X49-D90 et antérieure, sur tous les équipements SRX Series, l’UUID (Universal Unique Identifier) d’application personnalisé d’appel de procédure distante Microsoft (MS-RPC) avec zéros principaux et l’UUID néant (00000000-0000-0000-0000000000) peut correspondre à tout le trafic TCP et aux stratégies référencées autorisant tout le trafic TCP au lieu de passer le contrôle ALG MS-RPC.
À partir de Junos OS Version 15.1X49-D100 et Junos OS Version 17.3R1, l’UUID d’application personnalisé avec zéros principaux ne correspond pas à l’ensemble du trafic TCP et aux stratégies référencées, qui entrent dans la vérification ALG MS-RPC. Cette nouvelle application ne permet pas l’UUID néant.
Les services MS-RPC (Procédure à distance prédéfinie) incluent les services suivants :
junos-ms-rpc-epm
junos-ms-rpc-tcp
junos-ms-rpc-udp
Par défaut, les applications MS-RPC sont les suivantes :
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
Les paramètres par défaut définis par MS-RPC sont les suivants :
junos-ms-rpc
junos-ms-rpc-any
junos-ms-rpc-iis-com
junos-ms-rpc-msexchange
junos-ms-rpc-wmic
Le tableau 2 répertorie les services MS-RPC prédéfinis, les valeurs UUID associées à chaque service et une description de chaque service.
Service |
UUID |
Description |
---|---|---|
E.m.p |
e1af8308-5d1f-11c9-91a4-08002b14a0fa |
Le protocole MS-RPC Endpoint Mapper (EPM) est un service basé sur des ports TCP/UDP qui inclut le port TCP/UDP 135. |
BASE DE DONNÉES EXCHANGE |
1a190310-bb9c-11cd-90f8-00aa00466520 |
Service de base de données Microsoft Exchange. |
EXCHANGE-DIRECTORY |
f5cc5a18-4264-101a-8c59-08002b2f8426 f5cc5a7c-4264-101a-8c59-08002b2f8426 f5cc59b4-4264-101a-8c59-08002b2f8426 |
Service d’annuaire Microsoft Exchange. |
WIN-DNS |
50 abc2a4-574d-40b3-9d66-ee4fd5fba076 |
Serveur DNS Microsoft Windows. |
GAGNE |
5f52c28-7f9f-101a-b52b-08002b2epace 811109bf-a4e1-11d1-ab54-00a0c91e9b45 |
Service WINS de Microsoft. |
WMIC-Webm-Level1Login |
f309ad18-d86a-11d0-a075-00c04fb68820 |
Ce service permet aux utilisateurs de se connecter à l’interface des services de gestion dans un espace de noms particulier. |
Personnalisation des applications RPC Microsoft (procédure CLI)
Les applications MS-RPC sont personnalisées de la même manière que les applications RPC SUN.
Les services MS-RPC dans les stratégies de sécurité sont les suivants :
0e4a0156-dd5d-11d2-8c2f-00c04fb6bcde
1453c42c-0fa6-11d2-a910-00c04f990f3b
10f24e8e-0fa6-11d2-a910-00c04f990f3b
1544f5e0-613c-11d1-93df-00c04fd7bd09
Les ports TCP/UDP correspondants sont dynamiques. Pour les autoriser, vous utilisez l’instruction suivante pour chaque numéro :
set applications application-name term term-name uuid hex-number
L’ALG mappe les numéros de programme en ports TCP/UDP négociés dynamiquement en fonction de ces quatre UUID et autorise ou refuse le service en fonction d’une stratégie que vous configurez.