Privilèges d’accès utilisateur
Vous (l’administrateur système) accordez aux utilisateurs l’accès ou les autorisations aux commandes et aux niveaux et instructions de la hiérarchie de configuration. Les utilisateurs peuvent exécuter uniquement 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 en mode opérationnel, les instructions de configuration et les hiérarchies autorisées ou refusées pour les 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.
Présentation des niveaux de privilèges d’accès
Chaque commande et instruction de configuration de la CLI de niveau supérieur est associée à un niveau de privilège d’accès. Les utilisateurs peuvent exécuter uniquement 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 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 classe de connexion
- Autoriser et refuser des commandes individuelles et des hiérarchies d’instructions pour les classes de connexion
Indicateurs d’autorisation de classe de connexion
Vous utilisez des indicateurs d’autorisation pour accorder à un utilisateur l’accès aux commandes du mode opérationnel et 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 et aux niveaux de 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 .
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 haut 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 le Tableau 1. Les indicateurs d’autorisation ne sont pas cumulatifs. Pour chaque classe, vous devez énumérer tous les indicateurs d’autorisation nécessaires, y compris view pour afficher les informations et configure entrer en mode de configuration. Deux types d’autorisations contrôlent l’accès d’un utilisateur aux différentes parties de la configuration :
-
Formulaire « simple » : fournit une capacité en lecture seule pour ce type d’autorisation. Un exemple est
interface. -
-controlform : fournit une capacité de lecture et d’écriture pour ce type d’autorisation. Un exemple estinterface-control.
Pour les indicateurs d’autorisation qui accordent l’accès aux niveaux et aux instructions de la hiérarchie de configuration, 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 de la [edit interfaces] hiérarchie. 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.
Le Tableau 1 répertorie les indicateurs d’autorisation de classe login 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 et les niveaux et instructions de hiérarchie de configuration auxquels cet indicateur accorde l’accès.
|
Indicateur d’autorisation |
Descriptif |
|---|---|
|
Peut visualiser la configuration d’accès en mode opérationnel ou en mode configuration. |
|
|
Peut afficher et configurer les informations d’accès au niveau de la |
|
|
Peut afficher les informations du compte utilisateur en mode opérationnel ou en mode configuration. |
|
|
Peut afficher les informations des comptes utilisateurs et les configurer au niveau de la |
|
|
Peut accéder à toutes les commandes du mode opérationnel et des commandes du mode de configuration. Peut modifier la configuration à tous les niveaux de la hiérarchie de configuration. |
|
|
Peut effacer (supprimer) les informations que l’appareil apprend du réseau et stocke dans diverses bases de données réseau (à l’aide des |
|
|
Peut entrer en mode configuration (à l’aide de la |
|
|
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 |
|
|
Peut afficher les commandes de débogage de champ. Réservé à l’assistance au débogage. |
|
|
Peut afficher la configuration du filtre de pare-feu en mode opérationnel ou en mode configuration. |
|
|
Peut afficher et configurer les informations de filtre de pare-feu au niveau de la |
|
|
Peut lire et écrire sur le support amovible. |
|
|
Peut afficher la configuration débit-tap en mode opérationnel ou en mode configuration. |
|
|
Peut afficher et configurer les informations de tapotement de flux au niveau de la |
|
|
Peut faire des requêtes de débit au routeur ou au commutateur. Par exemple, un client DTCP (Dynamic Tasking Control Protocol) doit être
Remarque :
L’option |
|
|
Peut afficher les données du profileur. |
|
|
Peut afficher la configuration de l’interface en mode opérationnel et en mode configuration. |
|
|
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 :
|
|
|
Peut effectuer la maintenance du système, y compris le démarrage d’un shell local sur l’appareil et le fait de devenir le superutilisateur dans l’interpréteur de commandes (à l’aide de la |
|
|
Peut accéder au réseau à l’aide des |
|
|
Peut afficher la configuration de la |
|
|
Peut modifier la configuration de la |
|
|
Peut redémarrer les processus logiciels à l’aide de la |
|
|
Peut utiliser la |
|
|
Permet d’afficher les informations générales de configuration du routage, du protocole de routage et de la politique de routage en mode configuration et en mode opérationnel. |
|
|
Peut afficher et configurer le routage général au niveau de la hiérarchie, les protocoles de routage au niveau de la |
|
|
Peut afficher les mots de passe et autres clés d’authentification dans la configuration. |
|
|
Peut afficher et modifier les mots de passe et autres clés d’authentification dans la configuration. |
|
|
Peut afficher les informations de configuration de sécurité en mode opérationnel et en mode configuration. |
|
|
Peut afficher et configurer les informations de sécurité au niveau de la |
|
|
Peut démarrer un shell local sur le routeur ou le commutateur à l’aide de la |
|
|
Peut afficher les informations de configuration SNMP (Simple Network Management Protocol) en mode opérationnel ou en mode de configuration. |
|
|
Peut afficher et modifier les informations de configuration SNMP au niveau de la |
|
|
|
Peut afficher les informations de configuration du stockage Fiber Channel au niveau de la |
storage-control |
Peut modifier les informations de configuration du stockage Fiber Channel au niveau de la |
|
Peut afficher les informations au niveau du système en mode opérationnel ou en mode configuration. |
|
|
Peut afficher et modifier les informations de configuration au niveau du système au niveau de la |
|
|
Peut afficher les paramètres du fichier de trace. |
|
|
Peut modifier les paramètres et les propriétés du fichier de trace. |
|
unified-edge |
Peut visualiser la configuration de périphérie unifiée au niveau de la |
unified-edge-control |
Peut modifier la configuration associée au dispositif Edge unifié au niveau de la |
|
Peut utiliser diverses commandes pour afficher les valeurs et les statistiques actuelles à l’échelle du système, de la table de routage et spécifiques au protocole. Impossible d’afficher la configuration secrète. |
|
|
Peut afficher toute la configuration, à l’exception des secrets, des scripts système et des options d’événement.
Remarque :
Seuls les utilisateurs autorisés peuvent afficher la configuration du script de validation, du script op ou du |
Autoriser et refuser des commandes individuelles et des hiérarchies d’instructions pour les classes de connexion
Par défaut, toutes les commandes CLI de niveau supérieur et les niveaux de hiérarchie de configuration ont des niveaux de privilèges d’accès associés. Les utilisateurs peuvent exécuter uniquement 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 autoriser ou refuser explicitement l’utilisation de commandes et de hiérarchies d’instructions en mode opérationnel et en mode 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 accordent à un utilisateur l’accès 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 [edit system login class] hiérarchie, vous accordez à l’utilisateur l’accès aux commandes et aux niveaux et instructions de 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 autoriser ou refuser explicitement l’utilisation de commandes et d’instructions en configurant les allow-commandsinstructions , deny-commandsallow-configuration, et pour deny-configuration 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 : Configuration des 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 peuvent exécuter uniquement 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.
Exigences
Aucune configuration spéciale au-delà de l’initialisation de l’appareil n’est requise avant de configurer cet exemple.
Vue d’ensemble
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 de commandes et d’instructions de configuration en mode opérationnel et en mode de configuration. Les utilisateurs peuvent exécuter uniquement 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 accordent à un utilisateur l’accès aux commandes, aux instructions et aux hiérarchies. Les indicateurs d’autorisation ne sont pas cumulatifs. Pour chaque classe de connexion, vous devez énumérer tous les indicateurs d’autorisation nécessaires, y compris view pour afficher les informations et configure passer 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 « simple ») et de lecture et d’écriture (formulaire qui se termine par -control) pour un type d’autorisation.
Les bits d’autorisation de la all classe login ont la priorité 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èges 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 forme de liste séparée par des espaces entre crochets :
[edit system login] user@host# set class class-name permissions permission-flag user@host# set class class-name permissions [flag1 flag2 flag3]
Pour afficher les autorisations disponibles, utilisez l’aide contextuelle de la CLI et tapez un point d’interrogation ( ?) après l’affirmation permissions :
[edit system login] user@host# set class class-name permissions ?
La configuration
Cet exemple configure la classe de connexion. Les utilisateurs de cette classe de connexion peuvent configurer et afficher uniquement les snmp-admin paramètres SNMP.
Configurer les autorisations des utilisateurs avec les niveaux de privilèges d’accès
Procédure étape par étape
Pour configurer les privilèges d’accès à la classe de connexion :
-
Configurez la classe de
snmp-adminconnexion avec lesconfigureindicateurs ,snmpetsnmp-controlpermission.[edit system login] user@host# set class snmp-admin permissions [configure snmp snmp-control]
Les indicateurs d’autorisation configurés offrent à la fois une capacité de lecture (snmp) et de lecture et d’écriture (snmp-control) pour SNMP, et c’est le seul privilège d’accès autorisé pour cette classe de connexion. Tous les autres privilèges d’accès sont refusés.
-
Créez les comptes d’utilisateur affectés à la classe de
snmp-adminconnexion.[edit system login] user@host# set user snmpuser class snmp-admin authentication plain-text-password New password: Retype new password:
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.
user@host# show system login
class snmp-admin {
permissions [ configure snmp snmp-control ];
}
user snmpuser {
class snmp-admin;
authentication {
encrypted-password "$ABC123"; ## SECRET-DATA
}
}
Après avoir configuré l’appareil, entrez commit en mode configuration.
Vérification
Connectez-vous à l’aide d’un nom d’utilisateur attribué à la nouvelle classe de connexion et confirmez que la configuration fonctionne correctement.
Vérification de la configuration SNMP
Objet
Vérifiez qu’un utilisateur de la classe de snmp-admin connexion peut configurer SNMP.
Mesures à prendre
En mode configuration, configurez les instructions SNMP au niveau de la [edit snmp] hiérarchie.
[edit snmp] user@host# set name device1 user@host# set description switch1 user@host# set location Lab1 user@host# set contact example.com user@host# commit
Signification
L’utilisateur de la classe de connexion peut configurer les snmp-admin paramètres SNMP. L’utilisateur peut configurer ces paramètres car les indicateurs d’autorisation spécifiés pour cette classe incluent à la fois des bits d’autorisation snmp (capacités de lecture) et snmp-control (capacités de lecture et d’écriture).
Vérification de la configuration non-SNMP
Objet
Vérifiez qu’un utilisateur de la classe login ne peut pas modifier les snmp-admin instructions de configuration non-SNMP.
Mesures à prendre
En mode configuration, essayez de configurer une instruction non SNMP, telle qu’une instruction dans la interfaces hiérarchie.
[edit] user@host# edit interfaces Syntax error, expecting <statement> or <identifier>.
Signification
L’utilisateur de la snmp-admin classe login ne peut pas configurer la [edit interfaces] hiérarchie car les indicateurs d’autorisation spécifiés pour cette classe ne le permettent pas. Dans ce cas, la CLI émet un message d’erreur.
Expressions régulières pour autoriser ou refuser les commandes, les instructions de configuration et les hiérarchies en mode opérationnel
Cette rubrique contient les sections suivantes :
- Comprendre les instructions autoriser et refuser
- Présentation de la syntaxe de l’instruction autoriser et refuser
- Comprendre la précédence et la correspondance des instructions autoriser et refuser
- Comprendre les règles des instructions autoriser et refuser
- Comprendre les différences pour les instructions *-regexps
- Utilisation d’expressions régulières sur des serveurs d’autorisation distants
- Spécifier des expressions régulières
- Opérateurs d’expressions régulières
- Exemples d’expressions régulières
Comprendre les instructions autoriser et refuser
Chaque hiérarchie de commandes et d’instructions de configuration de la CLI 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 de commandes en mode opérationnel et en mode configuration et de hiérarchies de configuration et d’instructions qui seraient autrement autorisées ou refusées par un niveau de privilège. Les utilisateurs peuvent exécuter uniquement 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 et de hiérarchies de configuration spécifiques 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-commandsetdeny-commands: autoriser ou refuser l’accès aux commandes du mode opérationnel et du mode de configuration. -
allow-configurationetdeny-configuration: autoriser ou refuser 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 complètes ou d’expressions génériques sont configurées, ce qui peut affecter négativement les performances.
-
allow-commands-regexpsetdeny-commands-regexps: autorise ou refuse l’accès à des commandes particulières à l’aide de chaînes d’expressions régulières. -
allow-configuration-regexpsetdeny-configuration-regexps: autorise ou refuse l’accès à des hiérarchies de configuration spécifiques à l’aide de chaînes d’expressions régulières.
Si vos configurations existantes utilisent les allow/deny-commands instructions ou allow/deny-configuration , l’utilisation des mêmes options de configuration avec les instructions ou allow/deny-commands-regexps allow/deny-configuration-regexps peut ne pas produire les mêmes résultats. Les méthodes de recherche et de correspondance diffèrent dans les deux formes de ces déclarations.
L’autorisation explicite des commandes et des hiérarchies d’instructions de configuration à l’aide allow/deny-* des instructions ajoute aux autorisations que l’instruction permissions définit déjà. De même, le refus explicite des commandes et des hiérarchies d’instructions de configuration à l’aide allow/deny-* des instructions supprime les autorisations que l’instruction permissions définit déjà.
Par exemple, dans la configuration suivante, l’autorisation configure permet aux utilisateurs de la classe de connexion de passer en mode configuration. De plus, l’expression allow-configuration permet aux utilisateurs de modifier la configuration au niveau de la hiérarchie et de [edit system services] la valider.
[edit system login class test] user@host# set permissions configure allow-configuration "system services"
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 all , sauf que l’utilisateur ne peut pas afficher ou modifier la configuration au niveau de la [edit system services] hiérarchie :
[edit system login class test] user@host# set permissions all deny-configuration "system services"
Présentation de la syntaxe de l’instruction autoriser et refuser
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 déclarations s’excluent mutuellement avec les allow/deny-commands-regexps instructions, et les déclarations s’excluent allow/deny-configuration mutuellement avec les allow/deny-configuration-regexps instructions. 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 les 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 le symbole de barre verticale ( | ) pour séparer les expressions. N’utilisez pas d’espaces entre les expressions régulières qui sont connectées au symbole de pipe. L’expression complète est entourée de guillemets doubles.
allow-commands "(cmd1)|(cmd2)|(cmdn)" allow-configuration "(config1)|(config2)|(confign)"
Par exemple :
[edit system login class test] user@host# set allow-commands "(ping .*)|(traceroute .*)|(show .*)|(configure .*)|(edit)|(exit)|(commit)|(rollback .*)"
Vous devez utiliser des ancres lorsque vous spécifiez des expressions régulières complexes avec l’instruction allow-commands . Par exemple :
[edit system login] user@host# set class test allow-commands "(^monitor)|(^ping)|(^show)|(^exit)"
Pour définir des privilèges d’accès à certaines 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 complets entre parenthèses ( ) et utilisez le symbole de barre verticale ( | ) pour séparer les expressions. N’utilisez pas d’espaces entre les expressions régulières qui sont connectées au symbole de pipe. L’expression complète est entourée de guillemets doubles.
allow-configuration "(config1)|(config2)|(confign)"
Par exemple :
[edit system login class test] user@host# set deny-configuration "(system login class)|(system services)"
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 expressions à l’aide d’un espace. Placer plusieurs expressions entre crochets [ ]. Par exemple :
[edit system login class test] user@host# set allow-configuration-regexps ["interfaces .* description .*" "interfaces .* unit .* description .*" “interfaces .* unit .* family inet address .*" "interfaces.* disable"]
Les modificateurs tels que set, loget 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 ne correspond.
Configuration correcte :
[edit system login class test] user@host# set deny-commands protocols
Configuration incorrecte :
[edit system login class test] user@host# set deny-commands "set protocols"
Comprendre la précédence et la correspondance des instructions autoriser et refuser
Par défaut, les expressions et allow-configuration régulières allow-commands ont la priorité sur deny-commands les deny-configuration expressions. Par conséquent, si vous configurez la même commande pour les allow-commands deux instructions anddeny-commands, l’opération allow a la priorité sur l’opération de refus. De même, si vous configurez la même instruction pour les allow-configuration deux instructions anddeny-configuration, l’opération allow a la priorité sur l’opération de refus.
Par exemple, la configuration suivante permet à un utilisateur de la test classe login d’installer un logiciel à l’aide de la request system software add commande, même si l’instruction deny-commands inclut la même commande :
[edit system login class test] user@host# set allow-commands "request system software add" user@host# set deny-commands "request system software add"
De même, la configuration suivante permet à un utilisateur du test test de classe login d’afficher et de modifier la hiérarchie de [edit system services] configuration, même si l’instruction deny-configuration inclut la même hiérarchie :
[edit system login class test] user@host# set allow-configuration "system services" user@host# set deny-configuration "system services"
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 test classe login d’exécuter la commit synchronize commande, mais pas la commit commande. En effet, est commit synchronize la correspondance la plus longue entre commit et commit synchronize, et elle est spécifiée pour allow-commands.
[edit system login class test] user@host# set allow-commands "commit synchronize" user@host# set deny-commands commit
La configuration suivante permet à un utilisateur de la test classe login d’exécuter la commit commande, mais pas la commit synchronize commande. En effet, est commit synchronize la correspondance la plus longue entre commit et commit synchronize, et elle est spécifiée pour deny-commands.
[edit system login class test] user@host# set allow-commands commit user@host# set deny-commands "commit synchronize"
Contrairement aux autres instructions, le comportement par défaut des *-regexps instructions est que les deny-commands-regexps expressions et deny-configuration-regexps régulières ont la priorité sur allow-commands-regexps les expressions et allow-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 à avoir la priorité 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 des instructions autoriser et refuser
Les allow/deny-commandsinstructions , allow/deny-configuration, allow/deny-commands-regexps, et allow/deny-configuration-regexps ont la priorité sur les autorisations de la classe de connexion. Lorsque vous configurez ces instructions, les règles suivantes s’appliquent :
-
Les expressions régulières pour
allow-commandset peuvent également inclure lescommitcommandes ,rollbackstatusloadsaveet .updatedeny-commands -
Les bits d’autorisation de
allla classe login ont la priorité sur les expressions régulières étendues lorsqu’un utilisateur émet larollbackcommande avec l’indicateur d’autorisationrollbackactivé. -
Les utilisateurs ne peuvent pas exécuter la commande lors de la
load overridespécification d’une expression régulière étendue. Les utilisateurs peuvent uniquement exécuter lesmergecommandes ,replaceetpatchconfiguration. -
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. En outre, vous ne pouvez pas configurer l’instructionallow-configurationavec 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 allow/deny-configuration déclarations et les allow/deny-configuration-regexps instructions.
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
optionsest la seule expression correspondant au premier jeton de l’instruction.[edit system] login { class test { permissions configure; allow-configuration-regexps .*options; } }La configuration précédente correspond aux instructions suivantes :
-
définir la condition condition des options de stratégie dynamic-db
-
définir routing-options, route static-route statique, saut suivantnext-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
sshest la seule expression correspondante au troisième jeton de l’instruction.[edit system] login { class test { permissions configure; allow-configuration-regexps ".* .* .*ssh"; } }Dans l’exemple précédent, les trois jetons sont respectivement
.*,.*, et.*ssh, .La configuration précédente correspond aux instructions suivantes :
-
nom d’hôte système-nom_d’hôte-ssh
-
SSH de services système
-
Services système sortants-SSH
La configuration précédente ne correspond pas à l’affirmation suivante :
-
Interfaces interface-name Description SSH
-
Il est plus facile d’utiliser l’instruction pour restreindre l’accès à la deny-configuration configuration que d’utiliser l’instruction deny-configuration-regexps . Le Tableau 2 illustre l’utilisation des deny-configuration instructions et deny-configuration-regexps dans différentes configurations pour obtenir le même résultat en limitant l’accès à une configuration particulière.
|
Configuration refusée |
Utilisation : |
Utilisation : |
Résultat |
|
|
[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 :
|
|
|
[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 :
|
Bien que les allow/deny-configuration 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-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 de mode opérationnel et de 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-commands-regexps allow/deny-configurationet au allow/deny-configuration-regexps niveau de la [edit system login class class-name] hiérarchie. Vous spécifiez 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.
À partir de la version 18.1 de Junos OS, 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 , , ou deny-configuration , vous configurez les expressions régulières entre parenthèses et les séparez à l’aide du symbole de deny-commandsallow-configurationbarre verticale. Vous placez l’expression complète entre guillemets doubles. Par exemple, vous pouvez spécifier plusieurs allow-commands paramètres avec la syntaxe suivante :
allow-commands "(cmd1)|(cmd2)|(cmdn)"
Le serveur d’autorisation RADIUS utilise les attributs et la syntaxe suivants :
Juniper-Allow-Commands += "(cmd1)|(cmd2)|(cmd3)", Juniper-Deny-Commands += "(cmd1)|(cmd2)", Juniper-Allow-Configuration += "(config1)|(config2)", Juniper-Deny-Configuration += "(config1)|(config2)",
Le serveur d’autorisation TACACS+ utilise les attributs et la syntaxe suivants :
allow-commands = "(cmd1)|(cmd2)|(cmdn)" deny-commands = "(cmd1)|(cmd2)|(cmdn)" allow-configuration = "(config1)|(config2)|(confign)" deny-configuration = "(config1)|(config2)|(confign)"
Lorsque vous spécifiez plusieurs expressions régulières dans une configuration locale à l’aide des allow-commands-regexpsinstructions , deny-commands-regexpsallow-configuration-regexps, ou deny-configuration-regexps , vous configurez 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 :
allow-commands-regexps [ "cmd1" "cmd2" "cmdn" ]
Le serveur d’autorisation RADIUS utilise les attributs et la syntaxe suivants :
Juniper-Allow-Configuration-Regexps += "(config1)|(config2)|(confign)", Juniper-Deny-Configuration-Regexps += "(config1)|(config2)|(confign)",
Le serveur d’autorisation TACACS+ utilise les attributs et la syntaxe suivants :
allow-commands-regexps = "(cmd1)|(cmd2)|(cmdn)" deny-commands-regexps = "(cmd1)|(cmd2)|(cmdn)" allow-configuration-regexps = "(config1)|(config2)|(confign)" deny-configuration-regexps = "(config1)|(config2)|(confign)"
Les serveurs RADIUS et TACACS+ prennent également en charge une syntaxe simplifiée dans laquelle vous spécifiez chaque expression individuelle sur une ligne distincte. Par exemple, la syntaxe simplifiée du serveur RADIUS est la suivante :
Juniper-Allow-Commands += "cmd1", Juniper-Allow-Commands += "cmd2", Juniper-Allow-Commands += "cmdn",
De même, la syntaxe simplifiée du serveur TACACS+ est la suivante :
allow-commands-regexps1 = "cmd1" allow-commands-regexps2 = "cmd2" allow-commands-regexpsn = "cmdn"
Le tableau 3 différencie la configuration d’autorisation locale et la configuration d’autorisation de serveur TACACS+ à 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"
}
}
|
-
Vous devez autoriser explicitement l’accès au mode NETCONF, localement ou à distance, en exécutant les trois commandes suivantes :
xml-mode,netconf, etneed-trailer. -
Lorsque vous utilisez l’instruction
deny-configuration = ".*", vous devez autoriser toutes les configurations souhaitées à l’aide de l’instructionallow-configuration. Toutefois, cette configuration peut affecter la limite de mémoire tampon autorisée pour les expressions régulières pour l’instructionallow-configuration. Si cette limite est dépassée, la configuration autorisée peut ne pas fonctionner.
Spécifier des expressions régulières
Lorsque vous spécifiez des expressions régulières pour les commandes et les instructions de configuration, portez une attention particulière aux exemples suivants. Une expression régulière avec une syntaxe incorrecte peut ne pas produire les résultats souhaités, même si la configuration est validée sans aucune 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 pour l’exécution de la commande ou de l’instruction complète. Le 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] and [edit vlans] .
|
Déclaration |
Expression régulière |
Configuration Notes |
|---|---|---|
|
[edit interfaces] La [edit] user@host# set interfaces interface-name unit interface-unit-number |
L’instruction Par conséquent, l’expression régulière requise pour refuser la [edit system login class class-name] user@host# set permissions configure user@host# set deny-configuration "interfaces .* unit .*" |
|
|
[edit vlans] La [edit] user@host# set vlans vlan-name vlan-id vlan-id |
Ici, l’instruction Par conséquent, l’expression régulière requise pour autoriser la [edit system login class class-name] user@host# set permissions configure user@host# set allow-configuration "vlans .* vlan-id .*" |
|
Opérateurs d’expressions régulières
Le Tableau 5 répertorie les opérateurs d’expressions régulières courants que vous pouvez utiliser pour autoriser ou refuser les modes opérationnel et de configuration.
Les expressions régulières de commande implémentent les expressions régulières étendues (modernes), telles que définies dans POSIX 1003.2.
|
Opérateur |
Match |
Exemple |
|---|---|---|
|
| |
L’un des deux ou plusieurs termes séparés par le tuyau. 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, l’accès en mode opérationnel des utilisateurs affectés à la classe de connexion de test est limité aux seules commandes spécifiées dans l’instruction |
|
^ |
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 à la visualisation et à la configuration de la configuration de l’interface. L’instruction Pour le premier filtre, les commandes spécifiées incluent les |
|
$ |
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 afficher la configuration des interfaces en mode configuration. Les utilisateurs peuvent également visualiser la configuration de l’interface à l’aide de la commande du |
|
[ ] |
Gamme 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 conjointement avec les opérateurs de tuyau, 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 |
|
* |
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 |
|
+ |
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 |
|
. |
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 |
|
.* |
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 De même, l’instruction
Remarque :
|
L’opérateur ! d’expression régulière n’est pas pris en charge.
Exemples d’expressions régulières
Le Tableau 6 répertorie les expressions régulières utilisées pour autoriser les options de configuration dans deux hiérarchies de configuration -[edit system ntp server] et [edit protocols rip]- à titre d’exemple pour spécifier des expressions régulières.
Le Tableau 6 ne fournit pas une liste complète de toutes les expressions régulières et de tous les mots-clés pour toutes les instructions de configuration et hiérarchies. Les expressions régulières répertoriées dans le tableau sont validées uniquement pour les hiérarchies d’instructions [edit system ntp server] and [edit protocols rip] .
|
Hiérarchie des instructions |
Expressions régulières |
Configuration autorisée |
Configuration refusée |
|---|---|---|---|
|
|
|||
|
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" ] |
|
|
|
La 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" ] |
|
|
|
Préférer |
[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 .*" ] |
|
|
|
|
|||
|
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 .*" ] |
|
|
|
métrique en 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 .*" ] |
|
|
|
route-timeout 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 .*" ] |
|
|
|
intervalle_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 .*" ] |
|
|
Comment définir des privilèges d’accès à l’aide d’instructions autoriser et refuser la 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-configurationetdeny-configurationles 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 and deny-configuration contiennent une ou plusieurs expressions régulières qui autorisent ou refusent des hiérarchies et des instructions de configuration spécifiques. Les allow-configuration instructions et deny-configuration ont la priorité sur les indicateurs de permission et donnent à l’administrateur un contrôle plus précis sur les hiérarchies et les instructions que l’utilisateur peut afficher et configurer.
Cette rubrique explique comment définir des privilèges d’accès à l’aide d’instructions allow-configuration 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 sauf les paramètres telnet :
Exemple 2
Pour créer une classe de connexion qui permet à l’utilisateur d’exécuter toutes les commandes et de tout configurer sauf les instructions dans toute classe de connexion dont le nom commence par « m » :
-
Définissez les autorisations de classe de connexion de l’utilisateur sur
all.[edit system login] user@host# set class all-except-login-class-m permissions all
-
Incluez l’affirmation suivante
deny-configuration.[edit system login class all-except-login-class-m] user@host# set deny-configuration "system login class m.*"
Exemple 3
Pour créer une classe de connexion qui permet à l’utilisateur d’exécuter toutes les commandes et de tout configurer sauf les niveaux hiérarchiques ou [edit system services] :[edit system login class]
-
Définissez les autorisations de classe de connexion de l’utilisateur sur
all.[edit system login] user@host# set class all-except-login-class-or-system-services permissions all
-
Incluez l’affirmation suivante
deny-configuration:[edit system login class all-except-login-class-or-system-services] user@host# set deny-configuration "(system login class) | (system services)"
Les exemples suivants montrent comment utiliser les instructions et deny-configuration pour déterminer les allow-configuration autorisations inverses les unes par rapport aux 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 :
-
Définissez les autorisations de classe de connexion de l’utilisateur sur
configure.[edit system login] user@host# set class configure-only-system-services permissions configure
-
Incluez l’affirmation suivante
allow-configuration:[edit system login class configure-only-system-services] user@host# set allow-configuration "system services"
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 du niveau hiérarchique [edit system services] :
-
Définissez les autorisations de classe de connexion de l’utilisateur sur
all.[edit system login] user@host# set class all-except-system-services permissions all
-
Incluez l’affirmation suivante
deny-configuration.[edit system login class all-except-system-services] user@host# set deny-configuration "system services"
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.
Exigences
Cet exemple utilise un équipement exécutant Junos OS version 16.1 ou ultérieure.
Vue d’ensemble
Vous pouvez définir des expressions régulières pour contrôler qui peut apporter des modifications à la configuration et ce qu’elles 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 pour une classe de connexion.
Par défaut, l’instruction deny-configuration-regexps est prioritaire sur l’instruction allow-configuration-regexps . Si une hiérarchie de configuration apparaît dans une deny-configuration-regexps instruction pour une classe login, 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 deny-configuration-regexps instruction, elle est visible par les utilisateurs de cette classe si elle apparaît dans une allow-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 allow-configuration-regexps est prioritaire sur l’instruction deny-configuration-regexps .
Ainsi, si l’instruction refuse l’accès deny-configuration-regexps à toutes les hiérarchies de configuration à un niveau donné (protocoles .*) mais que l’instruction allow-configuration-regexps 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-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 a la priorité dans ce cas.
La 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 :
-
Incluez l’instruction
deny-configuration-regexpset refusez explicitement l’accès aux hiérarchies de configuration.[edit system login class class-name] user@host# set deny-configuration-regexps ["regular expression 1" "regular expression 2" "regular expression 3"]
Par exemple :
[edit system login class class-name] user@host# set deny-configuration-regexps "protocols .*"
-
Incluez l’instruction et définissez des
allow-configuration-regexpsexpressions régulières pour les hiérarchies spécifiques à autoriser.[edit system login class class-name] user@host# set allow-configuration-regexps ["regular expression 1" "regular expression 2" "regular expression 3"]
Par exemple :
[edit system login class class-name] user@host# set allow-configuration-regexps ["protocols bgp .*" "protocols ospf .*"]
-
Activer la logique additive pour les expressions et
deny-configuration-regexpslesallow-configuration-regexpsexpressions régulières.[edit system] user@host# set regex-additive-logic
-
Attribuez la classe de connexion à un ou plusieurs utilisateurs.
[edit system login] user@host# set user username class class-name
-
Validez vos modifications.
Les utilisateurs affectés à cette classe de connexion ont accès aux hiérarchies de configuration incluses dans l’instruction
allow-configuration-regexps, mais n’ont pas accès aux autres hiérarchies spécifiées dans l’instructiondeny-configuration-regexps.
Lorsque vous configurez l’instruction regex-additive-logic , le changement de comportement s’applique à toutes les allow-configuration-regexps instructions et présentes deny-configuration-regexps dans toutes les 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 de manière appropriée.
Exemples
Utilisation d’expressions régulières avec la logique additive
Objet
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 de connexion suivant inclut une expression régulière qui permet de configurer des instances de routage dont le nom commence par CUST-VRF-; par exemple, CUST-VRF-1, , CUST-VRF-25CUST-VRF-100, et ainsi de suite. L’exemple inclut également une expression régulière qui empêche la configuration d’instances de routage.
[edit system login class class-name] user@host# set permissions [configure routing-control view view-configuration] user@host# set deny-configuration-regexps "routing-instances .*" user@host# set allow-configuration-regexps "routing-instances CUST-VRF-.* .*"
Par défaut, l’instruction deny-configuration-regexps est prioritaire et la configuration précédente empêche les utilisateurs de la classe login de configurer des instances de routage, quel que soit le nom.
Toutefois, si vous configurez l’instruction suivante, l’instruction allow-configuration-regexps est prioritaire. Ainsi, les utilisateurs peuvent configurer des instances de routage dont le nom commence par CUST-VRF-, mais les utilisateurs ne peuvent pas configurer d’autres instances de routage.
[edit system] user@host# set regex-additive-logic
Autoriser la configuration des homologues BGP uniquement
L’exemple de classe de connexion suivant inclut des expressions régulières qui empêchent la configuration au niveau de la [edit protocols] hiérarchie mais autorisent la configuration des homologues BGP :
[edit system login class class-name] user@host# set permissions [configure routing-control view view-configuration] user@host# set deny-configuration-regexps "protocols .*" user@host# set allow-configuration-regexps "protocols bgp group .*"
Par défaut, la configuration précédente empêche les utilisateurs de la classe login 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 les utilisateurs ne peuvent pas configurer d’autres protocoles ou d’autres instructions BGP en dehors du niveau hiérarchique autorisé.
[edit system] user@host# set regex-additive-logic
Vérification
Pour vérifier que vous avez correctement défini les privilèges d’accès :
-
Configurez une classe de connexion et validez les modifications.
-
Affectez la classe login à un usernamefichier .
-
Connectez-vous en tant qu’assigné username avec la nouvelle classe de connexion.
-
Essayez de configurer les niveaux hiérarchiques autorisés.
-
Vous devez pouvoir configurer des instructions dans les niveaux hiérarchiques autorisés.
-
Les niveaux hiérarchiques refusés ne doivent pas être visibles.
-
Toutes les expressions autorisées ou refusées doivent être prioritaires sur les autorisations accordées avec l’instruction
permissions.
-
Exemple : Configuration des autorisations utilisateur avec des privilèges d’accès pour les commandes du mode opérationnel
Cet exemple montre comment configurer des classes de connexion personnalisées et attribuer des privilèges d’accès pour les 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 susceptibles d’endommager le réseau.
Exigences
Cet exemple utilise les composants matériels et logiciels suivants :
-
Un appareil 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 l’équipement et le serveur RADIUS.
Vue d’ensemble et topologie
La figure 1 illustre une topologie simple, où le routeur R1 est un équipement de Juniper Networks avec une connexion TCP établie avec un serveur TACACS+.
Cet exemple configure R1 avec trois classes de connexion personnalisées : Classe 1, Classe 2 et Classe 3. Chaque classe définit les privilèges d’accès de l’utilisateur en configurant l’instruction permissions et en définissant des expressions régulières étendues à l’aide 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 pour l’utilisateur à l’aide de l’instruction
allow-commandsuniquement. 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 pour l’utilisateur à l’aide de l’instruction
deny-commandsuniquement. Cette classe de connexion fournit des autorisations utilisateur au niveau de l’opérateur et refuse l’accès auxsetcommandes. -
Class3: définit les droits d’accès de l’utilisateur à l’aide des
allow-commandsinstructions et anddeny-commands. Cette classe de connexion fournit des autorisations utilisateur de niveau superutilisateur et l’autorisation d’accéder aux interfaces et d’afficher les informations sur les périphériques. Il refuse également l’accèseditaux commandes andconfigure.
Le routeur R1 a trois utilisateurs différents, User1, User2 et User3 affectés aux classes de connexion Class1, Class2 et Class3, respectivement.
La configuration
- Configuration rapide de la CLI
- Configurer les paramètres d’authentification pour le routeur R1
- Configurer les privilèges d’accès à l’aide de l’instruction allow-commands (Class1)
- Configurez les privilèges d’accès à l’aide de l’instruction deny-commands (Class2)
- Configurez les privilèges d’accès à l’aide des instructions allow-commands et deny-commands (Class3)
- Résultats
Configuration rapide de la CLI
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 à votre configuration réseau, copiez et collez les commandes dans la CLI au niveau de la [edit] hiérarchie, puis entrez commit en mode configuration.
R1
set system authentication-order tacplus set system authentication-order radius set system authentication-order password set system radius-server 10.209.1.66 secret "$ABC123" set system tacplus-server 10.209.1.66 secret "$ABC123" set system radius-options enhanced-accounting set system tacplus-options enhanced-accounting set system accounting events login set system accounting events change-log set system accounting events interactive-commands set system accounting traceoptions file auditlog set system accounting traceoptions flag all set system accounting destination tacplus server 10.209.1.66 secret "$ABC123" set system login class Class1 permissions clear set system login class Class1 permissions network set system login class Class1 permissions reset set system login class Class1 permissions trace set system login class Class1 permissions view set system login class Class1 allow-commands "request system reboot" set system login class Class2 permissions clear set system login class Class2 permissions network set system login class Class2 permissions reset set system login class Class2 permissions trace set system login class Class2 permissions view set system login class Class2 deny-commands set set system login class Class3 permissions all set system login class Class3 allow-commands configure set system login class Class3 deny-commands .* set system login user User1 uid 2001 set system login user User1 class Class1 set system login user User1 authentication encrypted-password "$ABC123" set system login user User2 uid 2002 set system login user User2 class Class2 set system login user User2 authentication encrypted-password "$ABC123" set system login user User3 uid 2003 set system login user User3 class Class3 set system login user User3 authentication encrypted-password "$ABC123" set system syslog file messages any any
Configurer les paramètres d’authentification pour le routeur R1
Procédure étape par étape
Pour configurer l’authentification du routeur R1 :
-
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.
[edit system] user@R1# set authentication-order tacplus user@R1# set authentication-order radius user@R1# set authentication-order password
-
Configurez le serveur TACACS+.
[edit system] user@R1# set tacplus-server 10.209.1.66 secret "$ABC123" user@R1# set tacplus-options enhanced-accounting user@R1# set accounting destination tacplus server 10.209.1.66 secret "$ABC123"
-
Configurez le serveur RADIUS.
[edit system] user@R1# set radius-server 10.209.1.66 secret "$ABC123" user@R1# set radius-options enhanced-accounting
-
Configurez les paramètres comptables R1.
[edit system] user@R1# set accounting events login user@R1# set accounting events change-log user@R1# set accounting events interactive-commands user@R1# set accounting traceoptions file auditlog user@R1# set accounting traceoptions flag all
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 :
-
Configurez la classe de connexion Class1 et attribuez des autorisations utilisateur au niveau de l’opérateur.
[edit system login] user@R1# set class Class1 permissions [clear network reset trace view]
-
Configurez l’expression
allow-commandsrégulière pour permettre aux utilisateurs de la classe de redémarrer l’appareil.[edit system login] user@R1# set class Class1 allow-commands "request system reboot"
-
Configurez le compte d’utilisateur pour la classe de connexion Class1.
[edit system login] user@R1# set user User1 uid 2001 user@R1# set user User1 class Class1 user@R1# set user User1 authentication encrypted-password "$ABC123"
Configurez les privilèges d’accès à l’aide de l’instruction deny-commands (Class2)
Procédure étape par étape
Pour spécifier des expressions régulières à l’aide de l’instruction deny-commands :
-
Configurez la classe de connexion Class2 et attribuez des autorisations utilisateur au niveau de l’opérateur.
[edit system login] user@R1# set class Class1 permissions [clear network reset trace view]
-
Configurez l’expression régulière pour empêcher les
deny-commandsutilisateurs de la classe d’exécutersetdes commandes.[edit system login] user@R1# set class Class1 deny-commands "set"
-
Configurez le compte d’utilisateur pour la classe de connexion Class2.
[edit system login] user@R1# set user User2 uid 2002 user@R1# set user User2 class Class2 user@R1# set user User2 authentication encrypted-password "$ABC123"
Configurez les privilèges d’accès à l’aide des instructions allow-commands et deny-commands (Class3)
Procédure étape par étape
Pour spécifier des expressions régulières à l’aide des allow-commands instructions and deny-commands :
-
Configurez la classe de connexion Class3 et attribuez des autorisations au niveau du superutilisateur.
[edit system login] user@R1# set class Class3 permissions all
-
Configurez l’expression
deny-commandsrégulière pour empêcher les utilisateurs de la classe d’exécuter des commandes.[edit system login] user@R1# set class Class3 deny-commands ".*"
-
Configurez l’expression
allow-commandsrégulière pour permettre aux utilisateurs d’entrer en mode de configuration.[edit system login] user@R1# set class Class3 allow-commands configure
-
Configurez le compte d’utilisateur pour la classe de connexion Class3.
[edit system login] user@R1# set user User3 uid 2003 user@R1# set user User3 class Class3 user@R1# set user User3 authentication encrypted-password "$ABC123"
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.
user@R1# show system
authentication-order [ tacplus radius password ];
radius-server {
10.209.1.66 secret "$ABC123";
}
tacplus-server {
10.209.1.66 secret "$ABC123";
}
radius-options {
enhanced-accounting;
}
tacplus-options {
enhanced-accounting;
}
accounting {
events [ login change-log interactive-commands ];
traceoptions {
file auditlog;
flag all;
}
destination {
tacplus {
server {
10.209.1.66 secret "$ABC123";
}
}
}
}
login {
class Class1 {
permissions [ clear network reset trace view ];
allow-commands "request system reboot";
}
class Class2 {
permissions [ clear network reset trace view ];
deny-commands set;
}
class Class3 {
permissions all;
allow-commands configure;
deny-commands .*;
}
user User1 {
uid 2001;
class Class1;
authentication {
encrypted-password "$ABC123";
}
}
user User2 {
uid 2002;
class Class2;
authentication {
encrypted-password "$ABC123";
}
}
user User3 {
uid 2003;
class Class3;
authentication {
encrypted-password “$ABC123”;
}
}
}
syslog {
file messages {
any any;
}
}
Vérification
Connectez-vous en tant que nom d’utilisateur attribué à la nouvelle classe de connexion et confirmez que la configuration fonctionne correctement.
- Vérification de la configuration de classe 1
- Vérification de la configuration de classe 2
- Vérification de la configuration de classe 3
Vérification de la configuration de classe 1
Objet
Vérifiez que les autorisations et les commandes autorisées dans la classe de connexion Class1 fonctionnent.
Mesures à prendre
En mode opérationnel, exécutez la show system users commande.
User1@R1> show system users 12:39PM up 6 days, 23 mins, 6 users, load averages: 0.00, 0.01, 0.00 USER TTY FROM LOGIN@ IDLE WHAT User1 p0 abc.example.net 12:34AM 12:04 cli User2 p1 abc.example.net 12:36AM 12:02 -cli (cli) User3 p2 abc.example.net 10:41AM 11 -cli (cli)
En mode opérationnel, exécutez la request system reboot commande.
User1@R1> request system ? Possible completions: reboot Reboot the system
Signification
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.
La classe de connexion d’opérateur prédéfinie a les indicateurs d’autorisation suivants spécifiés :
-
clear: peut utiliser des
clearcommandes pour effacer (supprimer) les informations que l’équipement apprend du réseau et stocke dans diverses bases de données réseau. -
network: peut accéder au réseau à l’aide des
pingcommandes ,sshtelnet, , ettraceroute. -
reset: peut redémarrer les processus logiciels à l’aide de la
restartcommande. -
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 les statistiques actuelles à l’échelle du système, à la table de routage et aux protocoles. 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 deuxième 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
Objet
Vérifiez que les autorisations et les commandes autorisées pour la classe de connexion Class2 fonctionnent.
Mesures à prendre
En mode opérationnel, exécutez la ping commande.
User2@R1> ping 10.209.1.66 ping 10.209.1.66 PING 10.209.1.66 (10.209.1.66): 56 data bytes 64 bytes from 10.209.1.66: icmp_seq=0 ttl=52 time=212.521 ms 64 bytes from 10.209.1.66: icmp_seq=1 ttl=52 time=212.844 ms 64 bytes from 10.209.1.66: icmp_seq=2 ttl=52 time=211.304 ms 64 bytes from 10.209.1.66: icmp_seq=3 ttl=52 time=210.963 ms ^C --- 10.209.1.66 ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max/stddev = 210.963/211.908/212.844/0.792 ms
À partir de l’invite de la CLI, vérifiez les commandes disponibles.
User2@R1> ? Possible completions: clear Clear information in the system file Perform file operations help Provide help information load Load information from file monitor Show real-time debugging information mtrace Trace multicast path from source to receiver op Invoke an operation script ping Ping remote target quit Exit the management session request Make system-level requests restart Restart software process save Save information to file show Show system information ssh Start secure shell on another host start Start shell telnet Telnet to another host test Perform diagnostic debugging traceroute Trace route to remote host
À partir de l’invite CLI, exécutez n’importe quelle commande définie.
User2@R1> set
^
unknown command.
Signification
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 d’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
Objet
Vérifiez que les autorisations et les commandes autorisées pour la classe de connexion Class3 fonctionnent.
Mesures à prendre
En mode opérationnel, vérifiez les commandes disponibles.
User3@R1> ? Possible completions: configure Manipulate software configuration information
Entrer en mode configuration.
User3@R1> configure Entering configuration mode [edit] User3@R1#
Signification
La classe de connexion Class3 à laquelle User3 est affecté dispose d’autorisations de superutilisateur (tous), 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 allow/deny-commands instructions ont la priorité sur les autorisations de l’utilisateur, l’utilisateur 3 sur R1 n’a accès qu’au mode de configuration et se voit refuser l’accès à toutes les autres commandes du mode opérationnel.
Exemple : Configuration des 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 login 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.
Exigences
Cet exemple utilise les composants matériels et logiciels suivants :
-
Un appareil 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 l’équipement et le serveur RADIUS.
Vue d’ensemble et topologie
La figure 2 illustre une topologie simple, où le routeur R1 est un équipement de Juniper Networks et dispose d’une connexion TCP établie avec un serveur TACACS+.
Cet exemple configure R1 avec deux classes de connexion personnalisées : Class1 et Class2. Chaque classe définit les privilèges d’accès pour l’utilisateur en configurant l’instruction permissions et en définissant des expressions régulières étendues à l’aide des allow-configurationinstructions , deny-configuration, allow-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-configurationinstructions anddeny-configuration. Cette classe de connexion permet de configurer la[edit interfaces]hiérarchie uniquement et refuse tout autre accès sur l’appareil. Pour ce faire, les autorisations utilisateur incluentconfigurepour fournir un accès à la configuration. En outre, l’instructionallow-configurationautorise l’accès à la configuration des interfaces et refuse l’accèsdeny-configurationà toutes les autres hiérarchies de configuration. Étant donné que l’instruction allow a la priorité sur l’instruction refuser, les utilisateurs affectés à la classe de connexion Class1 peuvent accéder uniquement au niveau hiérarchique[edit interfaces]. -
Class2: définit les privilèges d’accès de l’utilisateur à l’aide des
allow-configuration-regexpsinstructions anddeny-configuration-regexps. Cette classe de connexion fournit des autorisations utilisateur de niveau superutilisateur et autorise explicitement la configuration sous plusieurs niveaux hiérarchiques pour les interfaces. Il refuse également l’accès[edit system]aux niveaux hiérarchiques et[edit protocols]hiérarchiques.
Le routeur R1 a deux utilisateurs, User1 et User2, affectés respectivement aux classes de connexion Class1 et Class2.
La configuration
- Configuration rapide de la CLI
- Configurer les paramètres d’authentification pour le routeur R1
- Configurez les privilèges d’accès à l’aide des instructions allow-configuration et deny-configuration (Class1)
- Configurez les privilèges d’accès à l’aide des instructions allow-configuration-regexps et deny-configuration-regexps (Class2)
- Résultats
Configuration rapide de la CLI
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 à votre configuration réseau, copiez et collez les commandes dans la CLI au niveau de la [edit] hiérarchie, puis entrez commit en mode configuration.
R1
set system authentication-order tacplus set system authentication-order radius set system authentication-order password set system radius-server 10.209.1.66 secret "$ABC123" set system tacplus-server 10.209.1.66 secret "$ABC123" set system radius-options enhanced-accounting set system tacplus-options enhanced-accounting set system accounting events login set system accounting events change-log set system accounting events interactive-commands set system accounting traceoptions file auditlog set system accounting traceoptions flag all set system accounting destination tacplus server 10.209.1.66 secret "$ABC123" set system login class Class1 permissions configure set system login class Class1 allow-configuration "interfaces .* unit .*" set system login class Class1 deny-configuration .* set system login class Class2 permissions all set system login class Class2 allow-configuration-regexps [ "interfaces .* description .*" "interfaces .* unit .* description .*" "interfaces .* unit .* family inet address .*" "interfaces.* disable" ] set system login class Class2 deny-configuration-regexps [ "system" "protocols" ] set system login user User1 uid 2004 set system login user User1 class Class1 set system login user User1 authentication encrypted-password "$ABC123" set system login user User2 uid 2006 set system login user User2 class Class2 set system login user User2 authentication encrypted-password "$ABC123" set system syslog file messages any any
Configurer les paramètres d’authentification pour le routeur R1
Procédure étape par étape
Pour configurer l’authentification du routeur R1 :
-
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.
[edit system] user@R1# set authentication-order tacplus user@R1# set authentication-order radius user@R1# set authentication-order password
-
Configurez le serveur TACACS+.
[edit system] user@R1# set tacplus-server 10.209.1.66 secret "$ABC123" user@R1# set tacplus-options enhanced-accounting user@R1# set accounting destination tacplus server 10.209.1.66 secret "$ABC123"
-
Configurez le serveur RADIUS.
[edit system] user@R1# set radius-server 10.209.1.66 secret "$ABC123" user@R1# set radius-options enhanced-accounting
-
Configurez les paramètres comptables R1.
[edit system] user@R1# set accounting events login user@R1# set accounting events change-log user@R1# set accounting events interactive-commands user@R1# set accounting traceoptions file auditlog user@R1# set accounting traceoptions flag all
Configurez les privilèges d’accès à l’aide des instructions allow-configuration et deny-configuration (Class1)
Procédure étape par étape
Pour spécifier des expressions régulières à l’aide des allow-configuration instructions and deny-configuration :
-
Configurez la classe de connexion Class1 avec
configuredes autorisations.[edit system login] user@R1# set class Class1 permissions configure
-
Configurez l’expression
allow-configurationrégulière pour permettre aux utilisateurs de la classe de visualiser et de modifier une partie du niveau hiérarchique[edit interfaces].[edit system login] user@R1# set class Class1 allow-configuration "interfaces .* unit .*"
-
Configurez l’expression régulière pour refuser l’accès
deny-configurationà toutes les hiérarchies de configuration.[edit system login] user@R1# set class Class1 deny-configuration .*
-
Configurez le compte d’utilisateur pour la classe de connexion Class1.
[edit system login] user@R1# set user User1 uid 2004 user@R1# set user User1 class Class1 user@R1# set user User1 authentication encrypted-password "$ABC123"
Configurez les privilèges d’accès à l’aide des instructions allow-configuration-regexps et deny-configuration-regexps (Class2)
Procédure étape par étape
Pour spécifier des expressions régulières à l’aide des allow-configuration-regexps instructions and deny-configuration-regexps :
-
Configurez la classe de connexion Class2 et attribuez des autorisations de superutilisateur (tous).
[edit system login] user@R1# set class Class2 permissions all
-
Configurez l’expression
allow-configuration-regexpsrégulière pour permettre aux utilisateurs de la classe d’accéder à plusieurs hiérarchies au niveau de la[edit interfaces]hiérarchie.[edit system login] user@R1# set class Class2 allow-configuration-regexps [ "interfaces .* description .*" "interfaces .* unit .* description .*" "interfaces .* unit .* family inet address .*" "interfaces.* disable" ]
-
Configurez l’expression
deny-configuration-regexpsrégulière pour empêcher les utilisateurs de la classe d’afficher ou de modifier la configuration au niveau de la hiérarchie et[edit protocols]de la[edit system]hiérarchie.[edit system login] user@R1# set class Class2 deny-configuration-regexps [ "system" "protocols" ]
-
Configurez le compte d’utilisateur pour la classe de connexion Class2.
[edit system login] user@R1# set user User2 uid 2006 user@R1# set user User2 class Class2 user@R1# set user User2 authentication encrypted-password "$ABC123"
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.
user@R1# show system
authentication-order [ tacplus radius password ];
radius-server {
10.209.1.66 secret "$ABC123";
}
tacplus-server {
10.209.1.66 secret "$ABC123";
}
radius-options {
enhanced-accounting;
}
tacplus-options {
enhanced-accounting;
}
accounting {
events [ login change-log interactive-commands ];
traceoptions {
file auditlog;
flag all;
}
destination {
tacplus {
server {
10.209.1.66 secret "$ABC123";
}
}
}
}
login {
class Class1 {
permissions configure;
allow-configuration "interfaces .* unit .*";
deny-configuration .*;
}
class Class2 {
permissions all;
allow-configuration-regexps [ "interfaces .* description .*" "interfaces .* unit .* description .*" "interfaces .* unit .* family inet address .*" "interfaces.* disable" ];
deny-configuration-regexps [ "system" "protocols" ];
}
user User1 {
uid 2001;
class Class1;
authentication {
encrypted-password "$ABC123";
}
}
user User2 {
uid 2002;
class Class2;
authentication {
encrypted-password "$ABC123";
}
}
}
syslog {
file messages {
any any;
}
}
Vérification
Connectez-vous en tant que nom d’utilisateur attribué à la nouvelle classe de connexion et confirmez que la configuration fonctionne correctement.
Vérifiez la configuration de classe 1
Objet
Vérifiez que les autorisations autorisées dans la classe de connexion Class1 fonctionnent.
Mesures à prendre
En mode opérationnel, vérifiez les commandes disponibles.
User1@R1> ? Possible completions: clear Clear information in the system configure Manipulate software configuration information file Perform file operations help Provide help information load Load information from file op Invoke an operation script quit Exit the management session request Make system-level requests save Save information to file set Set CLI properties, date/time, craft interface message start Start shell test Perform diagnostic debugging
En mode configuration, vérifiez les autorisations de configuration disponibles.
User1@R1# edit ? Possible completions: > interfaces Interface configuration
Signification
L’utilisateur1 dispose configure des autorisations utilisateur, comme indiqué dans la première sortie. De plus, en mode configuration, l’utilisateur1 a accès au niveau de la interfaces hiérarchie, mais uniquement à ce niveau, comme indiqué dans la deuxième sortie.
Vérifiez la configuration de classe 2
Objet
Vérifiez que la configuration de classe 2 fonctionne comme prévu.
Mesures à prendre
En mode configuration, accédez à la interfaces configuration.
[edit interfaces] User2@R1# set ? Possible completions: <interface-name> Interface name + apply-groups Groups from which to inherit configuration data + apply-groups-except Don't inherit configuration data from these groups ge-0/0/3 Interface name > interface-range Interface ranges configuration > interface-set Logical interface set configuration > traceoptions Interface trace options
En mode configuration, accédez aux system hiérarchies de configuration et protocols de configuration.
User2@R1# edit system
^
Syntax error, expecting <statement> or <identifier>.
User2@R1# edit protocols
^
Syntax error, expecting <statement> or <identifier>.
Signification
L’utilisateur2 est autorisé à configurer des interfaces sur R1, mais l’utilisateur n’a pas l’autorisation d’afficher ou de modifier les niveaux hiérarchiques [edit system] 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’explorateur de fonctionnalités pour déterminer si une fonctionnalité est prise en charge sur votre plateforme.
deny-commands-regexps sont prises en charge pour l’autorisation allow-commands-regexps TACACS+.