Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Privilèges d’accès utilisateur

Vous (l’administrateur système) accordez aux utilisateurs l’accès ou les autorisations aux commandes, aux niveaux de la hiérarchie de configuration et aux instructions. Les utilisateurs ne peuvent exécuter que ces commandes et afficher et configurer uniquement les instructions pour lesquelles ils disposent de privilèges d’accès. Vous pouvez également utiliser des expressions régulières étendues pour spécifier les commandes de mode opérationnel, les instructions de configuration et les hiérarchies qui sont autorisées ou refusées aux utilisateurs. Cette pratique empêche les utilisateurs non autorisés d’exécuter des commandes sensibles ou de configurer des instructions susceptibles d’endommager le réseau.

Vue d’ensemble des niveaux de privilèges d’accès

Chaque commande CLI de niveau supérieur et chaque instruction de configuration est associée à un niveau de privilège d’accès. Les utilisateurs ne peuvent exécuter que ces commandes et configurer et afficher uniquement les instructions pour lesquelles ils disposent de privilèges d’accès. Un ou plusieurs indicateurs d’autorisation définissent les privilèges d’accès pour chaque classe de connexion.

Pour chaque classe de connexion, vous pouvez également autoriser ou refuser explicitement l’utilisation de commandes et de hiérarchies d’instructions en mode opérationnel et en mode de configuration qui seraient autrement autorisées ou refusées par un niveau de privilège spécifié dans l’instruction permissions .

Indicateurs d’autorisation de la classe de connexion

Vous utilisez des indicateurs d’autorisation pour accorder à un utilisateur l’accès aux commandes du mode opérationnel, ainsi qu’aux niveaux et instructions de la hiérarchie de configuration. Vous configurez des indicateurs d’autorisation pour la classe de connexion de l’utilisateur au niveau de la [edit system login class] hiérarchie. Lorsque vous spécifiez un certain indicateur d’autorisation, l’utilisateur a accès aux commandes, aux niveaux de la hiérarchie de configuration et aux instructions qui correspondent à cet indicateur. Pour accorder l’accès à toutes les commandes et instructions de configuration, utilisez l’indicateur d’autorisations all .

REMARQUE :

Chaque commande répertoriée représente cette commande et toutes les sous-commandes avec cette commande comme préfixe. Chaque instruction de configuration répertoriée représente le sommet de la hiérarchie de configuration à laquelle cet indicateur accorde l’accès.

L’instruction permissions spécifie un ou plusieurs des indicateurs d’autorisation répertoriés dans Tableau 1. Les indicateurs d’autorisation ne sont pas cumulatifs. Pour chaque classe, vous devez lister tous les indicateurs d’autorisation nécessaires, y compris view pour afficher des informations et configure entrer en mode de configuration. Deux formes d’autorisations contrôlent l’accès d’un utilisateur aux différentes parties de la configuration :

  • Formulaire « Plain » : fournit une fonctionnalité en lecture seule pour ce type d’autorisation. Un exemple est interface.

  • -control form : fournit des fonctionnalités de lecture et d’écriture pour ce type d’autorisation. Un exemple est interface-control.

Pour les indicateurs d’autorisation qui accordent l’accès aux niveaux hiérarchiques de configuration et aux instructions, les indicateurs de forme simple accordent un privilège en lecture seule à cette configuration. Par exemple, l’indicateur d’autorisation interface accorde un accès en lecture seule au niveau hiérarchique [edit interfaces] . La -control forme de l’indicateur accorde un accès en lecture-écriture à cette configuration. Par exemple, l’indicateur interface-control accorde un accès en lecture-écriture au niveau de la [edit interfaces] hiérarchie.

Tableau 1 Répertorie les indicateurs d’autorisation de classe de connexion que vous pouvez configurer en incluant l’instruction permissions au niveau de la [edit system login class class-name] hiérarchie.

Les indicateurs d’autorisation accordent un ensemble spécifique de privilèges d’accès. Chaque indicateur d’autorisation est répertorié avec les commandes du mode opérationnel ou du mode de configuration, ainsi que les niveaux et les instructions de la hiérarchie de configuration auxquels cet indicateur accorde l’accès.

Tableau 1 : Indicateurs d’autorisation de la classe de connexion

Indicateur d’autorisation

Description

access

Peut visualiser la configuration d’accès en mode opérationnel ou en mode configuration.

access-control

Peut afficher et configurer les informations d’accès au niveau de la [edit access] hiérarchie.

admin

Peut afficher les informations du compte utilisateur en mode opérationnel ou en mode configuration.

admin-control

Peut afficher les informations du compte utilisateur et les configurer au niveau de la [edit system] hiérarchie.

all

Peut accéder à toutes les commandes du mode opérationnel et à toutes les commandes du mode de configuration. Peut modifier la configuration dans tous les niveaux de la hiérarchie de configuration.

clear

Peut effacer (supprimer) les informations que l’équipement apprend du réseau et stocke dans diverses bases de données réseau (à l’aide clear des commandes).

configure

Peut entrer en mode de configuration (à l’aide de la commande) et valider les configurations (à l’aide de la configurecommit commande).

control

Peut effectuer toutes les opérations au niveau du contrôle, c’est-à-dire toutes les opérations configurées avec les indicateurs d’autorisation -control .

field

Peut afficher les commandes de débogage de champ. Réservé à la prise en charge du débogage.

firewall

Peut visualiser la configuration du filtre de pare-feu en mode opérationnel ou en mode configuration.

firewall-control

Peut afficher et configurer les informations de filtre de pare-feu au niveau de la [edit firewall] hiérarchie.

floppy

Peut lire et écrire sur le support amovible.

flow-tap

Peut visualiser la configuration flow-tap en mode opérationnel ou en mode configuration.

flow-tap-control

Peut afficher et configurer les informations de flux au niveau de la [edit services flow-tap] hiérarchie.

flow-tap-operation

Peut envoyer des requêtes de débit au routeur ou au commutateur. Par exemple, un client DTCP (Dynamic Tasking Control Protocol) doit être flow-tap-operation autorisé à s’authentifier en Junos OS tant qu’utilisateur administratif.

REMARQUE :

L’option flow-tap-operation n’est pas incluse dans l’indicateur d’autorisations all-control .

idp-profiler-operation

Permet d’afficher les données du profileur.

interface

Peut visualiser la configuration de l’interface en mode opérationnel et en mode configuration.

interface-control

Peut afficher le châssis, la classe de service (CoS), les groupes, les options de transfert et les informations de configuration des interfaces. Peut modifier la configuration aux niveaux hiérarchiques suivants :

  • [edit chassis]

  • [edit class-of-service]

  • [edit groups]

  • [edit forwarding-options]

  • [edit interfaces]

maintenance

Peut effectuer la maintenance du système, y compris démarrer un shell local sur l’appareil et devenir le superutilisateur dans l’interpréteur de commandes (à l’aide de la su root commande) et arrêter et redémarrer l’appareil (à l’aide des request system commandes).

network

Peut accéder au réseau à l’aide des pingcommandes , ssh, telnetet traceroute .

pgcp-session-mirroring

Peut afficher la configuration de la mise en miroir de session pgcp .

pgcp-session-mirroring-control

Peut modifier la configuration de la mise en miroir de session pgcp .

reset

Peut redémarrer les processus logiciels à l’aide de la restart commande.

rollback

Peut utiliser la rollback commande pour revenir à une configuration précédemment validée.

routing

Peut afficher les informations générales de configuration du routage, du protocole de routage et de la stratégie de routage en mode de configuration et en mode opérationnel.

routing-control

Peut afficher et configurer le routage général au niveau de la [edit routing-options] hiérarchie, les protocoles de routage au niveau de la hiérarchie et les informations de stratégie de routage au niveau de la [edit protocols][edit policy-options] hiérarchie.

secret

Peut afficher les mots de passe et autres clés d’authentification dans la configuration.

secret-control

Peut afficher et modifier les mots de passe et autres clés d’authentification dans la configuration.

security

Peut afficher les informations de configuration de sécurité en mode opérationnel et en mode configuration.

security-control

Permet d’afficher et de configurer les informations de sécurité au niveau hiérarchique [edit security] .

shell

Peut démarrer un shell local sur le routeur ou le commutateur à l’aide de la start shell commande.

snmp

Peut afficher les informations de configuration SNMP (Simple Network Management Protocol) en mode opérationnel ou en mode configuration.

snmp-control

Permet d’afficher et de modifier les informations de configuration SNMP au niveau de la [edit snmp] hiérarchie.

Permet d’afficher les informations de configuration du stockage Fibre Channel au niveau de la [edit fc-fabrics] hiérarchie.

Peut modifier les informations de configuration du stockage Fibre Channel au niveau de la [edit fc-fabrics] hiérarchie.

system

Peut afficher les informations au niveau du système en mode opérationnel ou en mode configuration.

system-control

Peut afficher et modifier les informations de configuration au niveau du système au niveau de la [edit system] hiérarchie.

trace

Peut afficher les paramètres du fichier de trace et configurer les propriétés du fichier de trace.

trace-control

Peut modifier les paramètres du fichier de trace et configurer les propriétés du fichier de trace.

Permet d’afficher la configuration du dispositif Edge unifié au niveau de la [edit unified-edge] hiérarchie.

Peut modifier la configuration liée au dispositif Edge unifié au niveau de la [edit unified-edge] hiérarchie.

view

Peut utiliser diverses commandes pour afficher les valeurs et statistiques actuelles à l’échelle du système, de la table de routage et du protocole. Impossible d’afficher la configuration secrète.

view-configuration

Peut afficher toute la configuration, à l’exception des secrets, des scripts système et des options d’événements.

REMARQUE :

Seuls les utilisateurs autorisés peuvent afficher la configuration du script de validation, du script op ou du script d’événement maintenance .

Autoriser et refuser les commandes individuelles et les hiérarchies d’instructions pour les classes de connexion

Par défaut, toutes les commandes CLI de niveau supérieur et tous les niveaux de hiérarchie de configuration sont associés à des niveaux de privilèges d’accès. Les utilisateurs ne peuvent exécuter que ces commandes et afficher et configurer uniquement les instructions pour lesquelles ils disposent de privilèges d’accès. Pour chaque classe de connexion, vous pouvez explicitement autoriser ou refuser l’utilisation des commandes et des hiérarchies d’instructions en mode opérationnel et en mode de configuration qui seraient autrement autorisées ou refusées par un niveau de privilège spécifié dans l’instruction permissions .

Les indicateurs d’autorisation permettent à un utilisateur d’accéder aux commandes du mode opérationnel et du mode de configuration, ainsi qu’aux niveaux et instructions de la hiérarchie de configuration. En spécifiant un indicateur d’autorisation spécifique sur la classe de connexion de l’utilisateur au niveau de la hiérarchie, vous accordez à l’utilisateur l’accès aux commandes et aux niveaux et instructions de [edit system login class] la hiérarchie de configuration correspondants. Pour accorder l’accès à toutes les commandes et instructions de configuration, utilisez l’indicateur d’autorisations all .

Vous pouvez explicitement autoriser ou refuser l’utilisation de commandes et d’instructions en configurant les allow-commandsinstructions , , deny-commandsallow-configurationet deny-configuration pour une classe de connexion. Dans les instructions, vous utilisez des expressions régulières étendues pour définir les commandes et les instructions à autoriser ou à refuser pour les utilisateurs affectés à la classe.

Exemple : Configurer les autorisations utilisateur avec des niveaux de privilèges d’accès

Cet exemple configure les autorisations utilisateur pour une classe de connexion. Vous configurez les autorisations utilisateur pour une classe de connexion afin d’empêcher les utilisateurs d’effectuer des actions réseau non autorisées. Les utilisateurs ne peuvent exécuter que ces commandes et afficher et modifier uniquement les instructions pour lesquelles ils disposent de privilèges d’accès. Cette contrainte empêche les utilisateurs non autorisés d’exécuter des commandes sensibles ou de configurer des instructions susceptibles d’endommager le réseau.

Conditions préalables

Aucune configuration spéciale au-delà de l’initialisation de l’appareil n’est requise avant de configurer cet exemple.

Présentation

Chaque commande CLI de niveau supérieur et chaque instruction de configuration est associée à un niveau de privilège d’accès. Lorsque vous configurez une classe de connexion, vous pouvez explicitement autoriser ou refuser l’utilisation des commandes et des instructions de configuration en mode de fonctionnement et en mode de configuration. Les utilisateurs ne peuvent exécuter que ces commandes et afficher et configurer uniquement les instructions pour lesquelles ils disposent de privilèges d’accès.

Vous définissez les privilèges d’accès pour chaque classe de connexion en spécifiant un ou plusieurs indicateurs d’autorisation dans l’instruction permissions . Les indicateurs d’autorisation permettent à un utilisateur d’accéder aux commandes, aux instructions et aux hiérarchies. Les indicateurs d’autorisation ne sont pas cumulatifs. Pour chaque classe de connexion, vous devez lister tous les indicateurs d’autorisation nécessaires, y compris view pour afficher des informations et configure entrer en mode de configuration. En spécifiant un indicateur d’autorisation spécifique sur la classe de connexion de l’utilisateur, vous accordez à l’utilisateur l’accès aux commandes, instructions et hiérarchies correspondantes. Pour accorder l’accès à toutes les commandes et instructions de configuration, utilisez l’indicateur d’autorisations all . Les indicateurs d’autorisation fournissent une capacité de lecture seule (formulaire « plain ») et de lecture et d’écriture (formulaire qui se termine par -control) pour un type d’autorisation.

REMARQUE :

Les all bits d’autorisation de la classe de connexion sont prioritaires sur les expressions régulières étendues lorsqu’un utilisateur émet une rollback commande avec l’indicateur d’autorisation rollback activé.

Pour configurer les niveaux de privilège d’accès utilisateur pour une classe de connexion, incluez l’instruction permissions au niveau de la [edit system login class class-name] hiérarchie, suivie des indicateurs d’autorisation. Configurez plusieurs autorisations sous la forme d’une liste séparée par des espaces et entre crochets :

Conseil :

Pour afficher les autorisations disponibles, utilisez l’aide contextuelle de l’interface de ligne de commande et tapez un point d’interrogation ( ?) après l’instruction permissions :

Configuration

Cet exemple configure la snmp-admin classe login. Les utilisateurs de cette classe de connexion peuvent uniquement configurer et afficher les paramètres SNMP.

Configurer les autorisations utilisateur avec des niveaux de privilèges d’accès

Procédure étape par étape

Pour configurer les privilèges d’accès pour la classe de connexion :

  1. Configurez la snmp-admin classe de connexion à l’aide des indicateurs , snmp, et snmp-control d’autorisationconfigure.

    Les indicateurs d’autorisation configurés fournissent à la fois une capacité de lecture (snmp) et de lecture et d’écriture (snmp-control) pour SNMP, et il s’agit du seul privilège d’accès autorisé pour cette classe de connexion. Tous les autres privilèges d’accès sont refusés.

  2. Créez les comptes d’utilisateur affectés à la snmp-admin classe de connexion.

Résultats

En mode configuration, confirmez votre configuration en entrant la show system login commande. Si la sortie n’affiche pas la configuration prévue, répétez les instructions de cet exemple pour corriger la configuration.

Après avoir configuré l’appareil, passez commit en mode de configuration.

Vérification

Connectez-vous à l’aide d’un nom d’utilisateur attribué à la nouvelle classe de connexion et vérifiez que la configuration fonctionne correctement.

Vérifier la configuration SNMP

But

Vérifiez qu’un utilisateur de la snmp-admin classe de connexion peut configurer SNMP.

Action

En mode configuration, configurez les instructions SNMP au niveau de la [edit snmp] hiérarchie.

Sens

L’utilisateur de la snmp-admin classe de connexion est en mesure de configurer les paramètres SNMP. L’utilisateur peut configurer ces paramètres, car les indicateurs d’autorisation spécifiés pour cette classe incluent à la fois les bits d’autorisation snmp (capacités de lecture) et snmp-control (capacités de lecture et d’écriture).

Vérifier la configuration non-SNMP

But

Vérifiez qu’un utilisateur de la snmp-admin classe de connexion ne peut pas modifier les instructions de configuration non-SNMP.

Action

En mode configuration, essayez de configurer une instruction non-SNMP, telle qu’une instruction dans la interfaces hiérarchie.

Sens

L’utilisateur de la classe de connexion n’est pas en mesure de configurer la snmp-admin[edit interfaces] hiérarchie, car les indicateurs d’autorisation spécifiés pour cette classe ne l’autorisent pas. Dans ce cas, la CLI émet un message d’erreur.

Expressions régulières permettant d’autoriser et de refuser les commandes, les instructions de configuration et les hiérarchies en mode opérationnel

Cette rubrique contient les sections suivantes :

Comprendre les instructions d’autorisation et de refus

Chaque hiérarchie de commandes CLI et d’instructions de configuration de niveau supérieur est associée à un niveau de privilège d’accès. Chaque classe de connexion peut explicitement autoriser ou refuser l’utilisation des commandes de mode opérationnel et de mode de configuration, ainsi que des hiérarchies et des instructions de configuration qui seraient autrement autorisées ou refusées par un niveau de privilège. Les utilisateurs ne peuvent exécuter que ces commandes et afficher et configurer uniquement les instructions pour lesquelles ils disposent de privilèges d’accès.

Les privilèges d’accès pour chaque classe de connexion sont définis par un ou plusieurs indicateurs d’autorisation spécifiés dans l’instruction permissions au niveau de la [edit system login class class-name] hiérarchie. En outre, vous pouvez autoriser ou refuser l’utilisation de commandes spécifiques et de hiérarchies de configuration en définissant des expressions régulières étendues. Vous pouvez spécifier les expressions régulières en configurant les instructions suivantes pour une classe de connexion :

  • allow-commands et —Autorisez ou refusez l’accès aux commandes du mode opérationnel et deny-commandsdu mode de configuration.

  • allow-configuration et deny-configuration: autorisez ou refusez l’accès à des hiérarchies de configuration spécifiques.

    REMARQUE :

    Ces instructions effectuent une correspondance plus lente, avec plus de flexibilité, en particulier dans la correspondance générique. Cependant, l’évaluation de toutes les instructions possibles peut prendre beaucoup de temps si un grand nombre d’expressions régulières ou d’expressions génériques à chemin complet sont configurées, ce qui peut affecter négativement les performances.

  • allow-commands-regexps et deny-commands-regexps: autorisez ou refusez l’accès à des commandes particulières à l’aide de chaînes d’expressions régulières.

  • allow-configuration-regexps et deny-configuration-regexps: autorisez ou refusez l’accès à des hiérarchies de configuration spécifiques à l’aide de chaînes d’expressions régulières.

REMARQUE :

Si vos configurations existantes utilisent les instructions or, l’utilisation des mêmes options de configuration avec les instructions or allow/deny-configurationallow/deny-configuration-regexps peut ne pas produire les allow/deny-commandsallow/deny-commands-regexps mêmes résultats. Les méthodes de recherche et d’appariement diffèrent par les deux formes de ces énoncés.

L’autorisation explicite des commandes et des hiérarchies d’instructions de configuration à l’aide des instructions ajoute aux autorisations que l’instruction allow/deny-*permissions définit déjà. De même, le refus explicite des commandes et des hiérarchies d’instructions de configuration à l’aide des instructions supprime les autorisations que l’instruction allow/deny-*permissions définit déjà.

Par exemple, dans la configuration suivante, l’autorisation permet aux utilisateurs de la classe de connexion d’entrer configure en mode de configuration. En outre, l’expression allow-configuration permet aux utilisateurs de modifier la configuration au niveau de la hiérarchie et de [edit system services] la valider.

De même, dans la configuration suivante, l’utilisateur de la classe de connexion peut effectuer toutes les opérations autorisées par l’indicateur d’autorisations, sauf que l’utilisateur all ne peut pas afficher ou modifier la configuration au niveau de la [edit system services] hiérarchie :

Présentation de la syntaxe des instructions Allow and Deny

Vous ne pouvez configurer une instruction qu’une allow/deny-* seule fois dans chaque classe de connexion. Lorsque vous configurez une instruction :

  • Vous pouvez configurer autant d’expressions régulières que nécessaire.

  • Les expressions régulières ne sont pas sensibles à la casse

Les allow/deny-commands énoncés s’excluent mutuellement avec les énoncés, et les énoncés s’excluent mutuellement avec les allow/deny-commands-regexpsallow/deny-configurationallow/deny-configuration-regexps énoncés. Par exemple, vous ne pouvez pas configurer les deux allow-configuration et allow-configuration-regexps dans la même classe de connexion.

Pour définir des privilèges d’accès aux commandes, spécifiez des expressions régulières étendues à l’aide des allow-commands instructions and deny-commands . Placez chaque expression autonome complète entre parenthèses ( ) et utilisez la barre verticale ( | ) pour séparer les expressions. N’utilisez pas d’espaces entre les expressions régulières qui sont liées au symbole de la barre verticale. L’expression complète est placée entre guillemets.

Par exemple :

Vous devez utiliser des ancres lorsque vous spécifiez des expressions régulières complexes avec l’instruction allow-commands . Par exemple :

Pour définir des privilèges d’accès à des parties de la hiérarchie de configuration, spécifiez des expressions régulières étendues dans les allow-configuration instructions and deny-configuration . Placez les chemins d’accès complets entre parenthèses ( ) et utilisez la barre verticale ( | ) pour séparer les expressions. N’utilisez pas d’espaces entre les expressions régulières qui sont liées au symbole de la barre verticale. L’expression complète est placée entre guillemets.

Par exemple :

Lorsque vous spécifiez des expressions régulières étendues à l’aide des allow/deny-commands-regexps instructions ou allow/deny-configuration-regexps , placez chaque expression entre guillemets ( » « ) et séparez-les par un espace. Placez les expressions multiples entre crochets [ ]. Par exemple :

Les modificateurs tels que set, log, et count ne sont pas pris en charge dans la chaîne d’expression régulière à mettre en correspondance. Si vous utilisez un modificateur, rien n’est égalé.

Configuration correcte :

Configuration incorrecte :

Présentation de la priorité et de la correspondance des instructions d’autorisation et de refus

Par défaut, les expressions régulières et allow-configuration sont prioritaires sur deny-commands les allow-commandsdeny-configuration expresssions. Par conséquent, si vous configurez la même commande pour les allow-commands instructions and deny-commands , l’opération allow est prioritaire sur l’opération de refus. De même, si vous configurez la même instruction pour les allow-configuration instructions and deny-configuration , l’opération allow est prioritaire sur l’opération de refus.

Par exemple, la configuration suivante permet à un utilisateur de la classe login d’installer un logiciel à l’aide de la commande, même si l’instruction deny-commands inclut la testrequest system software add même commande :

De même, la configuration suivante permet à un utilisateur dans le test test de la classe de connexion d’afficher et de modifier la hiérarchie de configuration, même si l’instruction deny-configuration inclut la [edit system services] même hiérarchie :

Si les allow-commands instructions and deny-commands ont deux variantes différentes d’une commande, la correspondance la plus longue est toujours exécutée. La configuration suivante permet à un utilisateur de la classe login d’exécuter la commande, mais pas la testcommit synchronizecommit commande. C’est parce que commit synchronize est la correspondance la plus longue entre commit et , et commit synchronizequ’elle est spécifiée pour allow-commands.

La configuration suivante permet à un utilisateur de la classe login d’exécuter la commande, mais pas la testcommitcommit synchronize commande. C’est parce que commit synchronize est la correspondance la plus longue entre commit et , et commit synchronizequ’elle est spécifiée pour deny-commands.

Contrairement aux autres instructions, le comportement par défaut des *-regexps instructions est que les expressions régulières et deny-configuration-regexps sont prioritaires sur allow-commands-regexps les deny-commands-regexps expressions andallow-configuration-regexps. Vous pouvez configurer l’instruction regex-additive-logic au niveau de la [edit system] hiérarchie pour forcer les allow-configuration-regexps expressions régulières à être prioritaires sur les deny-configuration-regexps instructions. La configuration de l’instruction vous permet de refuser les hiérarchies de configuration à un niveau supérieur, puis d’autoriser uniquement l’utilisateur à accéder à des sous-hiérarchies spécifiques.

Comprendre les règles d’autorisation et de refus

Les allow/deny-commandsinstructions , , allow/deny-configurationallow/deny-commands-regexpset allow/deny-configuration-regexps sont prioritaires sur les autorisations de la classe de connexion. Lorsque vous configurez ces instructions, les règles suivantes s’appliquent :

  • Les expressions régulières for allow-commands et peuvent également inclure les commitcommandes , , rollback, , statusloadsaveet .deny-commandsupdate

  • Les all bits d’autorisation de la classe de connexion sont prioritaires sur les expressions régulières étendues lorsqu’un utilisateur exécute la rollback commande avec l’indicateur d’autorisation rollback activé.

  • Les utilisateurs ne peuvent pas exécuter la commande lors de la load override spécification d’une expression régulière étendue. Les utilisateurs ne peuvent émettre que les mergecommandes , replaceet patch configuration.

  • Vous pouvez utiliser le caractère générique * pour désigner des expressions régulières. Cependant, vous devez l’utiliser dans le cadre d’une expression régulière. Vous ne pouvez pas utiliser [ * ] ou [ .* ] comme seule expression. De plus, vous ne pouvez pas configurer l’instruction allow-configuration avec une expression telle que (interfaces (description (|.*)), car cela équivaut à allow-configuration .*.

Comprendre les différences pour les instructions *-regexps

Cette section décrit les différences entre les déclarations et les allow/deny-configurationallow/deny-configuration-regexps déclarations.

Les allow/deny-configuration-regexps instructions divisent l’expression régulière en jetons et font correspondre chaque élément à chaque partie du chemin complet de la configuration spécifiée, tandis que les allow/deny-configuration instructions correspondent à la chaîne complète. Pour allow/deny-configuration-regexps les instructions, vous configurez un ensemble de chaînes dans lequel chaque chaîne est une expression régulière, avec des espaces entre les termes de la chaîne. Cette syntaxe permet une correspondance très rapide, mais offre moins de flexibilité. Pour spécifier des expressions génériques, vous devez configurer des caractères génériques pour chaque jeton de la chaîne délimitée par des espaces que vous souhaitez faire correspondre, ce qui rend plus difficile l’utilisation d’expressions génériques pour ces instructions.

Par exemple :

  • Expression régulière correspondant à un jeton à l’aide de allow-configuration-regexps

    Cet exemple montre que c’est options la seule expression correspondante par rapport au premier jeton de l’instruction.

    La configuration précédente correspond aux instructions suivantes :

    • set policy-options condition condition dynamic-db

    • set routing-options static route static-route next-hop next-hop

    • set event-options generate-event event time-interval seconds

    La configuration précédente ne correspond pas aux instructions suivantes :

    • nom d’hôte système options d’hôte

    • Options de description des interfaces interface-name

  • Expression régulière correspondant à trois jetons à l’aide de allow-configuration-regexps

    Cet exemple montre que ssh est la seule expression correspondante par rapport au troisième jeton de l’instruction.

    Dans l’exemple précédent, les trois jetons sont .*respectivement , et .*ssh, respectivement.*.

    La configuration précédente correspond aux instructions suivantes :

    • nom d’hôte système_nom_hôte-ssh

    • Services système SSH

    • services système outbound-ssh

    La configuration précédente ne correspond pas à l’instruction suivante :

    • Description des interfaces interface-nameSSH

Il est plus facile d’utiliser l’instruction pour restreindre l’accès à la configuration que d’utiliser l’instruction. illustre l’utilisation deny-configurationdeny-configuration-regexps des instructions et deny-configuration-regexps dans différentes configurations pour obtenir le même résultat en restreignant l’accès deny-configuration à une configuration particulière. Tableau 2

Tableau 2 : Restriction de l’accès à la configuration à l’aide des instructions deny-configuration et deny-configuration-regexps

Configuration refusée

Utilisant: deny-configuration

Utilisant: deny-configuration-regexps

Résultat

xnm-ssl

[edit system]
login {
    class test {
        permissions configure;
         allow-configuration .*;
        deny-configuration .*xnm-ssl;
    }
}
[edit system]
login {
    class test {
        permissions configure;
         allow-configuration .*;
        deny-configuration-regexps ".* .* .*-ssl"";
    }
}

L’instruction de configuration suivante est refusée :

  • Services système XNM-SSL

ssh

[edit system]
login {
    class test {
        permissions configure;
        allow-configuration .*;
        deny-configuration ".*ssh";
    }
}
[edit system]
login {
    class test {
        permissions configure;
        allow-configuration .*;
        deny-configuration-regexps ".*ssh";
        deny-configuration-regexps ".* .*ssh";
        deny-configuration-regexps ".* .* .*ssh";
    }
}

Les instructions de configuration suivantes sont refusées :

  • nom d’hôte système_nom_hôte-ssh

  • Services système SSH

  • services système outbound-ssh

  • sécurité_hôte_connu ssh

Bien que les instructions soient également utiles lorsque vous souhaitez une configuration simple, elles allow/deny-configuration-regexps offrent de meilleures performances et surmontent l’ambiguïté qui existait lors de la combinaison d’expressions dans les allow/deny-configurationallow/deny-configuration instructions.

Utilisation d’expressions régulières sur des serveurs d’autorisation distants

Vous pouvez utiliser des expressions régulières étendues pour spécifier les commandes en mode de fonctionnement et en mode de configuration, ainsi que les instructions de configuration et les hiérarchies autorisées ou refusées pour certains utilisateurs. Vous spécifiez ces expressions régulières localement dans les allow/deny-commandsinstructions , , allow/deny-configurationallow/deny-commands-regexps et allow/deny-configuration-regexps au niveau de la [edit system login class class-name] hiérarchie. Vous pouvez spécifier ces expressions régulières à distance en spécifiant les attributs TACACS+ ou RADIUS spécifiques au fournisseur de Juniper Networks dans la configuration de votre serveur d’autorisation. Lorsque vous configurez des paramètres d’autorisation à la fois localement et à distance, l’appareil fusionne les expressions régulières reçues lors de l’autorisation TACACS+ ou RADIUS avec toutes les expressions régulières définies sur l’équipement local.

REMARQUE :

À partir de Junos OS version 18.1, les instructions et deny-commands-regexps sont prises en charge pour l’autorisation allow-commands-regexps TACACS+.

Lorsque vous spécifiez plusieurs expressions régulières dans une configuration locale à l’aide des allow-commandsinstructions , , deny-commandsallow-configurationou , configurez deny-configuration les expressions régulières entre parenthèses et les séparez à l’aide du symbole de la barre verticale. Vous placez l’expression complète entre guillemets. Par exemple, vous pouvez spécifier plusieurs allow-commands paramètres avec la syntaxe suivante :

Le serveur d’autorisation RADIUS utilise les attributs et la syntaxe suivants :

Le serveur d’autorisation TACACS+ utilise les attributs et la syntaxe suivants :

Lorsque vous spécifiez plusieurs expressions régulières dans une configuration locale à l’aide des allow-commands-regexpsinstructions , , deny-commands-regexpsallow-configuration-regexpsou , configurez deny-configuration-regexps les expressions régulières entre guillemets doubles et les séparez à l’aide de l’opérateur espace. Vous placez l’expression complète entre crochets. Par exemple, vous pouvez spécifier plusieurs paramètres allow-commands avec la syntaxe suivante :

Le serveur d’autorisation RADIUS utilise les attributs et la syntaxe suivants :

Le serveur d’autorisation TACACS+ utilise les attributs et la syntaxe suivants :

Les serveurs RADIUS et TACACS+ prennent également en charge une syntaxe simplifiée qui permet de spécifier chaque expression individuelle sur une ligne distincte. Par exemple, la syntaxe simplifiée du serveur RADIUS est la suivante :

De même, la syntaxe simplifiée du serveur TACACS+ est la suivante :

Tableau 3 différencie la configuration d’autorisation locale de la configuration d’autorisation du serveur TACACS+ à l’aide d’expressions régulières.

Tableau 3 : Exemple de configuration d’autorisation locale et distante à l’aide d’expressions régulières

Configuration locale

Configuration TACACS+ à distance

login {
    class local {
        permissions configure;
        allow-commands "(ping .*)|(traceroute .*)|(show .*)|(configure .*)|(edit)|(exit)|(commit)|(rollback .*)";
        deny-commands .*;
        allow-configuration "(interfaces .* unit 0 family ethernet-switching vlan mem.* .*)|(interfaces .* native.* .*)|(interfaces .* unit 0 family ethernet-switching interface-mo.* .*)|(interfaces .* unit .*)|(interfaces .* disable)|(interfaces .* description .*)|(vlans .* vlan-.* .*)"
        deny-configuration .*;
    }
}
user = remote {
    login = username
    service = junos-exec {
        allow-commands1 = "ping .*"
        allow-commands2 = "traceroute .*"
        allow-commands3 = "show .*"
        allow-commands4 = "configure"
        allow-commands5 = "edit"
        allow-commands6 = "exit"
        allow-commands7 = "commit"
        allow-commands8 = ".*xml-mode"
        allow-commands9 = ".*netconf.*"
        allow-commands10 = ".*need-trailer"
        allow-commands11 = "rollback.*"
        allow-commands12 = "junoscript"
        deny-commands1 = ".*"
        allow-configuration1 = "interfaces .* unit 0 family ethernet-switching vlan mem.* .*"
        allow-configuration2 = "interfaces .* native.* .*"
        allow-configuration3 = "interfaces .* unit 0 family ethernet-switching interface-mo.* .*"
        allow-configuration4 = "interfaces .* unit .*"
        allow-configuration5 = "interfaces .* disable"
        allow-configuration6 = "interfaces .* description .*"
        allow-configuration7 = "interfaces .*"
        allow-configuration8 = "vlans .* vlan-.* .*"
        deny-configuration1 = ".*"
        local-user-name = local-username
        user-permissions = "configure"
    }
}
REMARQUE :
  • Vous devez autoriser explicitement l’accès au mode NETCONF, localement ou à distance, en émettant les trois commandes suivantes : xml-mode, netconf, et need-trailer.

  • Lorsque vous utilisez l’instruction, vous devez autoriser toutes les configurations souhaitées à l’aide de l’instruction deny-configuration = ".*"allow-configuration . Toutefois, cette configuration peut affecter la limite de mémoire tampon d’expressions régulières autorisée pour l’instruction allow-configuration . Si cette limite est dépassée, la configuration autorisée peut ne pas fonctionner.

Spécifier des expressions régulières

AVERTISSEMENT :

Lorsque vous spécifiez des expressions régulières pour des commandes et des instructions de configuration, portez une attention particulière aux exemples suivants. Une expression régulière dont la syntaxe n’est pas valide peut ne pas produire les résultats escomptés, même si la configuration est validée sans erreur.

Vous devez spécifier des expressions régulières pour les commandes et les instructions de configuration de la même manière que l’exécution de la commande ou de l’instruction complète. Tableau 4 Répertorie les expressions régulières permettant de configurer les privilèges d’accès pour les hiérarchies d’instructions [edit interfaces] et [edit vlans] .

Tableau 4 : Spécifier des expressions régulières

Déclaration

Expression régulière

Configuration Notes

[edit interfaces]

La set commande pour les interfaces est exécutée comme suit :

[edit]
user@host# set interfaces interface-name unit interface-unit-number

L’instruction set interfaces est incomplète en elle-même et nécessite l’option d’exécution de l’instruction unit .

Par conséquent, l’expression régulière requise pour refuser la configuration doit spécifier l’intégralité de la chaîne exécutable avec l’opérateur à la set interfaces.* place des variables d’instruction :

[edit system login class class-name]
user@host# set permissions configure
user@host# set deny-configuration "interfaces .* unit .*"
  • L’opérateur .* désigne tout à partir du point spécifié pour cette commande ou instruction particulière. Dans cet exemple, il désigne n’importe quel nom d’interface avec n’importe quelle valeur d’unité.

  • La spécification de l’instruction uniquement est incorrecte et ne refuse pas l’accès deny-configuration "interfaces .*" à la configuration des interfaces pour la classe de connexion spécifiée.

  • D’autres options valides peuvent être incluses dans l’expression régulière. Par exemple :

    [edit system login class class-name]
    user@host# set permissions configure
    user@host# set deny-configuration "interfaces .* description .*"
    
    [edit system login class class-name]
    user@host# set permissions configure
    user@host# set allow-configuration-regexps [ "interfaces .* description .*" "interfaces .* unit .* description .*" "interfaces .* unit .* family inet address .*" "interfaces.* disable" ]
    
    [edit system login class class-name]
    user@host# set permissions configure
    user@host# set allow-configuration "interfaces .* unit 0 family ethernet-switching vlan mem.* .*"
    

    Remarque : Dans cet exemple, mem.* l’expression régulière est utilisée lorsque plusieurs chaînes commençant par le mem mot-clé sont censées être incluses dans l’expression régulière spécifiée. Lorsqu’une member seule chaîne doit être incluse, l’expression member .* régulière est utilisée.

[edit vlans]

La set commande pour les VLAN est exécutée comme suit :

[edit]
user@host# set vlans vlan-name vlan-id vlan-id

Ici, l’instruction est incomplète en elle-même et nécessite l’option d’exécution de l’instruction set vlansvlan-id .

Par conséquent, l’expression régulière requise pour autoriser la configuration doit spécifier la chaîne exécutable entière avec l’opérateur à la set vlans.* place des variables d’instruction :

[edit system login class class-name]
user@host# set permissions configure
user@host# set allow-configuration "vlans .* vlan-id .*"
  • L’opérateur .* désigne tout à partir du point spécifié pour cette commande ou instruction particulière. Dans cet exemple, il désigne n’importe quel nom de VLAN avec n’importe quel ID de VLAN.

  • D’autres options valides sous la hiérarchie d’instructions [edit vlans] peuvent être incluses dans l’expression régulière. Par exemple :

    [edit system login class class-name]
    user@host# set permissions configure
    user@host# set allow-configuration-regexps [ "vlans .* vlan-id .*" "vlans .* vlan-id .* description .*" "vlans .* vlan-id .* filter .*" ]
    

Opérateurs d’expressions régulières

Tableau 5 Répertorie les opérateurs d’expressions régulières courants que vous pouvez utiliser pour autoriser ou refuser les modes opérationnels et de configuration.

Les expressions régulières de commande implémentent les expressions rationnelles étendues (modernes), telles que définies dans POSIX 1003.2.

Tableau 5 : Opérateurs d’expressions régulières courantes

Opérateur

Correspondance

Exemple

|

L’un des deux ou plusieurs termes séparés par la barre verticale. Chaque terme doit être une expression autonome complète entre parenthèses ( ), sans espace entre la barre verticale et les parenthèses adjacentes.

[edit system login class test]
user@host# set permissions configure
user@host# set allow-commands "(ping)|(traceroute)|(show system alarms)|(show system software)"
user@host# set deny-configuration "(access)|(access-profile)|(accounting-options)|(applications)|(apply-groups)|(bridge-domains)|(chassis)|(class-of-service)"

Avec la configuration précédente, les utilisateurs affectés à la classe de connexion de test ont un accès au mode opérationnel limité aux seules commandes spécifiées dans l’instruction allow-commands . Ils ont également accès au mode de configuration, à l’exclusion des niveaux hiérarchiques spécifiés dans l’instruction deny-configuration .

^

Au début d’une expression, utilisé pour indiquer le début de la commande, où il peut y avoir une certaine ambiguïté.

[edit system login class test]
user@host# set permissions interface
user@host# set permissions interface-control
user@host# set allow-commands "(^show) (log|interfaces|policer))|(^monitor)"

Avec la configuration précédente, les utilisateurs affectés à la classe de connexion de test ont accès à l’affichage et à la configuration de la configuration de l’interface. L’instruction allow-commands accorde l’accès aux commandes qui commencent par les show mots-clés et monitor .

Pour le premier filtre, les commandes spécifiées incluent les show logcommandes , , show interfaceset show policer . Le deuxième filtre spécifie toutes les commandes commençant par le monitor mot-clé, telles que les commandes ou les monitor interfacesmonitor traffic commandes.

$

Caractère à la fin d’une commande. Utilisé pour désigner une commande qui doit être mise en correspondance exactement jusqu’à ce point.

[edit system login class test]
user@host# set permissions interface
user@host# set allow-commands "(show interfaces$)"

Avec la configuration précédente, les utilisateurs affectés à la classe de connexion test peuvent visualiser la configuration des interfaces en mode configuration. Les utilisateurs peuvent également visualiser la configuration de l’interface à l’aide de la show configuration commande mode opérationnel. Toutefois, l’expression régulière spécifiée dans l’instruction empêche les utilisateurs d’exécuter uniquement la show interfaces commande et refuse l’accès allow-commands aux extensions de commande telles que show interfaces detail ou show interfaces extensive.

[ ]

Plage de lettres ou de chiffres. Pour séparer le début et la fin d’une plage, utilisez un trait d’union ( - ).

[edit system login class test]
user@host# set permissions clear
user@host# set permissions configure
user@host# set permissions network
user@host# set permissions trace
user@host# set permissions view
user@host# set allow-configuration-regexps [ "interfaces [gx]e-.* unit [0-9]* description .*" ]

Avec la configuration précédente, les utilisateurs affectés à la classe de connexion de test disposent d’autorisations utilisateur au niveau de l’opérateur. Ces utilisateurs ont également accès à la configuration des interfaces dans la plage spécifiée de nom d’interface et de numéro d’unité (0 à 9).

( )

Groupe de commandes indiquant une expression complète et autonome à évaluer. Le résultat est ensuite évalué dans le cadre de l’expression globale. Les parenthèses doivent être utilisées en conjonction avec les opérateurs de tuyaux, comme expliqué.

[edit system login class test]
user@host# set permissions all
user@host# set allow-commands "(clear)|(configure)"
user@host# deny-commands "(mtrace)|(start)|(delete)"

Avec la configuration ci-dessus, les utilisateurs affectés à la classe de connexion de test disposent d’autorisations de niveau superutilisateur et ont accès aux commandes spécifiées dans l’instruction allow-commands .

*

Zéro ou plusieurs termes.

[edit system login class test]
user@host# set permissions configure
user@host# set deny-configuration "(system login class m*)"

Avec la configuration ci-dessus, les utilisateurs affectés à la classe de connexion de test dont le nom d’utilisateur de connexion commence par m se voient refuser l’accès à la configuration.

+

Un ou plusieurs termes.

[edit system login class test]
user@host# set permissions configure
user@host# set deny-configuration "(system login class m+)"

Avec la configuration ci-dessus, les utilisateurs affectés à la classe de connexion de test dont le nom d’utilisateur de connexion commence par m se voient refuser l’accès à la configuration.

.

N’importe quel caractère à l’exception d’un espace " « .

[edit system login class test]
user@host# set permissions configure
user@host# set deny-configuration "(system login class m.)"

Avec la configuration ci-dessus, les utilisateurs affectés à la classe de connexion de test dont le nom d’utilisateur de connexion commence par m se voient refuser l’accès à la configuration.

.*

Tout à partir du point spécifié.

[edit system login class test]
user@host# set permissions configure
user@host# set deny-configuration "(system login class m .*)"

Avec la configuration ci-dessus, les utilisateurs affectés à la classe de connexion de test dont le nom d’utilisateur de connexion commence par m se voient refuser l’accès à la configuration.

De même, l’instruction deny-configuration "protocols .*" refuse tout accès à la configuration au niveau de la [edit protocols] hiérarchie.

REMARQUE :
  • Les *opérations , +, et . peuvent être réalisées à l’aide de .*.

  • Les deny-commands .* instructions et refusent respectivement l’accès à toutes les commandes du mode opérationnel et deny-configuration .* à toutes les hiérarchies de configuration.

REMARQUE :

L’opérateur ! d’expression régulière n’est pas pris en charge.

Exemples d’expressions régulières

Tableau 6répertorie les expressions régulières utilisées pour autoriser les options de configuration sous deux hiérarchies de configuration — et [edit protocols rip][edit system ntp server], à titre d’exemple pour spécifier des expressions régulières.

REMARQUE :

Tableau 6 Ne fournit pas une liste exhaustive de toutes les expressions régulières et de tous les mots-clés pour toutes les instructions de configuration et toutes les hiérarchies. Les expressions régulières répertoriées dans le tableau ne sont validées que pour les hiérarchies d’instructions [edit system ntp server] et [edit protocols rip] .

Tableau 6 : Exemples d’expressions régulières

Hiérarchie des instructions

Expressions régulières

Configuration autorisée

Configuration refusée

[edit system ntp server]

     

Clé key-number

[edit system login class test]
set permissions configure
set allow-configuration-regexps [ "system ntp server .*" "system ntp server .* key .*" ]
set deny-configuration-regexps [ "system ntp server .* version .*" "system ntp server .* prefer" ]
  • adresse IP du serveur

  • adresse IP et clé du serveur

  • Version

  • Préfère

Version version-number

[edit system login class test]
set permissions configure
set allow-configuration-regexps [ "system ntp server .*" "system ntp server .* version .*" ]
set deny-configuration-regexps [ "system ntp server .* key .*" "system ntp server .* prefer" ]
  • adresse IP du serveur

  • adresse IP et version du serveur

  • clé

  • Préfère

Préfère

[edit system login class test]
set permissions configure
set allow-configuration-regexps [ "system ntp server .*" "system ntp server .* prefer" ];
set deny-configuration-regexps [ "system ntp server .* key .*" "system ntp server .* version .*" ]
  • adresse IP du serveur

  • serveur IP et préfèrent

  • clé

  • Version

[edit protocols rip]

     

taille du message message-size

[edit system login class test]
set permissions configure
set allow-configuration-regexps "protocols rip message-size .*"
set deny-configuration-regexps [ "protocols rip metric-in .*" "protocols rip route-timeout .*" "protocols rip update-interval .*" ]
  • taille du message

  • Entrée métrique

  • délai d’expiration de route

  • intervalle de mise à jour

Entrée métrique metric-in

[edit system login class test]
set permissions configure
set  allow-configuration-regexps "protocols rip metric-in .*"
set  deny-configuration-regexps [ "protocols rip message-size .*" "protocols rip route-timeout .*" "protocols rip update-interval .*" ]
  • Entrée métrique

  • taille du message

  • délai d’expiration de route

  • intervalle de mise à jour

délai d’expiration de route route-timeout

[edit system login class test]
set permissions configure
set allow-configuration-regexps "protocols rip route-timeout .*"
set deny-configuration-regexps [ "protocols rip metric-in .*" "protocols rip message-size .*" "protocols rip update-interval .*" ]
  • délai d’expiration de route

  • taille du message

  • Entrée métrique

  • intervalle de mise à jour

intervalle de mise à jour update-interval

[edit system login class test]
set permissions configure
set allow-configuration-regexps "protocols rip update-interval .*"
set deny-configuration-regexps [ "protocols rip metric-in .*" "protocols rip route-timeout .*" "protocols rip message-size .*" ]
  • intervalle de mise à jour

  • taille du message

  • Entrée métrique

  • délai d’expiration de route

Comment définir des privilèges d’accès à l’aide des instructions allow-configuration et deny-configuration

Vous pouvez définir des privilèges d’accès pour les hiérarchies d’instructions de configuration à l’aide d’une combinaison des types d’instructions suivants :

  • indicateurs d’autorisation

  • allow-configuration et deny-configuration des déclarations

Les indicateurs d’autorisation définissent les limites plus larges de ce à quoi une personne ou une classe de connexion peut accéder et contrôler. Les allow-configuration instructions et contiennent une ou plusieurs expressions régulières qui autorisent ou refusent des hiérarchies et deny-configuration des instructions de configuration spécifiques. Les allow-configuration instructions et sont prioritaires sur les indicateurs d’autorisation et donnent à l’administrateur un contrôle plus fin sur les hiérarchies et les instructions que l’utilisateur peut afficher et deny-configuration configurer.

Cette rubrique explique comment définir les privilèges d’accès à l’aide allow-configuration des instructions et deny-configuration en montrant des exemples de configurations de classe de connexion qui utilisent ces instructions. Les exemples 1 à 3 créent des classes de connexion qui permettent aux utilisateurs d’accéder à toutes les commandes et instructions, à l’exception de celles définies dans l’instruction deny-configuration .

Notez que le bit d’autorisation et l’indicateur d’autorisation sont utilisés de manière interchangeable.

Exemple 1

Pour créer une classe de connexion qui permet à l’utilisateur d’exécuter toutes les commandes et de tout configurer à l’exception des paramètres telnet :

  1. Définissez les autorisations de la classe de connexion de l’utilisateur sur all.
  2. Incluez l’énoncé suivant deny-configuration .

Exemple 2

Pour créer une classe de connexion qui permet à l’utilisateur d’exécuter toutes les commandes et de tout configurer, à l’exception des instructions de toute classe de connexion dont le nom commence par « m » :

  1. Définissez les autorisations de la classe de connexion de l’utilisateur sur all.

  2. Incluez l’énoncé suivant deny-configuration .

Exemple 3

Pour créer une classe de connexion qui permet à l’utilisateur d’exécuter toutes les commandes et de tout configurer à l’exception des [edit system login class] niveaux hiérarchiques ou [edit system services] :

  1. Définissez les autorisations de la classe de connexion de l’utilisateur sur all.

  2. Incluez l’énoncé suivant deny-configuration :

Les exemples suivants montrent comment utiliser les instructions et deny-configuration pour déterminer les autorisations inverses les allow-configuration unes des autres pour le niveau hiérarchique[edit system services].

Exemple 4

Pour créer une classe de connexion qui permet à l’utilisateur de disposer de privilèges de configuration complets uniquement au niveau de la [edit system services] hiérarchie :

  1. Définissez les autorisations de la classe de connexion de l’utilisateur sur configure.

  2. Incluez l’énoncé suivant allow-configuration :

Exemple 5

Pour créer une classe de connexion qui accorde à l’utilisateur des autorisations complètes pour toutes les commandes et toutes les hiérarchies de configuration, à l’exception [edit system services] du niveau hiérarchique :

  1. Définissez les autorisations de la classe de connexion de l’utilisateur sur all.

  2. Incluez l’énoncé suivant deny-configuration .

Exemple : Utiliser la logique additive avec des expressions régulières pour spécifier des privilèges d’accès

Cet exemple montre comment utiliser la logique additive lors de l’utilisation d’expressions régulières pour configurer des privilèges d’accès à la configuration.

Conditions préalables

Cet exemple utilise un périphérique exécutant Junos OS version 16.1 ou ultérieure.

Présentation

Vous pouvez définir des expressions régulières pour contrôler qui peut apporter des modifications à la configuration et ce qu’ils peuvent changer. Ces expressions régulières indiquent des hiérarchies de configuration spécifiques auxquelles les utilisateurs d’une classe de connexion sont autorisés à accéder. Par exemple, vous pouvez définir des expressions régulières qui permettent aux utilisateurs de modifier un groupe d’instances de routage et définir des expressions régulières qui empêchent les utilisateurs d’apporter des modifications à d’autres instances de routage ou à d’autres niveaux de configuration. Vous définissez les expressions régulières en configurant les allow-configuration-regexps instructions et deny-configuration-regexps d’une classe de connexion.

Par défaut, l’instruction est prioritaire sur l’instruction deny-configuration-regexpsallow-configuration-regexps . Si une hiérarchie de configuration apparaît dans une instruction pour une deny-configuration-regexps classe de connexion, elle n’est pas visible par les utilisateurs de cette classe, quel que soit le contenu de l’instruction allow-configuration-regexps . Si une hiérarchie de configuration n’apparaît pas dans une instruction, elle est visible par les utilisateurs de cette classe si elle apparaît dans une deny-configuration-regexpsallow-configuration-regexps instruction.

Vous pouvez modifier ce comportement par défaut en activant la logique additive pour les *-configuration-regexps instructions. Lorsque vous activez la logique additive, l’instruction est prioritaire sur l’instruction allow-configuration-regexpsdeny-configuration-regexps .

Ainsi, si l’instruction refuse l’accès à toutes les hiérarchies de configuration à un niveau donné (protocoles .*) mais que l’instruction autorise l’accès à une sous-hiérarchie (protocoles bgp .*), alors par défaut l’appareil refuse l’accès aux hiérarchies aux utilisateurs de cette classe de connexion car l’instruction deny-configuration-regexpsallow-configuration-regexpsdeny-configuration-regexps est prioritaire. Toutefois, si vous activez la logique additive, l’appareil autorise l’accès à la sous-hiérarchie spécifiée pour les utilisateurs de cette classe de connexion, car le allow-configuration-regexps est prioritaire dans ce cas.

Configuration

Procédure étape par étape

Pour activer la logique additive afin d’autoriser explicitement les utilisateurs d’une classe de connexion donnée à accéder à une ou plusieurs hiérarchies de configuration individuelles :

  1. Incluez l’instruction et refusez explicitement l’accès deny-configuration-regexps aux hiérarchies de configuration.

    Par exemple :

  2. Incluez l’instruction allow-configuration-regexps et définissez des expressions régulières pour les hiérarchies spécifiques à autoriser.

    Par exemple :

  3. Activez la logique additive pour les expressions régulières et deny-configuration-regexps les allow-configuration-regexps expressions régulières.

  4. Attribuez la classe de connexion à un ou plusieurs utilisateurs.

  5. Validez vos modifications.

    Les utilisateurs affectés à cette classe de connexion ont accès aux hiérarchies de configuration incluses dans l’instruction, mais n’ont pas accès aux autres hiérarchies spécifiées dans l’instruction allow-configuration-regexpsdeny-configuration-regexps .

REMARQUE :

Lorsque vous configurez l’instructionregex-additive-logic, le changement de comportement s’applique à toutes les instructions et deny-configuration-regexps présentes dans toutes les allow-configuration-regexps classes de connexion. Si vous activez la logique additive, vous devez évaluer l’impact des instructions existantes et mettre à jour les expressions régulières de ces instructions le cas échéant.

Exemples

Utiliser des expressions régulières avec la logique additive

But

Cette section fournit des exemples d’expressions régulières qui utilisent la logique additive pour vous donner des idées pour créer des configurations appropriées à votre système.

Autoriser des instances de routage spécifiques

L’exemple de classe login suivant inclut une expression régulière qui permet de configurer des instances de routage dont le nom commence par ; par CUST-VRF-exemple, , , , CUST-VRF-1CUST-VRF-25CUST-VRF-100etc. L’exemple inclut également une expression régulière qui empêche la configuration de toute instance de routage.

Par défaut, l’instruction deny-configuration-regexps est prioritaire et la configuration précédente empêche les utilisateurs de la classe de connexion de configurer des instances de routage, quel que soit leur nom.

Toutefois, si vous configurez l’instruction suivante, elle allow-configuration-regexps est prioritaire. Ainsi, les utilisateurs peuvent configurer des instances de routage dont le nom commence par CUST-VRF-, mais ils ne peuvent pas configurer d’autres instances de routage.

Autoriser la configuration BGP Peer uniquement

L’exemple de classe de connexion suivant inclut des expressions régulières qui empêchent la configuration au niveau de la hiérarchie, mais autorisent la [edit protocols] configuration des homologues BGP :

Par défaut, la configuration précédente empêche les utilisateurs de la classe de connexion d’apporter des modifications aux hiérarchies sous [edit protocols].

Toutefois, si vous configurez l’instruction suivante, les utilisateurs de la classe de connexion peuvent apporter des modifications aux homologues BGP, mais ils ne peuvent pas configurer d’autres protocoles ou d’autres instructions BGP en dehors du niveau hiérarchique autorisé.

Vérification

Pour vérifier que vous avez correctement défini les privilèges d’accès :

  1. Configurez une classe de connexion et validez les modifications.

  2. Affectez la classe de connexion à un usernamefichier .

  3. Connectez-vous en tant qu’assigné username avec la nouvelle classe de connexion.

  4. Essayez de configurer les niveaux hiérarchiques autorisés.

    • Vous devriez être en mesure de configurer les instructions dans les niveaux hiérarchiques qui ont été autorisés.

    • Les niveaux hiérarchiques refusés ne doivent pas être visibles.

    • Toutes les expressions autorisées ou refusées doivent avoir la priorité sur toutes les autorisations accordées avec l’instruction permissions .

Exemple : Configurer les autorisations utilisateur avec des privilèges d’accès pour les commandes en mode opérationnel

Cet exemple montre comment configurer des classes de connexion personnalisées et attribuer des privilèges d’accès aux commandes en mode opérationnel. Les utilisateurs de la classe login ne peuvent exécuter que les commandes auxquelles ils ont accès. Cela empêche les utilisateurs non autorisés d’exécuter des commandes sensibles qui pourraient endommager le réseau.

Conditions préalables

Cet exemple utilise les composants matériels et logiciels suivants :

  • Un équipement Juniper Networks

  • Un serveur TACACS+ (ou RADIUS)

Avant de commencer, établissez une connexion TCP entre l’appareil et le serveur TACACS+. Dans le cas du serveur RADIUS, établissez une connexion UDP entre le périphérique et le serveur RADIUS.

Vue d’ensemble et topologie

Figure 1 illustre une topologie simple, où le routeur R1 est un équipement Juniper Networks et dispose d’une connexion TCP établie avec un serveur TACACS+.

Figure 1 : TopologieTopologie

Cet exemple configure R1 avec trois classes de connexion personnalisées : Classe 1, Classe 2 et Classe 3. Chaque classe définit des privilèges d’accès pour l’utilisateur en configurant l’instruction et en définissant des expressions régulières étendues à l’aide permissions des allow-commands instructions and deny-commands .

L’objectif de chaque classe de connexion est le suivant :

  • Class1: définit les privilèges d’accès de l’utilisateur à l’aide de l’instruction allow-commands uniquement. Cette classe de connexion fournit des autorisations utilisateur au niveau de l’opérateur et l’autorisation de redémarrer l’appareil.

  • Class2: définit les privilèges d’accès de l’utilisateur à l’aide de l’instruction deny-commands uniquement. Cette classe de connexion fournit des autorisations utilisateur au niveau de l’opérateur et refuse l’accès aux set commandes.

  • Class3: définit les privilèges d’accès de l’utilisateur à l’aide des allow-commands instructions et deny-commands . Cette classe de connexion fournit des autorisations et des autorisations utilisateur au niveau du superutilisateur pour accéder aux interfaces et afficher les informations sur les périphériques. Il refuse également l’accès edit aux commandes et configure .

Le routeur R1 a trois utilisateurs différents, User1, User2 et User3 affectés aux classes de connexion Class1, Class2 et Class3, respectivement.

Configuration

Configuration rapide de l’interface de ligne de commande

Pour configurer rapidement cet exemple, copiez les commandes suivantes, collez-les dans un fichier texte, supprimez les sauts de ligne, modifiez tous les détails nécessaires pour qu’ils correspondent à la configuration de votre réseau, copiez et collez les commandes dans l’interface de ligne de commande au niveau de la hiérarchie, puis passez commit en mode de [edit] configuration.

R1

Configurer les paramètres d’authentification pour le routeur R1

Procédure étape par étape

Pour configurer l’authentification du routeur R1 :

  1. Configurez l’ordre dans lequel R1 tente d’authentifier l’utilisateur. Dans cet exemple, l’authentification du serveur TACACS+ est la première, suivie de l’authentification du serveur RADIUS, puis du mot de passe local.

  2. Configurez le serveur TACACS+.

  3. Configurez le serveur RADIUS.

  4. Configurez les paramètres comptables R1.

Configurer les privilèges d’accès à l’aide de l’instruction allow-commands (Class1)

Procédure étape par étape

Pour spécifier des expressions régulières à l’aide de l’instruction allow-commands :

  1. Configurez la classe de connexion Class1 et attribuez des autorisations utilisateur au niveau de l’opérateur.

  2. Configurez l’expression régulière pour permettre aux utilisateurs de la classe de redémarrer l’appareil allow-commands .

  3. Configurez le compte d’utilisateur pour la classe de connexion Class1.

Configurer les privilèges d’accès à l’aide de l’instruction deny-commands (classe 2)

Procédure étape par étape

Pour spécifier des expressions régulières à l’aide de l’instruction deny-commands :

  1. Configurez la classe de connexion Class2 et attribuez des autorisations utilisateur au niveau de l’opérateur.

  2. Configurez l’expression régulière pour empêcher les utilisateurs de la classe d’exécuter deny-commandsset des commandes.

  3. Configurez le compte d’utilisateur pour la classe de connexion Class2.

Configurer les privilèges d’accès à l’aide des instructions allow-commands et deny-commands (classe 3)

Procédure étape par étape

Pour spécifier des expressions régulières à l’aide des allow-commands instructions et deny-commands :

  1. Configurez la classe de connexion Class3 et attribuez des autorisations au niveau du superutilisateur.

  2. Configurez l’expression régulière pour empêcher les utilisateurs de la classe d’exécuter deny-commands des commandes.

  3. Configurez l’expression régulière pour permettre aux utilisateurs d’entrer allow-commands en mode de configuration.

  4. Configurez le compte d’utilisateur pour la classe de connexion Class3.

Résultats

En mode configuration, confirmez votre configuration en entrant la show system commande. Si la sortie n’affiche pas la configuration prévue, répétez les instructions de cet exemple pour corriger la configuration.

Vérification

Connectez-vous en tant que nom d’utilisateur attribué à la nouvelle classe de connexion et vérifiez que la configuration fonctionne correctement.

Vérification de la configuration de classe 1

But

Vérifiez que les autorisations et les commandes autorisées dans la classe de connexion Class1 fonctionnent.

Action

En mode opérationnel, exécutez la show system users commande.

En mode opérationnel, exécutez la request system reboot commande.

Sens

La classe de connexion Class1 à laquelle User1 est affecté dispose d’autorisations utilisateur au niveau de l’opérateur et permet aux utilisateurs de la classe d’exécuter la request system reboot commande.

Les indicateurs d’autorisation suivants sont spécifiés dans la classe de connexion opérateur prédéfinie :

  • clear: permet d’utiliser clear des commandes pour effacer (supprimer) les informations que l’appareil apprend du réseau et stocke dans diverses bases de données réseau.

  • network: permet d’accéder au réseau à l’aide des pingcommandes , ssh, telnetet traceroute .

  • reset: permet de redémarrer les processus logiciels à l’aide de la restart commande.

  • trace: permet d’afficher les paramètres du fichier de trace et de configurer les propriétés du fichier de trace.

  • view—Peut utiliser diverses commandes pour afficher les valeurs et statistiques actuelles à l’échelle du système, de la table de routage et du protocole. Impossible d’afficher la configuration secrète.

Pour la classe de connexion Class1, en plus des autorisations utilisateur mentionnées ci-dessus, User1 peut exécuter la request system reboot commande. La première sortie affiche les autorisations d’affichage en tant qu’opérateur, et la seconde sortie montre que la seule request system commande que User1 peut exécuter en tant qu’opérateur est la request system reboot commande.

Vérification de la configuration de classe 2

But

Vérifiez que les autorisations et les commandes autorisées pour la classe de connexion Class2 fonctionnent.

Action

En mode opérationnel, exécutez la ping commande.

À partir de l’invite de la CLI, vérifiez les commandes disponibles.

À partir de l’invite de la CLI, exécutez n’importe quelle commande définie.

Sens

La classe de connexion Class2 à laquelle User2 est affecté dispose d’autorisations utilisateur au niveau de l’opérateur et refuse l’accès à toutes les set commandes.

Les indicateurs d’autorisation spécifiés pour la classe de connexion de l’opérateur prédéfinie sont les mêmes que ceux spécifiés pour la classe 1.

Vérification de la configuration de classe 3

But

Vérifiez que les autorisations et les commandes autorisées pour la classe de connexion Class3 fonctionnent.

Action

En mode opérationnel, vérifiez les commandes disponibles.

Entrez en mode de configuration.

Sens

La classe de connexion Class3 à laquelle User3 est affecté dispose d’autorisations de superutilisateur (all), mais cette classe permet uniquement aux utilisateurs d’exécuter la configure commande. La classe refuse l’accès à toutes les autres commandes du mode opérationnel. Étant donné que les expressions régulières spécifiées dans les instructions sont prioritaires sur les autorisations de l’utilisateur, User3 sur R1 n’a accès qu’au mode de configuration et se voit refuser l’accès à toutes les allow/deny-commands autres commandes du mode opérationnel.

Exemple : Configurer les autorisations utilisateur avec des privilèges d’accès pour les instructions de configuration et les hiérarchies

Cet exemple montre comment configurer des classes de connexion personnalisées et attribuer des privilèges d’accès à des hiérarchies de configuration spécifiques. Les utilisateurs de la classe de connexion peuvent afficher et modifier uniquement les instructions de configuration et les hiérarchies auxquelles ils ont accès. Cela empêche les utilisateurs non autorisés de modifier les configurations des appareils qui pourraient endommager le réseau.

Conditions préalables

Cet exemple utilise les composants matériels et logiciels suivants :

  • Un équipement Juniper Networks

  • Un serveur TACACS+ (ou RADIUS)

Avant de commencer, établissez une connexion TCP entre l’appareil et le serveur TACACS+. Dans le cas du serveur RADIUS, établissez une connexion UDP entre le périphérique et le serveur RADIUS.

Vue d’ensemble et topologie

Figure 2 illustre une topologie simple, où le routeur R1 est un équipement Juniper Networks et dispose d’une connexion TCP établie avec un serveur TACACS+.

Figure 2 : TopologieTopologie

Cet exemple configure R1 avec deux classes de connexion personnalisées : Classe 1 et Classe 2. Chaque classe définit des privilèges d’accès pour l’utilisateur en configurant l’instruction et en définissant des expressions régulières étendues à l’aide permissions des allow-configurationinstructions , , deny-configurationallow-configuration-regexpset deny-configuration-regexps .

L’objectif de chaque classe de connexion est le suivant :

  • Class1: définit les privilèges d’accès de l’utilisateur à l’aide des allow-configuration instructions and deny-configuration . Cette classe de connexion permet de configurer la hiérarchie uniquement et [edit interfaces] refuse tous les autres accès sur l’appareil. Pour ce faire, les autorisations de l’utilisateur incluent configure de fournir un accès à la configuration. En outre, l’instruction autorise l’accès à la configuration des interfaces, et l’instruction refuse l’accès allow-configurationdeny-configuration à toutes les autres hiérarchies de configuration. Étant donné que l’instruction allow est prioritaire sur l’instruction refus, les utilisateurs affectés à la classe de connexion Class1 ne peuvent accéder qu’au niveau hiérarchique [edit interfaces] .

  • Class2: définit les privilèges d’accès de l’utilisateur à l’aide des allow-configuration-regexps instructions and deny-configuration-regexps . Cette classe de connexion fournit des autorisations utilisateur au niveau du superutilisateur et autorise explicitement la configuration sous plusieurs niveaux hiérarchiques pour les interfaces. Il refuse également l’accès aux niveaux hiérarchiques [edit system] et [edit protocols] .

Le routeur R1 a deux utilisateurs, User1 et User2, affectés aux classes de connexion Class1 et Class2, respectivement.

Configuration

Configuration rapide de l’interface de ligne de commande

Pour configurer rapidement cet exemple, copiez les commandes suivantes, collez-les dans un fichier texte, supprimez les sauts de ligne, modifiez tous les détails nécessaires pour qu’ils correspondent à la configuration de votre réseau, copiez et collez les commandes dans l’interface de ligne de commande au niveau de la hiérarchie, puis passez commit en mode de [edit] configuration.

R1

Configurer les paramètres d’authentification pour le routeur R1

Procédure étape par étape

Pour configurer l’authentification du routeur R1 :

  1. Configurez l’ordre dans lequel R1 tente d’authentifier l’utilisateur. Dans cet exemple, l’authentification du serveur TACACS+ est la première, suivie de l’authentification du serveur RADIUS, puis du mot de passe local.

  2. Configurez le serveur TACACS+.

  3. Configurez le serveur RADIUS.

  4. Configurez les paramètres comptables R1.

Configurer les privilèges d’accès à l’aide des instructions allow-configuration et deny-configuration (classe 1)Configure Access Privileges with the allow-configuration and deny-configuration Statements (Class1)

Procédure étape par étape

Pour spécifier des expressions régulières à l’aide des allow-configuration instructions and deny-configuration :

  1. Configurez la classe de connexion Class1 avec configure des autorisations.

  2. Configurez l’expression régulière pour permettre aux utilisateurs de la classe d’afficher allow-configuration et de modifier une [edit interfaces] partie du niveau hiérarchique.

  3. Configurez l’expression régulière pour refuser l’accès deny-configuration à toutes les hiérarchies de configuration.

  4. Configurez le compte d’utilisateur pour la classe de connexion Class1.

Configurer les privilèges d’accès à l’aide des instructions allow-configuration-regexps et deny-configuration-regexps (classe 2)

Procédure étape par étape

Pour spécifier des expressions régulières à l’aide des allow-configuration-regexps instructions and deny-configuration-regexps :

  1. Configurez la classe de connexion Class2 et attribuez des autorisations de superutilisateur (tous).

  2. Configurez l’expression régulière pour permettre aux utilisateurs de la classe d’accéder allow-configuration-regexps à plusieurs hiérarchies sous le niveau hiérarchique [edit interfaces] .

  3. Configurez l’expression régulière pour empêcher les utilisateurs de la classe d’afficher deny-configuration-regexps ou de modifier la configuration aux niveaux et [edit protocols] de la [edit system] hiérarchie.

  4. Configurez le compte d’utilisateur pour la classe de connexion Class2.

Résultats

En mode configuration, confirmez votre configuration en entrant la show system commande. Si la sortie n’affiche pas la configuration prévue, répétez les instructions de cet exemple pour corriger la configuration.

Vérification

Connectez-vous en tant que nom d’utilisateur attribué à la nouvelle classe de connexion et vérifiez que la configuration fonctionne correctement.

Vérifier la configuration de classe 1

But

Vérifiez que les autorisations autorisées dans la classe de connexion Class1 fonctionnent.

Action

En mode opérationnel, vérifiez les commandes disponibles.

En mode configuration, vérifiez les autorisations de configuration disponibles.

Sens

User1 dispose d’autorisations configure d’utilisateur, comme indiqué dans la première sortie. De plus, en mode configuration, User1 a accès au niveau hiérarchique interfaces , mais uniquement à ce niveau, comme indiqué dans la deuxième sortie.

Vérification de la configuration de classe 2

But

Vérifiez que la configuration de classe 2 fonctionne comme prévu.

Action

En mode configuration, accédez à la interfaces configuration.

En mode configuration, accédez aux system hiérarchies de protocols configuration.

Sens

L’utilisateur 2 est autorisé à configurer les interfaces sur R1, mais il n’est pas autorisé à afficher ou à modifier les [edit system] niveaux hiérarchiques ou [edit protocols] .

Tableau de l'historique des modifications

La prise en charge des fonctionnalités est déterminée par la plateforme et la version que vous utilisez. Utilisez l' Feature Explorer pour déterminer si une fonctionnalité est prise en charge sur votre plateforme.

Version
Description
18.1
À partir de Junos OS version 18.1, les instructions et deny-commands-regexps sont prises en charge pour l’autorisation allow-commands-regexps TACACS+.