Privilèges d’accès des utilisateurs
Vous (l’administrateur système) accordez aux utilisateurs un accès ou des autorisations pour les commandes et les instructions de hiérarchie de configuration. Les utilisateurs peuvent exécuter uniquement les commandes et afficher et configurer uniquement les instructions pour lesquelles ils ont des droits 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 autorisées ou interdites aux utilisateurs. Cette pratique empêche les utilisateurs non autorisés d’exécuter des commandes sensibles ou de configurer des instructions qui pourraient causer des dommages au réseau.
Présentation des niveaux de privilège d’accès
Chaque instruction de commande et CLI de configuration de haut niveau dispose d’un niveau de privilège d’accès associé. Les utilisateurs peuvent exécuter uniquement les commandes, configurer et afficher uniquement les instructions pour lesquelles ils ont 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 l’utilisation de commandes de mode de configuration et de hiérarchies d’instruction du mode opérationnel qui seraient autrement autorisées ou refusées par un niveau de privilège spécifié dans permissions
l’énoncé.
- Indicateurs d’autorisation de classe de connexion
- Autoriser et refuser les hiérarchies de commandes et d’instructions individuelles pour les classes de connexion
Indicateurs d’autorisation de classe de connexion
Vous utilisez des indicateurs d’autorisation pour autoriser l’accès d’un utilisateur aux commandes et instructions du mode de configuration. Vous configurez les indicateurs d’autorisation pour la classe de connexion de l’utilisateur au niveau [edit system login class]
hiérarchique. Lorsque vous spécifiez un indicateur d’autorisation donné, l’utilisateur accède aux commandes et aux niveaux et instructions de la hiérarchie de configuration correspondant à cet indicateur. Pour accorder l’accès à toutes les commandes et instructions de configuration, utilisez all
l’indicateur des autorisations.
Chaque commande répertoriée représente cette commande et toutes les sous-communications avec cette commande comme préfixe. Chaque énoncé de configuration répertorié représente le haut de la hiérarchie de configuration à laquelle l’indicateur accorde un accès.
permissions
L’instruction spécifie un ou plusieurs des indicateurs d’autorisation répertoriés dans Tableau 1 . Les indicateurs d’autorisation ne sont pas cumulés. Pour chaque classe, vous devez énumérer tous les indicateurs d’autorisation nécessaires, y compris pour afficher les informations et view
entrer dans le mode de configure
configuration. Deux formes de permissions contrôlent l’accès de l’utilisateur aux parties individuelles de la configuration:
-
Formulaire « clair »: fournit une fonctionnalité en lecture seule pour ce type d’autorisation. Nous en avons
interface
un exemple. -
-control
formulaire: fournit une fonctionnalité de lecture et d’écriture pour ce type de permission. Nous en avonsinterface-control
un exemple.
Pour les indicateurs d’autorisation qui accordent l’accès aux niveaux et instructions de la hiérarchie de configuration, les indicateurs en clair accordent un privilège en lecture seule à cette configuration. Par exemple, interface
l’indicateur d’autorisation autorise un accès en lecture seule au niveau [edit interfaces]
hiérarchique. Le -control
formulaire d’indicateur accorde un accès en lecture-écriture à cette configuration. Par exemple, interface-control
l’indicateur accorde un accès en lecture-écriture au niveau [edit interfaces]
hiérarchique.
Tableau 1 répertorie les indicateurs d’autorisation de classe de connexion que vous pouvez configurer en incluant permissions
l’instruction 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 instructions de la hiérarchie de configuration pour lesquels cet indicateur autorise l’accès.
Indicateur d’autorisation |
Description |
---|---|
Peut afficher la configuration d’accès en mode opérationnel ou en mode de configuration. |
|
Peut afficher et configurer les informations d’accès au niveau |
|
Peut afficher les informations du compte utilisateur en mode opérationnel ou en mode de configuration. |
|
Peut afficher les informations du compte utilisateur et les configurer au niveau |
|
Accès à toutes les commandes du mode opérationnel et aux commandes du mode de configuration. Peut modifier la configuration dans tous les niveaux hiérarchiques de configuration. |
|
Peut effacer (supprimer) les informations que l’équipement apprend à partir du réseau et les stocke dans diverses bases de données de réseau (à l’aide |
|
Peut entrer en mode de configuration (à l’aide de la |
|
Peut effectuer toutes les opérations au niveau du contrôle, toutes les opérations configurées avec les indicateurs |
|
Peut afficher les commandes de débogage sur le terrain. Réservé au débogage. |
|
Peut afficher la configuration du filtre de pare-feu en mode de fonctionnement ou en mode de configuration. |
|
Peut afficher et configurer des informations de filtre de pare-feu au |
|
Lecture et écriture sur le support amovible. |
|
Peut afficher la configuration de l’tap de flux en mode opérationnel ou en mode de configuration. |
|
Peut afficher et configurer les informations d’tap sur les flux au |
|
Peut faire des requêtes d’tap de flux sur le routeur ou le commutateur. Par exemple, un client DTCP (Dynamic Tasking Control Protocol) doit avoir l’autorisation de s’authentifier en Remarque :
|
|
Peut afficher les données de profilage. |
|
Peut afficher la configuration de l’interface en mode de fonctionnement et en mode de configuration. |
|
Peut afficher les informations de configuration sur les châssis, classe de service (CoS), les groupes, les options de forwarding et les interfaces. Peut modifier la configuration aux niveaux hiérarchiques suivants:
|
|
Peut effectuer la maintenance du système, en commençant un shell local sur l’équipement, en devenant le superuseur dans le shell (à l’aide de la commande) et en arrêtant et redémarrage de l’équipement (à l’aide des |
|
Peut accéder au réseau à l’aide du |
|
Peut afficher la |
|
Peut modifier la |
|
Peut redémarrer les processus logiciels à l’aide de la |
|
Peut utiliser la |
|
Peut afficher les informations générales sur la configuration des stratégies de routage, de protocole de routage et de routage en mode de 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 hiérarchie et les informations de stratégie de routage au niveau |
|
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 de configuration. |
|
Peut afficher et configurer les informations de sécurité au niveau |
|
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 |
|
Peut afficher les informations au niveau du système en mode opérationnel ou en mode de configuration. |
|
Peut afficher et modifier les informations de configuration au niveau du système au |
|
Peut afficher les paramètres du fichier de suivi et configurer les propriétés du fichier de trace. |
|
Peut modifier les paramètres du fichier de trace et configurer les propriétés du fichier de trace. |
|
Peut utiliser diverses commandes pour afficher les valeurs et statistiques actuelles pour l’ensemble du système, la table de routage, les valeurs et les statistiques spécifiques aux protocoles. Impossible d’afficher la configuration secrète. |
|
Peut afficher toutes les configurations à l’exception des secrets, des scripts système et des options d’événement. Remarque :
Seuls les utilisateurs autorisés |
Autoriser et refuser les hiérarchies de commandes et d’instructions individuelles pour les classes de connexion
Par défaut, toutes les commandes de CLI de haut niveau et les niveaux hiérarchiques de configuration ont les niveaux de privilège d’accès associés. Les utilisateurs peuvent exécuter uniquement les commandes et afficher et configurer uniquement les instructions pour lesquelles ils ont des droits d’accès. Pour chaque classe de connexion, vous pouvez autoriser et refuser explicitement l’utilisation de commandes de mode opérationnel et de mode de configuration et de hiérarchies d’instruction qui seraient autrement autorisées ou refusées par un niveau de privilège spécifié dans permissions
l’énoncé.
Les indicateurs d’autorisation accordent à l’utilisateur un accès au mode opérationnel et aux commandes du mode de configuration, ainsi qu’à la configuration des niveaux et des instructions hiérarchiques. En spécifiant un indicateur d’autorisation spécifique sur la classe de connexion de l’utilisateur au niveau de la hiérarchie, vous lui accordez l’accès aux commandes correspondantes et aux niveaux et instructions de la hiérarchie de [edit system login class]
configuration. Pour accorder l’accès à toutes les commandes et instructions de configuration, utilisez all
l’indicateur des autorisations.
Vous pouvez autoriser ou refuser l’utilisation de commandes et d’instructions en configurant le , et les instructions pour une classe allow-commands
deny-commands
de allow-configuration
deny-configuration
connexion. Dans les instructions, vous utilisez des expressions régulières étendues pour définir les commandes et les instructions permettant d’autoriser ou de refuser les utilisateurs assignés à la classe.
Exemple: Configurer les autorisations des utilisateurs avec des niveaux de privilège d’accès
Cet exemple configure les autorisations utilisateur pour un cours de connexion. Vous configurez les autorisations des utilisateurs 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 les commandes et afficher et modifier uniquement les instructions pour lesquelles ils ont des droits d’accès. Cette contrainte empêche les utilisateurs non autorisés d’exécuter des commandes sensibles ou de configurer des instructions qui pourraient causer des dommages au réseau.
Conditions préalables
Aucune configuration particulière au-delà de l’initialisation de l’équipement n’est requise avant de configurer cet exemple.
Présentation
Chaque commande d’CLI de haut niveau et chaque instruction de configuration dispose d’un niveau de privilège d’accès associé. Lorsque vous configurez une classe de connexion, vous pouvez autoriser ou refuser l’utilisation du mode opérationnel, des commandes du mode de configuration et des instructions de configuration. Les utilisateurs peuvent exécuter uniquement les commandes et afficher et configurer uniquement les instructions pour lesquelles ils ont des droits 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 permissions
l’énoncé. Les indicateurs d’autorisation accordent à l’utilisateur un accès aux commandes, instructions et hiérarchies. Les indicateurs d’autorisation ne sont pas cumulés. Pour chaque classe de connexion, vous devez énumérer tous les indicateurs d’autorisation nécessaires, y compris pour afficher les informations et view
entrer dans le mode de configure
configuration. En spécifiant un indicateur d’autorisation spécifique sur la classe de connexion de l’utilisateur, vous lui accordez l’accès aux commandes, instructions et hiérarchies correspondantes. Pour accorder l’accès à toutes les commandes et instructions de configuration, utilisez all
l’indicateur des autorisations. Les indicateurs d’autorisation ne fournissent que la lecture (le formulaire « clair » ) et la lecture et l’écriture (formulaire qui se termine par un contrôle) pour un type d’autorisation.
Les bits d’autorisation de classe de connexion ont priorité sur les expressions régulières étendues lorsqu’une commande est activée par l’indicateur all
rollback
rollback
d’autorisation.
Pour configurer les niveaux de privilège d’accès des utilisateurs pour une classe de connexion, inclure l’instruction au niveau de la hiérarchie, suivie des permissions
[edit system login class class-name]
indicateurs d’autorisation. Configurez plusieurs autorisations sous la forme d’une liste séparée par espace, jointe à des supports carrés:
[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 context CLI et tapez un point d’interrogation (?) après permissions
l’énoncé:
[edit system login] user@host# set class class-name permissions ?
Configuration
Cet exemple configure la classe snmp-admin
de connexion. Les utilisateurs de cette classe de connexion peuvent uniquement configurer et afficher les paramètres SNMP.
Configurer les autorisations des utilisateurs avec des niveaux de privilège d’accès
Procédure étape par étape
Pour configurer les privilèges d’accès pour la classe de connexion:
-
Configurez la classe
snmp-admin
de connexion avec les indicateurs , et les indicateursconfigure
snmp
snmp-control
d’autorisation.[edit system login] user@host# set class snmp-admin permissions [configure snmp snmp-control]
Les indicateurs d’autorisation configurés fournissent une fonctionnalité 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 droits d’accès sont refusés.
-
Créez les comptes utilisateur qui sont attribués à la classe
snmp-admin
de connexion.[edit system login] user@host# set user snmpuser class snmp-admin authentication plain-text-password New password: Retype new password:
Résultats
En mode de 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’équipement, entrez commit
le mode de configuration.
Vérification
Connectez-vous à l’aide d’un nom d’utilisateur attribué au nouveau cours de connexion et confirmez que la configuration fonctionne correctement.
Vérifier la configuration SNMP
But
Vérifiez qu’un utilisateur du cours snmp-admin
de connexion peut configurer SNMP.
Action
En mode de configuration, configurez les instructions SNMP au niveau [edit snmp]
de la 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
Sens
L’utilisateur de snmp-admin
la classe de connexion peut configurer les paramètres SNMP. L’utilisateur peut configurer ces paramètres parce que les indicateurs d’autorisation spécifiés pour cette classe incluent des bits d’autorisation snmp (capacités de lecture) et de contrôle snmp (capacités de lecture et d’écriture).
Vérifier la configuration non-SNMP
But
Vérifiez qu’un utilisateur de la classe de connexion ne peut pas modifier les déclarations de configuration autres que snmp-admin
SNMP.
Action
En mode de configuration, tentez 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>.
Sens
L’utilisateur de la classe de connexion n’est pas en mesure de configurer la hiérarchie, car les indicateurs d’autorisation spécifiés pour cette classe snmp-admin
[edit interfaces]
ne l’autorisent pas. Dans ce cas, l’CLI un message d’erreur.
Expressions régulières pour autoriser et refuser les commandes de mode opérationnel, les instructions de configuration et les hiérarchies
Ce sujet contient les sections suivantes:
- Compréhension des énoncés autoriser et refuser
- Compréhension de la syntaxe de la déclaration Autoriser et Refuser
- Compréhension de la préséance et de la correspondance de l’énoncé Autoriser et Refuser
- Comprendre les règles d’accord et de refus de la déclaration
- Compréhension des différences des déclarations *-regexps
- Utilisation d’expressions régulières sur les serveurs d’autorisation à distance
- Spécifier les expressions régulières
- Opérateurs expressions régulières
- Exemples d’expressions régulières
Compréhension des énoncés autoriser et refuser
La hiérarchie de l’CLI de commande et de configuration de haut niveau dispose d’un niveau de privilège d’accès associé. Chaque classe de connexion peut autoriser ou refuser l’utilisation de commandes et instructions du mode de configuration et du mode de configuration, ainsi que des instructions qui seraient autrement autorisées ou interdites par un niveau de privilège. Les utilisateurs peuvent exécuter uniquement les commandes et afficher et configurer uniquement les instructions pour lesquelles ils ont des droits 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 au niveau permissions
[edit system login class class-name]
de la 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
etdeny-commands
—Autoriser ou refuser l’accès au mode opérationnel et aux commandes du mode de configuration. -
allow-configuration
etdeny-configuration
—Autoriser ou refuser l’accès à des hiérarchies de configuration spécifiques.Remarque :Ces instructions offrent un temps de correspondance plus lent, avec davantage de flexibilité, en particulier dans le cas de la correspondance par cartes génériques. Toutefois, il peut être très long de prendre du temps à évaluer toutes les déclarations possibles si un grand nombre d’expressions régulières full-path ou d’expressions génériques sont configurées, ce qui peut avoir un impact négatif sur les performances.
-
allow-commands-regexps
etdeny-commands-regexps
—Autoriser ou refuser l’accès à des commandes spécifiques à l’aide de chaînes d’expressions régulières. -
allow-configuration-regexps
et —Autoriser ou refuser l’accès à des hiérarchies dedeny-configuration-regexps
configuration spécifiques à l’aide de chaînes d’expressions régulières.
Si vos configurations existantes utilisent les ou les instructions, l’utilisation des mêmes options de configuration et des instructions peut ne pas allow/deny-commands
allow/deny-configuration
produire les mêmes allow/deny-commands-regexps
allow/deny-configuration-regexps
résultats. Les méthodes de recherche et de correspondance diffèrent selon les deux formes de ces instructions.
L’autorisation explicite des hiérarchies d’instructions de configuration et de commandes à l’aide des instructions s’ajoute aux autorisations déjà allow/deny-*
permissions
définies par l’énoncé. De même, le rejet explicite des hiérarchies des instructions et des instructions de configuration à l’aide des instructions supprime les autorisations déjà allow/deny-*
permissions
définies par l’énoncé.
Par exemple, dans la configuration suivante, cette autorisation permet aux utilisateurs de la classe de connexion de configure
saisir le mode de configuration. En outre, l’expression permet aux utilisateurs de modifier la configuration au niveau de la hiérarchie et de allow-configuration
[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 des autorisations, sauf si l’utilisateur ne peut pas afficher ou modifier la configuration au niveau de la all
[edit system services]
hiérarchie:
[edit system login class test] user@host# set permissions all deny-configuration "system services"
Compréhension de la syntaxe de la déclaration Autoriser et Refuser
Vous pouvez configurer une allow/deny-*
instruction qu’une 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 cas
Ces déclarations sont mutuellement exclusives et ces déclarations sont mutuellement exclusives avec allow/deny-commands
allow/deny-commands-regexps
ces allow/deny-configuration
allow/deny-configuration-regexps
déclarations. Par exemple, vous ne pouvez pas configurer les deux dans la même classe allow-configuration
allow-configuration-regexps
de connexion.
Pour définir les privilèges d’accès aux commandes, spécifiez des expressions régulières étendues à l’aide allow-commands
des deny-commands
instructions et des. Joint chaque expression autonome complète dans des parenthèses ( ) et utilisez le symbole de la pipe ( |) pour séparer les expressions. N’utilisez pas d’espaces entre les expressions régulières qui sont connectées par le symbole de la pipe. L’expression complète est jointe à des 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 ancrages pour spécifier des expressions régulières complexes avec allow-commands
l’énoncé. Par exemple :
[edit system login] user@host# set class test allow-commands "(^monitor)|(^ping)|(^show)|(^exit)"
Pour définir les privilèges d’accès à des parties de la hiérarchie de configuration, indiquez les expressions régulières étendues dans allow-configuration
les deny-configuration
instructions et les. Enfermez les chemins complets dans des parenthèses ( ) et utilisez le symbole de la pipe ( | ) pour séparer les expressions. N’utilisez pas d’espaces entre les expressions régulières qui sont connectées par le symbole de la pipe. L’expression complète est jointe à des 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 ou des instructions, enfermez chaque expression dans des guillemets (« ») et séparez les allow/deny-commands-regexps
allow/deny-configuration-regexps
expressions à l’aide d’un espace. Joint plusieurs expressions en supports carrés [ ]. 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"]
modifiers tels que , et ne sont pas pris en charge dans la chaîne d’expressions régulière set
log
pour être count
assortis. Si vous utilisez un modifier, alors rien n’est assorti.
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"
Compréhension de la préséance et de la correspondance de l’énoncé Autoriser et Refuser
Par défaut, les expressions régulières et les expressions ont priorité sur allow-commands
allow-configuration
les deny-commands
deny-configuration
expressions et les priorités. Ainsi, si vous configurez la même commande à la fois pour les instructions et pour les instructions, l’opération autorise priorité sur allow-commands
deny-commands
l’opération refus. De même, si vous configurez la même instruction à la fois pour les instructions et pour les instructions, l’opération autorise priorité sur allow-configuration
deny-configuration
l’opération refus.
Par exemple, la configuration suivante permet à un utilisateur de la classe de connexion d’installer le logiciel à l’aide de la commande, même si l’énoncé inclut test
request system software add
la même deny-commands
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 de classe de connexion d’afficher et de modifier la hiérarchie de configuration, même si l’énoncé inclut la test
[edit system services]
même deny-configuration
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
deny-commands
instructions et les instructions 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 de connexion d’exécuter test
la commit synchronize
commande, mais pas la commit
commande. Cela est dû au fait qu’il s’agit de la correspondance la plus longue entre et, et il commit synchronize
commit
est spécifié pour commit synchronize
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 classe de connexion d’exécuter test
la commit
commande, mais pas la commit synchronize
commande. Cela est dû au fait qu’il s’agit de la correspondance la plus longue entre et, et il commit synchronize
commit
est spécifié pour commit synchronize
deny-commands
.
[edit system login class test] user@host# set allow-commands commit user@host# set deny-commands "commit synchronize"
Contrairement aux autres énoncés, le comportement par défaut des énoncés est que les expressions régulières ont priorité sur les expressions et les *-regexps
deny-commands-regexps
deny-configuration-regexps
allow-commands-regexps
allow-configuration-regexps
expressions. Vous pouvez configurer l’énoncé au niveau de la hiérarchie pour forcer les expressions régulières à prendre l’priorité regex-additive-logic
[edit system]
sur les allow-configuration-regexps
deny-configuration-regexps
instructions. La configuration de l’énoncé vous permet de refuser les hiérarchies de configuration à un niveau plus élevé, et autorise uniquement l’accès de l’utilisateur à des sous-hiérarchies spécifiques.
Comprendre les règles d’accord et de refus de la déclaration
Les instructions et les , et les instructions ont priorité allow/deny-commands
allow/deny-configuration
sur les allow/deny-commands-regexps
allow/deny-configuration-regexps
autorisations de classe de connexion. Lorsque vous configurez ces instructions, les règles suivantes s’appliquent:
-
Les expressions régulières
allow-commands
etdeny-commands
les instructions peuvent également inclure lescommit
, , , et lesload
rollback
save
status
update
commandes. -
Les bits d’autorisation de classe de connexion ont priorité sur les expressions régulières étendues lorsqu’un utilisateur problèmes la commande avec le indicateur
all
rollback
rollback
d’autorisation activé. -
Les utilisateurs ne peuvent pas
load override
émettre la commande lors de la spécification d’une expression régulière étendue. Seules les commandes de configuration et les questions demerge
replace
configuration sontpatch
émises par les utilisateurs. -
Vous pouvez utiliser le caractère * générique lors de la dés expressions régulières. Toutefois, vous devez l’utiliser comme une partie de l’expression régulière. Vous ne pouvez pas
[ * ]
utiliser ou comme seule[ .* ]
expression. En outre, vous ne pouvez pas configurer l’énoncé avec une expression telle que , carallow-configuration
elle est évaluée sur(interfaces (description (|.*))
allow-configuration .*
.
Compréhension des différences des déclarations *-regexps
Cette section présente les différences entre les allow/deny-configuration
énoncés et allow/deny-configuration-regexps
les énoncés.
Les instructions divisent l’expression régulière en jetons et font correspondre chaque pièce à chaque partie du chemin complet de la configuration spécifiée, alors que les instructions s’matchent avec la allow/deny-configuration-regexps
allow/deny-configuration
chaîne complète. Pour les instructions, vous configurez un ensemble de chaînes dans lesquelles chaque chaîne est une expression régulière, avec des espaces entre les allow/deny-configuration-regexps
termes de la chaîne. Cette syntaxe permet une correspondance très rapide, mais offre moins de flexibilité. Pour spécifier les expressions génériques, vous devez définir des caractères génériques pour chaque jeton de la chaîne à espace que vous souhaitez assortir, ce qui complique l’utilisation d’expressions génériques pour ces instructions.
Par exemple :
-
Expression régulière correspondant à un jeton en utilisant allow-configuration-regexps
Cet exemple montre qu’il s’agit de la seule expression correspondance
options
contre le premier jeton de la déclaration.[edit system] login { class test { permissions configure; allow-configuration-regexps .*options; } }
La configuration qui précède correspond aux déclarations suivantes:
-
définir des conditionsd’options de stratégie condition de dynamique-db
-
définir le routage-Options de routage statique route statique route next-hop next-hop
-
définir desoptions d’événements et d’événements, puis générer des secondes d’intervalle de l’événement
La configuration qui précède ne correspond pas aux déclarations suivantes:
-
options de nom d’hôte-hôte dusystème
-
interfaces options de description du nom de l’interface
-
-
Expression régulière correspondant à trois jetons à l’aide de allow-configuration-regexps
Cet exemple montre qu’il s’agit de la seule expression correspondance
ssh
contre le troisième jeton de la déclaration.[edit system] login { class test { permissions configure; allow-configuration-regexps ".* .* .*ssh"; } }
Dans l’exemple précédent, les trois jetons incluent
.*
.*
, et ,.*ssh
respectivement.La configuration qui précède correspond aux déclarations suivantes:
-
système host-name hostname-ssh
-
services système ssh
-
services systèmesortants ssh
La configuration qui précède ne correspond pas à l’énoncé suivant:
-
interfaces interface-name description ssh
-
Il est plus facile d’utiliser l’énoncé pour limiter l’accès à la configuration que pour l’utiliser. Illustre l’utilisation des énoncés dans des configurations différentes afin d’obtenir le même résultat que la restriction de l’accès à une deny-configuration
deny-configuration-regexps
configuration Tableau 2deny-configuration
deny-configuration-regexps
particulière.
Configuration refusé |
Utilisant: |
Utilisant: |
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’énoncé de configuration suivant est refusé:
|
|
[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 déclarations de configuration suivantes sont refusées:
|
Bien que ces déclarations soient également utiles pour une configuration simple, ces déclarations offrent de meilleures performances et surmontent la conjuguant les expressions des allow/deny-configuration
allow/deny-configuration-regexps
allow/deny-configuration
énoncés.
Utilisation d’expressions régulières sur les serveurs d’autorisation à distance
Vous pouvez utiliser des expressions régulières étendues pour spécifier les commandes du mode de fonctionnement et du mode de configuration, ainsi que les instructions et hiérarchies de configuration autorisées ou interdites pour certains utilisateurs. Vous spécifiez ces expressions régulières localement dans le allow/deny-commands
allow/deny-configuration
, et les allow/deny-commands-regexps
allow/deny-configuration-regexps
instructions au niveau de [edit system login class class-name]
la hiérarchie. Vous spécifiez ces expressions régulières à distance en Juniper Networks attributs TACACS+ ou RADIUS propres à chaque fournisseur dans la configuration de votre serveur d’autorisations. Lorsque vous configurez les paramètres d’autorisation à la fois localement et à distance, l’équipement fusionnera les expressions régulières reçues lors des contrôles TACACS+ ou RADIUS avec toutes les expressions régulières définies sur l’équipement local.
À partir Junos OS version 18.1, les déclarations et les déclarations sont prise en charge allow-commands-regexps
deny-commands-regexps
pour l’autorisation TACACS+.
Lorsque vous spécifiez plusieurs expressions régulières dans une configuration locale à l’aide du , ou des instructions, vous configurez les expressions régulières au sein des allow-commands
deny-commands
allow-configuration
parenthèses et vous les séparez à l’aide du deny-configuration
symbole de la pipe. Vous joint l’expression complète dans des guillemets doubles. Par exemple, vous pouvez spécifier plusieurs allow-commands
paramètres avec la syntaxe suivante:
allow-commands "(cmd1)|(cmd2)|(cmdn)"
Le serveur RADIUS d’autorisations 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 du , ou des instructions, vous configurez les expressions régulières dans des guillemets doubles et séparez-les à l’aide de allow-commands-regexps
deny-commands-regexps
allow-configuration-regexps
deny-configuration-regexps
l’opérateur de l’espace. Vous enfermez l’expression complète dans des supports carrés. Par exemple, vous pouvez spécifier plusieurs paramètres de commandes d’utilisation avec la syntaxe suivante:
allow-commands-regexps [ "cmd1" "cmd2" "cmdn" ]
Le serveur RADIUS d’autorisations 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)"
RADIUS et les serveurs TACACS+ offrent également une syntaxe simplifiée, dans laquelle vous spécifiez chaque expression individuelle sur une ligne distincte. Par exemple, la syntaxe RADIUS serveur simplifiée 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"
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.*" 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 émettre les trois commandes suivantes:
xml-mode
,netconf
etneed-trailer
. -
Lorsque vous utilisez l’énoncé, vous devez autoriser toutes les
deny-configuration = ".*"
configurations souhaitées à l’aide de cetteallow-configuration
instruction. Cependant, cette configuration peut affecter la limite de tampon d’expressions régulières autorisée pourallow-configuration
l’énoncé. Si cette limite est dépassée, la configuration autorisée peut ne pas fonctionner.
Spécifier les expressions régulières
Lorsque vous spécifiez des expressions régulières pour les commandes et les instructions de configuration, prêtez très attention aux exemples suivants. Une expression régulière avec syntaxe non valide peut ne pas produire les résultats souhaités, même si la configuration est commise sans erreur.
Vous devez spécifier les expressions régulières des commandes et des 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 pour la configuration des privilèges d’accès pour les hiérarchies des instructions et [edit interfaces]
[edit vlans]
pour la delete interfaces
commande.
Déclaration |
Expression régulière |
Configuration Notes |
---|---|---|
[edit interfaces] La [edit] user@host# set interfaces interface-name unit interface-unit-number |
En conséquence, l’expression régulière requise pour nier la configuration doit spécifier l’ensemble de la chaîne exécutable à l’endroit de l’opérateur à la place des [edit system login class class-name] user@host# set permissions configure user@host# set deny-configuration "interfaces .* unit .*" |
|
delete interfaces La [edit] user@host# delete interfaces interface-name |
En conséquence, l’expression régulière requise pour refuser l’énoncé doit [edit system login class class-name] user@host# set permissions configure user@host# set allow-configuration "interfaces .*" user@host# set deny-configuration "interfaces .*" |
|
[edit vlans] La [edit] user@host# set vlans vlan-name vlan-id vlan-id |
Dans ce cas, En conséquence, l’expression régulière requise pour permettre la configuration doit spécifier l’ensemble de la chaîne exécutable à l’endroit de l’opérateur à la place des [edit system login class class-name] user@host# set permissions configure user@host# set allow-configuration "vlans .* vlan-id .*" |
|
Opérateurs expressions régulières
Tableau 5 répertorie les opérateurs d’expressions régulières 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 régulières étendues (modernes), telles que définies dans POSIX 1003.2.
Opérateur |
Correspondance |
Exemple |
---|---|---|
| |
Un des deux termes ou plus séparés par le tuyau. Chaque terme doit être une expression autonome complète, fermée dans des parenthèses , sans espace entre la pipe 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)" Lors de la configuration qui précède, les utilisateurs assignés à la classe de connexion au test sont limités au mode opérationnel uniquement aux commandes spécifiées dans |
^ |
Au début de l’expression, on peut indiquer l’endroit où commence la commande, où il peut y avoir une certaine désa99. |
[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)" Lors de la configuration qui précède, les utilisateurs assignés au cours de connexion au test ont accès à l’affichage et à la configuration de la configuration de l’interface. Pour le premier filtre, les commandes spécifiées incluent les |
$ |
Caractère à la fin d’une commande. Pour indiquer une commande qui doit être précisément correspondre à ce point. |
[edit system login class test] user@host# set permissions interface user@host# set allow-commands "(show interfaces$)" Lors de la configuration qui précède, les utilisateurs assignés au cours de connexion au test peuvent afficher la configuration des interfaces en mode de configuration. Les utilisateurs peuvent également afficher la configuration de l’interface avec |
[ ] |
Ensemble 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 .*" ] Lors de la configuration qui précède, les utilisateurs assignés à la classe de connexion aux tests ont les autorisations des utilisateurs de niveau 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). |
( ) |
Un groupe de commandes indiquant une expression complète et autonome à évaluer. Le résultat est ensuite évalué dans l’expression globale. Des parenthèses doivent être utilisées conjointement avec les opérateurs de réseaux 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 assignés à la classe de connexion aux tests ont des autorisations de niveau super-utilisateur et ont accès aux commandes spécifiées dans |
* |
Zéro ou plus. |
[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 au cours de connexion au test dont le nom d’utilisateur de connexion se voit refuser |
+ |
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 au cours de connexion au test dont le nom d’utilisateur de connexion se voit refuser |
. |
Tout 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 au cours de connexion au test dont le nom d’utilisateur de connexion se voit refuser |
.* |
tout, du point spécifié à l’autre. |
[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 au cours de connexion au test dont le nom d’utilisateur de connexion se voit refuser De même, l’énoncé refuse tout accès à la Remarque :
|
!
L’opérateur d’expressions régulières n’est pas pris en charge.
Exemples d’expressions régulières
Tableau 6 répertorie les expressions régulières utilisées pour autoriser les options de configuration dans deux hiérarchies de configuration et, par exemple, pour [edit system ntp server]
[edit protocols rip]
spécifier les expressions régulières.
Tableau 6 ne fournit pas de liste complète de toutes les expressions et mots-clés réguliers pour toutes les instructions et hiérarchies de configuration. Les expressions régulières énumérées dans le tableau sont validées uniquement pour les hiérarchies [edit system ntp server]
[edit protocols rip]
d’instruction et de déclaration.
Hiérarchie de l’instruction |
Expressions régulières |
Configuration autorisée |
Configuration refusé |
---|---|---|---|
|
|||
clé de chiffre |
[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" ] |
|
|
numéro de version de la version |
[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è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 .*" ] |
|
|
|
|||
taille du message |
[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 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-time-timeout de l’itinéraire |
[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 .*" ] |
|
|
mise à jour de l’intervalle de mise à jour de l’intervalle |
[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 les privilèges d’accès avec les déclarations d’accord de configuration et de refus de configuration
Vous pouvez définir les privilèges d’accès pour les hiérarchies des énoncés de configuration en combinant les types d’instructions suivants:
indicateurs d’autorisation
allow-configuration
etdeny-configuration
déclarations
Les indicateurs d’autorisation définissent les limites plus larges de l’accès et du contrôle d’une personne ou d’une classe de connexion. Les énoncés contiennent une ou plusieurs expressions régulières qui autorisent ou refusent des hiérarchies et des allow-configuration
deny-configuration
instructions de configuration spécifiques. Les instructions et les instructions ont priorité 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 visualiser et allow-configuration
deny-configuration
configurer.
Ce sujet explique comment définir les privilèges d’accès à l’aide et les déclarations en montrant des exemples de configurations de classe de connexion allow-configuration
deny-configuration
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, sauf celles définies dans deny-configuration
l’énoncé.
Notez que les bits d’autorisationet l’indicateur d’autorisation sont utilisés indifféremment.
Exemple 1
Pour créer une classe de connexion qui permet à l’utilisateur d’exécuter toutes les commandes et de configurer tout, sauf les paramètres telnet:
Exemple 2
Pour créer un cours de connexion qui permet à l’utilisateur d’exécuter toutes les commandes et de configurer tout, sauf les instructions au sein de n’importe quelle 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
-
Inclure
deny-configuration
l’énoncé suivant.[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 configurer tout, sauf les niveaux [edit system login class]
[edit system services]
hiérarchiques:
-
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
-
Inclure
deny-configuration
l’énoncé suivant:[edit system login class all-except-login-class-or-system-services] user@host# set deny-configuration "(system login class) | (system services)"
Les exemples suivants indiquent comment utiliser les déclarations et les autorisations inverses les unes aux autres pour le niveau allow-configuration
deny-configuration
[edit system services]
hiérarchique.
Exemple 4
Pour créer une classe de connexion qui permet à l’utilisateur d’avoir des privilèges de configuration complets uniquement au niveau [edit system services]
de la 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
-
Inclure
allow-configuration
l’énoncé suivant:[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 autorise l’utilisateur à accéder pleinement à toutes les commandes et à toutes les hiérarchies de configuration, à l’exception du niveau [edit system services]
de hiérarchie:
-
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
-
Inclure
deny-configuration
l’énoncé suivant.[edit system login class all-except-system-services] user@host# set deny-configuration "system services"
Exemple: Utiliser la logique de logique logique et les expressions régulières pour spécifier les privilèges d’accès
Cet exemple montre comment utiliser une logique d’utilisation de la logique d’utilisation lorsque vous utilisez des expressions régulières pour mettre en place des privilèges d’accès à la configuration.
Conditions préalables
Cet exemple utilise un équipement 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’elle peut changer. Ces expressions régulières indiquent des hiérarchies de configuration spécifiques à qui les utilisateurs d’une classe de connexion peuvent accéder. Vous pouvez, par exemple, 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 instructions et allow-configuration-regexps
les deny-configuration-regexps
instructions pour une classe de connexion.
Par défaut, deny-configuration-regexps
l’énoncé prend la priorité sur allow-configuration-regexps
l’énoncé. Si une hiérarchie de configuration apparaît dans une instruction pour une classe de connexion, elle n’est pas visible par les utilisateurs de cette classe, quel que soit le deny-configuration-regexps
contenu de allow-configuration-regexps
l’énoncé. Si une hiérarchie de configuration n’apparaît pas dans une instruction, elle est visible par les utilisateurs de cette classe si elle deny-configuration-regexps
apparaît dans une allow-configuration-regexps
instruction.
Vous pouvez modifier ce comportement par défaut en activant la logique insérez les *-configuration-regexps
instructions. Lorsque vous activez la logique insélable, allow-configuration-regexps
l’énoncé prend la priorité sur deny-configuration-regexps
l’énoncé.
Ainsi, si l’énoncé refuse l’accès à toutes les hiérarchies de configuration à un niveau donné (protocoles .*) mais permet l’accès à une deny-configuration-regexps
allow-configuration-regexps
sous-hiérarchie (protocoles bgp .*), l’équipement refuse par défaut l’accès aux hiérarchies des utilisateurs de cette classe de connexion, car l’énoncé a deny-configuration-regexps
priorité. Toutefois, si vous activez la logique d’authentification, l’équipement permet d’accéder à la sous-hiérarchie spécifiée pour les utilisateurs de cette classe de connexion, car l’priorité est dans allow-configuration-regexps
ce cas.
Configuration
Procédure étape par étape
Pour activer la logique insérable afin d’autoriser explicitement les utilisateurs d’un accès en classe de connexion à une ou plusieurs hiérarchies de configuration individuelles:
-
Inclure
deny-configuration-regexps
l’énoncé et refuser 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 .*"
-
Inclure
allow-configuration-regexps
l’énoncé et définir des expressions régulières pour les hiérarchies spécifiques permettant.[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 de logique de la logique des
allow-configuration-regexps
deny-configuration-regexps
expressions régulières et 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
-
Commit your changes.
Les utilisateurs assigné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
allow-configuration-regexps
deny-configuration-regexps
l’énoncé.
Lorsque vous configurez l’instruction, la modification de comportement s’applique à tous les énoncés présents dans toutes les regex-additive-logic
allow-configuration-regexps
deny-configuration-regexps
classes de connexion. Si vous activez la logique d’insularation, vous devez évaluer les déclarations existantes en cas d’impact et mettre à jour les expressions régulières dans ces instructions, le cas échéant.
Exemples
Utiliser des expressions régulières avec la logique de logique de logique de logique de logique de logique logique
But
Cette section fournit des exemples d’expressions régulières qui utilisent une logique insélable pour vous donner des idées pour créer des configurations adaptées à votre système.
Autoriser des instances de routage spécifiques
Le cours de connexion suivant inclut une expression régulière qui permet la configuration des instances de routage dont le nom commence par ; par CUST-VRF-
exemple, CUST-VRF-1
, et ainsi CUST-VRF-25
de CUST-VRF-100
suite. L’exemple inclut également une expression régulière qui empêche la configuration des 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 prend l’priorité, et la configuration précédente empêche les utilisateurs de la classe de connexion de configurer n’importe quelle instance de routage, quel que soit deny-configuration-regexps
leur nom.
Toutefois, si vous configurez l’instruction suivante, allow-configuration-regexps
celle-ci est prioritaire. Les utilisateurs peuvent ainsi configurer des instances de routage dont le nom commence par, mais pas CUST-VRF-
d’autres.
[edit system] user@host# set regex-additive-logic
Autoriser BGP configuration peer uniquement
Le cours de connexion suivant inclut des expressions régulières qui empêchent la configuration au niveau hiérarchique mais autorisent la [edit protocols]
configuration BGP pairs:
[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 de connexion d’apporter des modifications à des hiérarchies sous [edit protocols]
.
Toutefois, si vous configurez l’instruction suivante, les utilisateurs de la classe de connexion peuvent apporter des modifications aux pairs 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 bien définir les privilèges d’accès:
-
Configurez une classe de connexion et commit les modifications.
-
Attribuez la classe de connexion à un nom d’utilisateur.
-
Connectez-vous en tant que nom d’utilisateur attribué avec la nouvelle classe de connexion.
-
Tentez de configurer les niveaux hiérarchiques autorisés.
-
Vous devez pouvoir configurer les instructions dans des niveaux hiérarchiques autorisés.
-
Les niveaux hiérarchiques refusés ne doivent pas être visibles.
-
Toute expression autorisée ou interdite doit primer sur les autorisations accordées par la
permissions
déclaration.
-
Exemple: Configurer les autorisations des utilisateurs 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 de mode opérationnel. Les utilisateurs de la classe de connexion peuvent exécuter uniquement les commandes pour lesquelles ils ont accès. Cela empêche les utilisateurs non autorisés d’exécuter des commandes sensibles qui pourraient causer des dommages au réseau.
Conditions préalables
Cet exemple utilise les composants matériels et logiciels suivants:
-
Un Juniper Networks de sécurité
-
Un serveur TACACS+ (RADIUS)
Avant de commencer, établissez une connexion TCP entre l’équipement et le serveur TACACS+. Dans le cas d’un serveur RADIUS, établissez une connexion UDP entre l’équipement et RADIUS serveur.
Présentation 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+.

Cet exemple configure le R1 avec trois classes de connexion personnalisées: classe 1, classe 2 et classe3. Chaque classe définit les privilèges d’accès pour l’utilisateur en configurant l’énoncé et en définissant des expressions régulières étendues à l’aide des permissions
allow-commands
déclarations et des deny-commands
énoncés.
L’objectif de chaque classe de connexion est le suivant:
-
Class1— Définit les privilèges d’accès pour l’utilisateur avec
allow-commands
l’instruction uniquement. Cette classe de connexion fournit des autorisations et autorisations utilisateur de niveau opérateur pour le redémarrage de l’équipement. -
Class2— Définit les privilèges d’accès pour l’utilisateur avec
deny-commands
l’instruction uniquement. Cette classe de connexion fournit des autorisations utilisateur de niveau opérateur et refuse l’accès auxset
commandes. -
Class3— Définit les privilèges d’accès pour l’utilisateur avec
allow-commands
lesdeny-commands
déclarations et les énoncés. Cette classe de connexion fournit des autorisations et autorisations utilisateur de niveau super-utilisateur pour accéder aux interfaces et visualiser les informations sur l’équipement. Il refuse également l’accès aux commandes etedit
configure
aux données.
Le routeur R1 compte trois utilisateurs différents, respectivement Utilisateur1, Utilisateur2 et User3 affectés aux classes de classe 1, Classe 2 et Classe3.
Configuration
- CLI configuration rapide
- Configurer les paramètres d’authentification du routeur R1
- Configurer les privilèges d’accès avec l’instruction des commandes d’accès (Classe 1)
- Configurer les privilèges d’accès avec l’énoncé des commandes de refus (Classe 2)
- Configurer les privilèges d’accès avec les instructions « allow-command » et les « deny-commands Statements » (Classe3)
- Résultats
CLI configuration rapide
Pour configurer rapidement cet exemple, copiez les commandes suivantes, collez-les dans un fichier texte, supprimez les interruptions de ligne, modifiez les détails nécessaires pour correspondre à votre configuration réseau, copiez et collez les commandes dans l’CLI au niveau de la hiérarchie, puis entrez en [edit]
commit
mode de 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 du routeur R1
Procédure étape par étape
Pour configurer l’authentification du routeur R1:
-
Configurez l’ordre dans lequel le R1 tente d’authentifier l’utilisateur. Dans cet exemple, l’authentification du serveur TACACS+ est la première, suivie RADIUS’authentification du serveur, 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 RADIUS serveur.
[edit system] user@R1# set radius-server 10.209.1.66 secret "$ABC123" user@R1# set radius-options enhanced-accounting
-
Configurer les paramètres de comptabilisation 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 avec l’instruction des commandes d’accès (Classe 1)
Procédure étape par étape
Pour spécifier les expressions régulières à l’aide de allow-commands
l’énoncé:
-
Configurez la classe de connexion de classe 1 et attribuez les 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 permettre aux utilisateurs de la classe de
allow-commands
redémarrer l’équipement.[edit system login] user@R1# set class Class1 allow-commands "request system reboot"
-
Configurez le compte utilisateur pour la classe 1.
[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"
Configurer les privilèges d’accès avec l’énoncé des commandes de refus (Classe 2)
Procédure étape par étape
Pour spécifier les expressions régulières à l’aide de deny-commands
l’énoncé:
-
Configurez la classe de connexion de classe 2 et attribuez les 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 utilisateurs de la
deny-commands
classe d’exécuterset
des commandes.[edit system login] user@R1# set class Class1 deny-commands "set"
-
Configurez le compte utilisateur pour la classe 2.
[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"
Configurer les privilèges d’accès avec les instructions « allow-command » et les « deny-commands Statements » (Classe3)
Procédure étape par étape
Pour spécifier les expressions régulières à l’aide des allow-commands
déclarations et deny-commands
des énoncés:
-
Configurez la classe de connexion de classe 3 et attribuez des autorisations de niveau super-utilisateur.
[edit system login] user@R1# set class Class3 permissions all
-
Configurez l’expression régulière pour empêcher les utilisateurs de la classe
deny-commands
d’exécuter des commandes.[edit system login] user@R1# set class Class3 deny-commands ".*"
-
Configurez
allow-commands
l’expression régulière pour permettre aux utilisateurs d’entrer dans le mode de configuration.[edit system login] user@R1# set class Class3 allow-commands configure
-
Configurez le compte utilisateur pour la classe 3.
[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 de 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 assigné à 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
But
Vérifiez que les autorisations et commandes autorisées dans la classe 1 fonctionnent.
Action
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
Sens
La classe de connexion de classe 1 à laquelle l’utilisateur1 est attribué dispose des autorisations utilisateur de niveau opérateur et permet aux utilisateurs de la classe d’exécuter la request system reboot
commande.
La classe de connexion de l’opérateur prédéfiny dispose des indicateurs d’autorisation suivants:
clear—Peut utiliser des commandes pour effacer (supprimer) les informations que l’équipement apprend à partir du réseau et stocke dans
clear
diverses bases de données de réseau.network— Accès au réseau à l’aide du
ping
ssh
, et destelnet
traceroute
commandes.reset—Peut redémarrer les processus logiciels à l’aide de la
restart
commande.trace—Peut afficher les paramètres des fichiers de trace et configurer les propriétés du fichier de trace.
view—Peut utiliser diverses commandes pour afficher les valeurs et statistiques actuelles pour l’ensemble du système, la table de routage, les valeurs et les statistiques spécifiques aux protocoles. Impossible d’afficher la configuration secrète.
Pour la classe 1, outre les autorisations utilisateur 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 indique que la seule commande que l’utilisateur1 peut exécuter en tant qu’opérateur est request system
la request system reboot
seule commande.
Vérification de la configuration de classe 2
But
Vérifiez que les autorisations et commandes autorisées pour la classe 2 fonctionnent bien.
Action
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
Dès l’CLI, consultez 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 CLI, exécutez n’importe quelle commande définie.
User2@R1> set ^ unknown command.
Sens
La classe de connexion de classe 2 à laquelle l’utilisateur2 est attribué dispose des autorisations utilisateur de niveau opérateur et refuse l’accès à toutes set
les commandes.
Les indicateurs d’autorisation indiqués pour la classe de connexion de l’opérateur prédéfiny sont les mêmes que ceux indiqués pour la classe 1.
Vérification de la configuration de classe 3
But
Vérifiez que les autorisations et commandes autorisées pour la classe de classe 3 fonctionnent bien.
Action
En mode opérationnel, consultez les commandes disponibles.
User3@R1> ? Possible completions: configure Manipulate software configuration information
Entrez le mode de configuration.
User3@R1> configure Entering configuration mode [edit] User3@R1#
Sens
La classe de connexion de classe 3 à laquelle l’utilisateur3 est attribué dispose des autorisations de super-utilisateur (toutes) mais cette classe permet uniquement aux utilisateurs d’exécuter la configure
commande. Cette classe refuse l’accès à toutes les autres commandes du mode opérationnel. Étant donné que les expressions régulières indiquées dans les instructions ont priorité sur les autorisations de l’utilisateur, l’utilisateur 3 sur R1 n’a accès qu’au mode de configuration et se voir refuser l’accès à toutes les autres commandes du allow/deny-commands
mode opérationnel.
Exemple: Configurer les autorisations des utilisateurs avec des privilèges d’accès pour les hiérarchies et les instructions de configuration
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 à laquelle ils ont accès. Cela empêche les utilisateurs non autorisés de modifier les configurations d’équipements qui pourraient endommager le réseau.
Conditions préalables
Cet exemple utilise les composants matériels et logiciels suivants:
-
Un Juniper Networks de sécurité
-
Un serveur TACACS+ (RADIUS)
Avant de commencer, établissez une connexion TCP entre l’équipement et le serveur TACACS+. Dans le cas d’un serveur RADIUS, établissez une connexion UDP entre l’équipement et RADIUS serveur.
Présentation 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+.

Cet exemple configure le R1 avec deux classes de connexion personnalisées: classes 1 et 2. Chaque classe définit les privilèges d’accès pour l’utilisateur en configurant l’énoncé et en définissant des expressions régulières étendues à l’aide des permissions
allow-configuration
, et des deny-configuration
allow-configuration-regexps
deny-configuration-regexps
énoncés.
L’objectif de chaque classe de connexion est le suivant:
-
Class1— Définit les privilèges d’accès de l’utilisateur avec
allow-configuration
lesdeny-configuration
instructions et les droits d’accès. Cette classe de connexion fournit un accès pour configurer la hiérarchie uniquement et refuse tous les autres accès[edit interfaces]
sur l’équipement. Pour ce faire, les autorisations de l’utilisateur incluentconfigure
l’accès à la configuration. En outre, l’instruction autorise l’accès à la configuration des interfaces, et cette instruction refuse l’accès à toutes lesallow-configuration
deny-configuration
autres hiérarchies de configuration. L’énoncé de priorité sur l’énoncé de refus est prioritaire, les utilisateurs assignés à la classe de connexion de classe 1 peuvent accéder uniquement au[edit interfaces]
niveau hiérarchique. -
Class2— Définit les privilèges d’accès de l’utilisateur avec
allow-configuration-regexps
lesdeny-configuration-regexps
instructions et les droits d’accès. Cette classe de connexion fournit des autorisations utilisateur de niveau superuser et autorise explicitement la configuration sous plusieurs niveaux hiérarchiques pour les interfaces. Elle refuse également l’accès aux niveaux[edit system]
[edit protocols]
hiérarchiques et aux niveaux.
Le routeur R1 dispose de deux utilisateurs, User1 et User2, affectés respectivement aux classes de classe 1 et 2.
Configuration
- CLI configuration rapide
- Configurer les paramètres d’authentification du routeur R1
- Configurer les privilèges d’accès avec les instructions allow-configuration et deny-configuration (Classe1)
- Configurer les privilèges d’accès avec les instructions allow-configuration-regexps et deny-configuration-regexps (Classe2)
- Résultats
CLI configuration rapide
Pour configurer rapidement cet exemple, copiez les commandes suivantes, collez-les dans un fichier texte, supprimez les interruptions de ligne, modifiez les détails nécessaires pour correspondre à votre configuration réseau, copiez et collez les commandes dans l’CLI au niveau de la hiérarchie, puis entrez en [edit]
commit
mode de 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 du routeur R1
Procédure étape par étape
Pour configurer l’authentification du routeur R1:
-
Configurez l’ordre dans lequel le R1 tente d’authentifier l’utilisateur. Dans cet exemple, l’authentification du serveur TACACS+ est la première, suivie RADIUS’authentification du serveur, 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 RADIUS serveur.
[edit system] user@R1# set radius-server 10.209.1.66 secret "$ABC123" user@R1# set radius-options enhanced-accounting
-
Configurez les paramètres de comptabilisation 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 avec les instructions allow-configuration et deny-configuration (Classe1)
Procédure étape par étape
Pour spécifier les expressions régulières à l’aide allow-configuration
des deny-configuration
déclarations et des énoncés:
-
Configurez la classe de connexion de classe 1 avec
configure
les autorisations.[edit system login] user@R1# set class Class1 permissions configure
-
Configurez l’expression régulière pour permettre aux utilisateurs de la classe d’afficher et de modifier une partie du niveau
allow-configuration
[edit interfaces]
de hiérarchie.[edit system login] user@R1# set class Class1 allow-configuration "interfaces .* unit .*"
-
Configurez
deny-configuration
l’expression régulière pour refuser l’accès à toutes les hiérarchies de configuration.[edit system login] user@R1# set class Class1 deny-configuration .*
-
Configurez le compte utilisateur pour la classe 1.
[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"
Configurer les privilèges d’accès avec les instructions allow-configuration-regexps et deny-configuration-regexps (Classe2)
Procédure étape par étape
Pour spécifier les expressions régulières à l’aide allow-configuration-regexps
des deny-configuration-regexps
déclarations et des énoncés:
-
Configurez la classe de connexion de classe 2 et attribuez des autorisations de super-utilisateur (toutes).
[edit system login] user@R1# set class Class2 permissions all
-
Configurez l’expression régulière pour permettre aux utilisateurs de la classe
allow-configuration-regexps
d’accéder à plusieurs hiérarchies au-dessous[edit interfaces]
du niveau hiérarchique.[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 régulière afin d’empêcher les utilisateurs de la classe d’afficher ou de modifier la configuration aux niveaux
deny-configuration-regexps
[edit system]
[edit protocols]
hiérarchiques et supérieurs.[edit system login] user@R1# set class Class2 deny-configuration-regexps [ "system" "protocols" ]
-
Configurez le compte utilisateur pour la classe 2.
[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 de 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 assigné à la nouvelle classe de connexion et confirmez que la configuration fonctionne correctement.
Vérifier la configuration de classe 1
But
Vérifiez que les autorisations autorisées dans le cours de connexion de classe 1 fonctionnent.
Action
En mode opérationnel, consultez 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 de configuration, consultez les autorisations de configuration disponibles.
User1@R1# edit ? Possible completions: > interfaces Interface configuration
Sens
User1 dispose configure
des autorisations utilisateur, comme vu dans le premier résultat. En outre, en mode de configuration, User1 a accès au niveau de hiérarchie, mais uniquement au niveau hiérarchique tel qu’on le voit interfaces
dans la deuxième sortie.
Vérifier la configuration de classe 2
But
Vérifiez que la configuration de classe 2 fonctionne comme prévu.
Action
En mode de 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 de configuration, accédez aux system
protocols
hiérarchies de configuration et de configuration.
User2@R1# edit system ^ Syntax error, expecting <statement> or <identifier>. User2@R1# edit protocols ^ Syntax error, expecting <statement> or <identifier>.
Sens
User2 dispose des autorisations de configuration des interfaces sur le modèle R1, mais l’utilisateur n’a pas l’autorisation d’afficher ou de modifier les niveaux [edit system]
[edit protocols]
hiérarchiques ou de les afficher.