Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Zugriffsrechte des Benutzers

Sie (der Systemadministrator) gewähren Benutzern Zugriff oder Berechtigungen für Befehle und Konfigurationshierarchieebenen und -anweisungen. Benutzer können nur die Befehle ausführen und nur die Anweisungen anzeigen und konfigurieren, für die sie über Zugriffsrechte verfügen. Sie können auch erweiterte reguläre Ausdrücke verwenden, um anzugeben, welche Betriebsmodusbefehle, Konfigurationsanweisungen und Hierarchien für Benutzer zulässig oder verweigert werden. Dadurch wird verhindert, dass nicht autorisierte Benutzer vertrauliche Befehle ausführen oder Anweisungen konfigurieren, die das Netzwerk beschädigen könnten.

Übersicht über Zugriffsberechtigungsstufen

Jedem CLI-Befehl und jeder Konfigurationsanweisung der obersten Ebene ist eine Zugriffsberechtigungsstufe zugeordnet. Benutzer können nur diese Befehle ausführen und nur die Anweisungen konfigurieren und anzeigen, für die sie Zugriffsrechte haben. Ein oder mehrere Berechtigungsflags definieren die Zugriffsrechte für jede Anmeldeklasse.

Für jede Anmeldeklasse können Sie auch explizit die Verwendung von Befehlen und Anweisungshierarchien im Betriebsmodus und Konfigurationsmodus zulassen oder verweigern, die andernfalls durch eine in der Anweisung angegebene Berechtigungsstufe zugelassen oder verweigert würden.permissions

Berechtigungsflags für Anmeldeklassen

Sie verwenden Berechtigungsflags, um einem Benutzer Zugriff auf Betriebsmodusbefehle und Konfigurationshierarchieebenen und -anweisungen zu gewähren. Sie konfigurieren Berechtigungsflags für die Anmeldeklasse des Benutzers auf Hierarchieebene .[edit system login class] Wenn Sie ein bestimmtes Berechtigungsflag angeben, erhält der Benutzer Zugriff auf die Befehle sowie auf die Konfigurationshierarchieebenen und -anweisungen, die diesem Flag entsprechen. Um Zugriff auf alle Befehle und Konfigurationsanweisungen zu gewähren, verwenden Sie das Berechtigungsflag.all

HINWEIS:

Jeder aufgeführte Befehl stellt diesen Befehl und alle Unterbefehle mit diesem Befehl als Präfix dar. Jede aufgeführte Konfigurationsanweisung stellt die Spitze der Konfigurationshierarchie dar, auf die dieses Flag Zugriff gewährt.

Die Anweisung gibt eines oder mehrere der Berechtigungsflags an, die in aufgeführt sind .permissionsTabelle 1 Berechtigungsflags sind nicht kumulativ. Für jede Klasse müssen Sie alle erforderlichen Berechtigungsflags auflisten, einschließlich der Anzeige von Informationen und des Zugriffs in den Konfigurationsmodus.viewconfigure Zwei Arten von Berechtigungen steuern den Zugriff eines Benutzers auf die einzelnen Teile der Konfiguration:

  • "Einfaches" Formular: Bietet schreibgeschützte Funktionen für diesen Berechtigungstyp. Ein Beispiel ist .interface

  • -control form: Bietet Lese- und Schreibfunktionen für diesen Berechtigungstyp. Ein Beispiel ist .interface-control

Bei Berechtigungsflags, die Zugriff auf Konfigurationshierarchieebenen und -anweisungen gewähren, gewähren die einfachen Formularflags Leseberechtigung für diese Konfiguration. Das Berechtigungskennzeichen gewährt z.B . schreibgeschützten Zugriff auf die Hierarchieebene .interface[edit interfaces] Die Form des Flags gewährt Lese-/Schreibzugriff auf diese Konfiguration.-control Das Kennzeichen gewährt z.B. Lese-/Schreibzugriff auf die Hierarchieebene .interface-control[edit interfaces]

Listet die Berechtigungsflags der Anmeldeklasse auf, die Sie konfigurieren können, indem Sie die Anweisung auf Hierarchieebene einschließen.Tabelle 1permissions[edit system login class class-name]

Die Berechtigungsflags gewähren einen bestimmten Satz von Zugriffsberechtigungen. Jedes Berechtigungsflag wird mit den Befehlen für den Betriebsmodus oder Konfigurationsmodus sowie den Konfigurationshierarchieebenen und -anweisungen aufgeführt, für die dieses Flag Zugriff gewährt.

Tabelle 1: Berechtigungsflags für Anmeldeklassen

Berechtigungs-Flag

Beschreibung

access

Kann die Zugriffskonfiguration im Betriebsmodus oder Konfigurationsmodus anzeigen.

access-control

Kann Zugriffsinformationen auf Hierarchieebene anzeigen und konfigurieren.[edit access]

admin

Kann Benutzerkontoinformationen im Betriebsmodus oder Konfigurationsmodus anzeigen.

admin-control

Kann Benutzerkontoinformationen anzeigen und auf Hierarchieebene konfigurieren.[edit system]

all

Kann auf alle Betriebsmodusbefehle und Konfigurationsmodusbefehle zugreifen. Kann die Konfiguration in allen Konfigurationshierarchieebenen ändern.

clear

Kann Informationen löschen (löschen), die das Gerät aus dem Netzwerk lernt und in verschiedenen Netzwerkdatenbanken speichert (mithilfe der Befehle).clear

configure

Kann in den Konfigurationsmodus wechseln (mit dem Befehl) und Konfigurationen bestätigen (mit dem Befehl).configurecommit

control

Kann alle Vorgänge auf Steuerungsebene ausführen – alle Vorgänge, die mit den Berechtigungsflags konfiguriert sind.-control

field

Kann Felddebugbefehle anzeigen. Reserviert für die Unterstützung beim Debuggen.

firewall

Kann die Firewall-Filterkonfiguration im Betriebsmodus oder Konfigurationsmodus anzeigen.

firewall-control

Kann Firewallfilterinformationen auf Hierarchieebene anzeigen und konfigurieren.[edit firewall]

floppy

Kann von Wechselmedien lesen und darauf schreiben.

flow-tap

Kann die Flow-Tap-Konfiguration im Betriebsmodus oder Konfigurationsmodus anzeigen.

flow-tap-control

Kann Flow-Tap-Informationen auf Hierarchieebene anzeigen und konfigurieren.[edit services flow-tap]

flow-tap-operation

Kann Flow-Tap-Anfragen an den Router oder Switch stellen. Beispielsweise muss ein DTCP-Client (Dynamic Tasking Control Protocol) über die Berechtigung verfügen , sich als Administratorbenutzer zu authentifizieren.flow-tap-operationJunos OS

HINWEIS:

Die Option ist nicht im Berechtigungsflag enthalten.flow-tap-operationall-control

idp-profiler-operation

Kann Profilerdaten anzeigen.

interface

Kann die Schnittstellenkonfiguration im Betriebsmodus und Konfigurationsmodus anzeigen.

interface-control

Kann Informationen zu Chassis, Class-of-Service (CoS), Gruppen, Weiterleitungsoptionen und Schnittstellenkonfigurationsinformationen anzeigen. Kann die Konfiguration auf den folgenden Hierarchieebenen ändern:

  • [edit chassis]

  • [edit class-of-service]

  • [edit groups]

  • [edit forwarding-options]

  • [edit interfaces]

maintenance

Kann Systemwartung durchführen, einschließlich des Startens einer lokalen Shell auf dem Gerät und des Werdens zum Superuser in der Shell (mit dem Befehl) und des Anhaltens und Neustartens des Geräts (mit den Befehlen).su rootrequest system

network

Kann mit den Befehlen , , und auf das Netzwerk zugreifen.pingsshtelnettraceroute

pgcp-session-mirroring

Kann die Sitzungsspiegelungskonfiguration anzeigen.pgcp

pgcp-session-mirroring-control

Die Konfiguration der Sitzungsspiegelung kann geändert werden.pgcp

reset

Kann Softwareprozesse mithilfe des Befehls neu starten.restart

rollback

Kann den Befehl verwenden, um zu einer zuvor festgeschriebenen Konfiguration zurückzukehren.rollback

routing

Kann allgemeine Routing-, Routingprotokoll- und Routingrichtlinien-Konfigurationsinformationen im Konfigurationsmodus und Betriebsmodus anzeigen.

routing-control

Kann allgemeines Routing auf Hierarchieebene, Routingprotokolle auf Hierarchieebene und Routingrichtlinieninformationen auf Hierarchieebene anzeigen und konfigurieren.[edit routing-options][edit protocols][edit policy-options]

secret

Kann Kennwörter und andere Authentifizierungsschlüssel in der Konfiguration anzeigen.

secret-control

Kann Kennwörter und andere Authentifizierungsschlüssel in der Konfiguration anzeigen und ändern.

security

Kann Sicherheitskonfigurationsinformationen im Betriebsmodus und Konfigurationsmodus anzeigen.

security-control

Kann Sicherheitsinformationen auf Hierarchieebene anzeigen und konfigurieren.[edit security]

shell

Kann mit dem Befehl eine lokale Shell auf dem Router oder Switch starten.start shell

snmp

Kann SNMP-Konfigurationsinformationen (Simple Network Management Protocol) im Betriebsmodus oder Konfigurationsmodus anzeigen.

snmp-control

Kann SNMP-Konfigurationsinformationen auf Hierarchieebene anzeigen und ändern.[edit snmp]

Kann Informationen zur Fibre Channel-Speicherkonfiguration auf Hierarchieebene anzeigen.[edit fc-fabrics]

Kann Konfigurationsinformationen des Fibre Channel-Speichers auf Hierarchieebene ändern.[edit fc-fabrics]

system

Kann Informationen auf Systemebene im Betriebsmodus oder Konfigurationsmodus anzeigen.

system-control

Kann Konfigurationsinformationen auf Systemebene auf Hierarchieebene anzeigen und ändern.[edit system]

trace

Kann Ablaufverfolgungsdateieinstellungen anzeigen und Ablaufverfolgungsdateieigenschaften konfigurieren.

trace-control

Kann Ablaufverfolgungsdateieinstellungen ändern und Ablaufverfolgungsdateieigenschaften konfigurieren.

Kann die einheitliche Edge-Konfiguration in der Hierarchie anzeigen.[edit unified-edge]

Kann die einheitliche Edge-bezogene Konfiguration in der Hierarchie ändern.[edit unified-edge]

view

Kann verschiedene Befehle verwenden, um aktuelle systemweite, Routing-Tabellen- und protokollspezifische Werte und Statistiken anzuzeigen. Die geheime Konfiguration kann nicht angezeigt werden.

view-configuration

Kann die gesamte Konfiguration mit Ausnahme von Geheimnissen, Systemskripts und Ereignisoptionen anzeigen.

HINWEIS:

Nur Benutzer mit der entsprechenden Berechtigung können die Konfiguration des Commit-Skripts, des Op-Skripts oder des Ereignisskripts anzeigen.maintenance

Zulassen und Verweigern einzelner Befehle und Anweisungshierarchien für Anmeldeklassen

Standardmäßig verfügen alle CLI-Befehle und Konfigurationshierarchieebenen der obersten Ebene über zugeordnete Zugriffsberechtigungsebenen. Benutzer können nur die Befehle ausführen und nur die Anweisungen anzeigen und konfigurieren, für die sie über Zugriffsrechte verfügen. Für jede Anmeldeklasse können Sie die Verwendung von Befehlen und Anweisungshierarchien für den Betriebsmodus und Konfigurationsmodus, die andernfalls durch eine in der Anweisung angegebene Berechtigungsstufe zugelassen oder verweigert würden, explizit zulassen oder verweigern.permissions

Berechtigungsflags gewähren einem Benutzer Zugriff auf Betriebsmodus- und Konfigurationsmodusbefehle sowie auf Konfigurationshierarchieebenen und -anweisungen. Durch die Angabe eines bestimmten Berechtigungsflags für die Anmeldeklasse des Benutzers auf Hierarchieebene gewähren Sie dem Benutzer Zugriff auf die entsprechenden Befehle und Konfigurationshierarchieebenen und -anweisungen.[edit system login class] Um Zugriff auf alle Befehle und Konfigurationsanweisungen zu gewähren, verwenden Sie das Berechtigungsflag.all

Sie können die Verwendung von Befehlen und Anweisungen explizit zulassen oder verweigern, indem Sie die , , und -Anweisungen für eine login-Klasse konfigurieren.allow-commandsdeny-commandsallow-configurationdeny-configuration In den Anweisungen verwenden Sie erweiterte reguläre Ausdrücke, um zu definieren, welche Befehle und Anweisungen für Benutzer, die der Klasse zugewiesen sind, zugelassen oder verweigert werden sollen.

Beispiel: Konfigurieren von Benutzerberechtigungen mit Zugriffsberechtigungsstufen

In diesem Beispiel werden die Benutzerberechtigungen für eine login-Klasse konfiguriert. Sie konfigurieren Benutzerberechtigungen für eine Anmeldeklasse, um zu verhindern, dass Benutzer nicht autorisierte Netzwerkaktionen ausführen. Benutzer können nur diese Befehle ausführen und nur die Anweisungen anzeigen und ändern, für die sie über Zugriffsrechte verfügen. Diese Einschränkung verhindert, dass nicht autorisierte Benutzer vertrauliche Befehle ausführen oder Anweisungen konfigurieren, die das Netzwerk beschädigen könnten.

Anforderungen

Vor der Konfiguration dieses Beispiels ist keine spezielle Konfiguration erforderlich, die über die Geräteinitialisierung hinausgeht.

Überblick

Jedem CLI-Befehl der obersten Ebene und jeder Konfigurationsanweisung ist eine Zugriffsberechtigungsstufe zugeordnet. Wenn Sie eine Anmeldeklasse konfigurieren, können Sie die Verwendung von Befehlen und Konfigurationsanweisungen für den Betriebsmodus und den Konfigurationsmodus explizit zulassen oder verweigern. Benutzer können nur die Befehle ausführen und nur die Anweisungen anzeigen und konfigurieren, für die sie über Zugriffsrechte verfügen.

Sie definieren die Zugriffsrechte für jede Anmeldeklasse, indem Sie ein oder mehrere Berechtigungsflags in der Anweisung angeben.permissions Berechtigungsflags gewähren einem Benutzer Zugriff auf Befehle, Anweisungen und Hierarchien. Berechtigungsflags sind nicht kumulativ. Für jede Anmeldeklasse müssen Sie alle erforderlichen Berechtigungsflags auflisten, einschließlich der Anzeige von Informationen und des Zugriffs in den Konfigurationsmodus.viewconfigure Durch Angeben eines bestimmten Berechtigungsflags für die Anmeldeklasse des Benutzers gewähren Sie dem Benutzer Zugriff auf die entsprechenden Befehle, Anweisungen und Hierarchien. Um Zugriff auf alle Befehle und Konfigurationsanweisungen zu gewähren, verwenden Sie das Berechtigungsflag.all Die Berechtigungsflags bieten schreibgeschützte ("einfache" Form) und Lese- und Schreibfunktionen (Formulare, die auf -control enden) für einen Berechtigungstyp.

HINWEIS:

Die Berechtigungsbits der Anmeldeklasse haben Vorrang vor erweiterten regulären Ausdrücken, wenn ein Benutzer einen Befehl mit aktiviertem Berechtigungsflag ausgibt.allrollbackrollback

Um Benutzerzugriffsberechtigungsstufen für eine Anmeldeklasse zu konfigurieren, fügen Sie die Anweisung auf Hierarchieebene ein, gefolgt von den Berechtigungsflags.permissions[edit system login class class-name] Konfigurieren Sie mehrere Berechtigungen als durch Leerzeichen getrennte Liste in eckigen Klammern:

Tipp:

Um die verfügbaren Berechtigungen anzuzeigen, verwenden Sie die kontextsensitive Hilfe der CLI, und geben Sie nach der Anweisung ein Fragezeichen (?) ein:permissions

Konfiguration

In diesem Beispiel wird die login-Klasse konfiguriert.snmp-admin Benutzer in dieser Anmeldeklasse können nur SNMP-Parameter konfigurieren und anzeigen.

Konfigurieren von Benutzerberechtigungen mit Zugriffsberechtigungsstufen

Schritt-für-Schritt-Anleitung

So konfigurieren Sie Zugriffsrechte für die login-Klasse:

  1. Konfigurieren Sie die Anmeldeklasse mit den Berechtigungsflags , und .snmp-adminconfiguresnmpsnmp-control

    Die konfigurierten Berechtigungsflags bieten sowohl Lese- (snmp) als auch Lese- und Schreibfunktionen (snmp-control) für SNMP, und dies ist die einzige zulässige Zugriffsberechtigung für diese Anmeldeklasse. Alle anderen Zugriffsrechte werden verweigert.

  2. Erstellen Sie die Benutzerkonten, die der Anmeldeklasse zugewiesen sind.snmp-admin

Ergebnisse

Bestätigen Sie im Konfigurationsmodus Ihre Konfiguration, indem Sie den Befehl eingeben.show system login Wenn die Ausgabe nicht die gewünschte Konfiguration anzeigt, wiederholen Sie die Anweisungen in diesem Beispiel, um die Konfiguration zu korrigieren.

Nachdem Sie das Gerät konfiguriert haben, wechseln Sie in den Konfigurationsmodus.commit

Überprüfung

Melden Sie sich mit einem Benutzernamen an, der der neuen Anmeldeklasse zugewiesen ist, und vergewissern Sie sich, dass die Konfiguration ordnungsgemäß funktioniert.

Überprüfen der SNMP-Konfiguration

Zweck

Stellen Sie sicher, dass ein Benutzer in der Anmeldeklasse SNMP konfigurieren kann.snmp-admin

Was

Konfigurieren Sie im Konfigurationsmodus SNMP-Anweisungen auf Hierarchieebene .[edit snmp]

Bedeutung

Der Benutzer in der login-Klasse kann SNMP-Parameter konfigurieren.snmp-admin Der Benutzer kann diese Parameter konfigurieren, da die für diese Klasse angegebenen Berechtigungsflags sowohl snmp- (Lesefunktionen) als auch snmp-control-Berechtigungsbits (Lese- und Schreibfunktionen) enthalten.

Überprüfen der Nicht-SNMP-Konfiguration

Zweck

Stellen Sie sicher, dass ein Benutzer in der login-Klasse Nicht-SNMP-Konfigurationsanweisungen nicht ändern kann.snmp-admin

Was

Versuchen Sie im Konfigurationsmodus, eine Nicht-SNMP-Anweisung zu konfigurieren, z. B. eine Anweisung in der Hierarchie.interfaces

Bedeutung

Der Benutzer in der login-Klasse ist nicht in der Lage, die Hierarchie zu konfigurieren, da die für diese Klasse angegebenen Berechtigungsflags dies nicht zulassen.snmp-admin[edit interfaces] In diesem Fall gibt die CLI eine Fehlermeldung aus.

Reguläre Ausdrücke zum Zulassen und Verweigern von Befehlen im Betriebsmodus, Konfigurationsanweisungen und Hierarchien

Dieses Thema enthält die folgenden Abschnitte:

Grundlegendes zu den allow- und deny-Anweisungen

Jeder CLI-Befehls- und Konfigurationsanweisungshierarchie der obersten Ebene ist eine Zugriffsberechtigungsebene zugeordnet. Jede Anmeldeklasse kann die Verwendung von Befehlen für den Betriebsmodus und Konfigurationsmodus sowie von Konfigurationshierarchien und -anweisungen, die andernfalls durch eine Berechtigungsstufe zugelassen oder verweigert würden, explizit zulassen oder verweigern. Benutzer können nur die Befehle ausführen und nur die Anweisungen anzeigen und konfigurieren, für die sie über Zugriffsrechte verfügen.

Die Zugriffsrechte für jede Anmeldeklasse werden durch ein oder mehrere Berechtigungsflags definiert, die in der Anweisung auf Hierarchieebene angegeben sind.permissions[edit system login class class-name] Darüber hinaus können Sie die Verwendung bestimmter Befehle und Konfigurationshierarchien zulassen oder verweigern, indem Sie erweiterte reguläre Ausdrücke definieren. Sie können die regulären Ausdrücke angeben, indem Sie die folgenden Anweisungen für eine login-Klasse konfigurieren:

  • and —Erlauben oder verweigern Sie den Zugriff auf Befehle für den Betriebsmodus und den Konfigurationsmodus.allow-commandsdeny-commands

  • and —Erlauben oder verweigern Sie den Zugriff auf bestimmte Konfigurationshierarchien.allow-configurationdeny-configuration

    HINWEIS:

    Diese Anweisungen führen einen langsameren Abgleich mit mehr Flexibilität durch, insbesondere beim Platzhalterabgleich. Es kann jedoch sehr lange dauern, alle möglichen Anweisungen auszuwerten, wenn eine große Anzahl von regulären Ausdrücken für den gesamten Pfad oder Platzhalterausdrücke konfiguriert sind, was sich möglicherweise negativ auf die Leistung auswirkt.

  • and —Erlaubt oder verweigert den Zugriff auf bestimmte Befehle mithilfe von Zeichenketten regulärer Ausdrücke.allow-commands-regexpsdeny-commands-regexps

  • and —Erlaubt oder verweigert den Zugriff auf bestimmte Konfigurationshierarchien mithilfe von Zeichenketten regulärer Ausdrücke.allow-configuration-regexpsdeny-configuration-regexps

HINWEIS:

Wenn Ihre vorhandenen Konfigurationen die oder-Anweisungen verwenden, führt die Verwendung derselben Konfigurationsoptionen mit den oder-Anweisungen möglicherweise nicht zu denselben Ergebnissen.allow/deny-commandsallow/deny-configurationallow/deny-commands-regexpsallow/deny-configuration-regexps Die Such- und Übereinstimmungsmethoden unterscheiden sich in den beiden Formen dieser Anweisungen.

Durch das explizite Zulassen von Befehlen und Konfigurationsanweisungshierarchien mithilfe der Anweisungen werden die bereits in der Anweisung definierten Berechtigungen erweitert.allow/deny-*permissions Ebenso werden durch das explizite Verweigern von Befehlen und Konfigurationsanweisungshierarchien mithilfe der Anweisungen Berechtigungen entfernt, die in der Anweisung bereits definiert sind.allow/deny-*permissions

In der folgenden Konfiguration ermöglicht die Berechtigung Benutzern in der login-Klasse beispielsweise, in den Konfigurationsmodus zu wechseln.configure Darüber hinaus ermöglicht der Ausdruck Benutzern, die Konfiguration auf Hierarchieebene zu ändern und zu bestätigen.allow-configuration[edit system services]

In ähnlicher Weise kann der Benutzer der Anmeldeklasse in der folgenden Konfiguration alle Vorgänge ausführen, die das Berechtigungsflag zulässt, mit der Ausnahme, dass der Benutzer die Konfiguration auf Hierarchieebene nicht anzeigen oder ändern kann:all[edit system services]

Grundlegendes zur Syntax von Allow- und Deny-Anweisungen

Sie können eine Anweisung nur einmal in jeder Anmeldeklasse konfigurieren.allow/deny-* Wenn Sie eine Anweisung konfigurieren:

  • Sie können beliebig viele reguläre Ausdrücke konfigurieren.

  • Bei regulären Ausdrücken wird nicht zwischen Groß- und Kleinschreibung unterschieden

Die Aussagen schließen sich gegenseitig mit den Anweisungen aus, und die Aussagen schließen sich gegenseitig mit den Anweisungen aus.allow/deny-commandsallow/deny-commands-regexpsallow/deny-configurationallow/deny-configuration-regexps Sie können z. B. nicht sowohl als auch in derselben Anmeldeklasse konfigurieren.allow-configurationallow-configuration-regexps

Um Zugriffsrechte für Befehle zu definieren, geben Sie erweiterte reguläre Ausdrücke mit der and-Anweisung an.allow-commandsdeny-commands Schließen Sie jeden vollständigen eigenständigen Ausdruck in Klammern ( ) ein, und verwenden Sie das Pipe-Symbol ( | ), um die Ausdrücke zu trennen. Verwenden Sie keine Leerzeichen zwischen regulären Ausdrücken, die mit dem Pipe-Symbol verbunden sind. Der vollständige Ausdruck wird in doppelte Anführungszeichen gesetzt.

Hier einige Zahlen zum Generationswechsel:

Sie müssen Anker verwenden, wenn Sie komplexe reguläre Ausdrücke mit der Anweisung angeben.allow-commands Hier einige Zahlen zum Generationswechsel:

Um Zugriffsrechte für Teile der Konfigurationshierarchie zu definieren, geben Sie erweiterte reguläre Ausdrücke in der and-Anweisung an.allow-configurationdeny-configuration Schließen Sie die vollständigen Pfade in Klammern ( ) ein, und verwenden Sie das Pipe-Symbol ( | ), um die Ausdrücke zu trennen. Verwenden Sie keine Leerzeichen zwischen regulären Ausdrücken, die mit dem Pipe-Symbol verbunden sind. Der vollständige Ausdruck wird in doppelte Anführungszeichen gesetzt.

Hier einige Zahlen zum Generationswechsel:

Wenn Sie erweiterte reguläre Ausdrücke mit der oder-Anweisung angeben, schließen Sie jeden Ausdruck in Anführungszeichen (" ") ein, und trennen Sie die Ausdrücke durch ein Leerzeichen.allow/deny-commands-regexpsallow/deny-configuration-regexps Schließen Sie mehrere Ausdrücke in eckige Klammern [ ] ein. Hier einige Zahlen zum Generationswechsel:

Modifizierer wie , und werden in der Zeichenfolge für reguläre Ausdrücke, die abgeglichen werden soll, nicht unterstützt.setlogcount Wenn Sie einen Modifikator verwenden, wird nichts abgeglichen.

Korrekte Konfiguration:

Falsche Konfiguration:

Grundlegendes zur Rangfolge und zum Abgleich von allow- und deny-Anweisungen

Standardmäßig haben die regulären Ausdrücke und Vorrang vor und Ausdrücken.allow-commandsallow-configurationdeny-commandsdeny-configuration Wenn Sie also denselben Befehl für die and-Anweisung konfigurieren, hat der allow-Vorgang Vorrang vor dem deny-Vorgang.allow-commandsdeny-commands Wenn Sie dieselbe Anweisung für die and-Anweisung konfigurieren, hat der allow-Vorgang Vorrang vor dem deny-Vorgang.allow-configurationdeny-configuration

Die folgende Konfiguration ermöglicht es z. B. einem Benutzer in der login-Klasse, Software mit dem Befehl zu installieren, obwohl die Anweisung denselben Befehl enthält:testrequest system software adddeny-commands

Auf ähnliche Weise ermöglicht die folgende Konfiguration einem Benutzer im Anmeldeklassentest, die Konfigurationshierarchie anzuzeigen und zu ändern, obwohl die Anweisung dieselbe Hierarchie enthält:test[edit system services]deny-configuration

Wenn die and-Anweisungen zwei verschiedene Varianten eines Befehls haben, wird immer die längste Übereinstimmung ausgeführt.allow-commandsdeny-commands Die folgende Konfiguration ermöglicht es einem Benutzer in der login-Klasse, den Befehl, aber nicht den Befehl auszuführen.testcommit synchronizecommit Dies liegt daran, dass die längste Übereinstimmung zwischen und ist und für angegeben ist.commit synchronizecommitcommit synchronizeallow-commands

Die folgende Konfiguration ermöglicht es einem Benutzer in der login-Klasse, den Befehl, aber nicht den Befehl auszuführen.testcommitcommit synchronize Dies liegt daran, dass die längste Übereinstimmung zwischen und ist und für angegeben ist.commit synchronizecommitcommit synchronizedeny-commands

Im Gegensatz zu den anderen Anweisungen besteht das Standardverhalten für die Anweisungen darin, dass die regulären Ausdrücke und Vorrang vor den Ausdrücken und haben.*-regexpsdeny-commands-regexpsdeny-configuration-regexpsallow-commands-regexpsallow-configuration-regexps Sie können die Anweisung auf Hierarchieebene konfigurieren, um zu erzwingen, dass die regulären Ausdrücke Vorrang vor den Anweisungen haben.regex-additive-logic[edit system]allow-configuration-regexpsdeny-configuration-regexps Wenn Sie die Anweisung konfigurieren, können Sie Konfigurationshierarchien auf einer höheren Ebene ablehnen und dem Benutzer dann nur den Zugriff auf bestimmte Unterhierarchien gewähren.

Grundlegendes zu den Regeln für die Anweisung "Zulassen" und "Verweigern"

Die , , und -Anweisungen haben Vorrang vor den Berechtigungen der Anmeldeklasse.allow/deny-commandsallow/deny-configurationallow/deny-commands-regexpsallow/deny-configuration-regexps Wenn Sie diese Anweisungen konfigurieren, gelten die folgenden Regeln:

  • Reguläre Ausdrücke für and-Anweisungen können auch die Befehle , , , , und enthalten.allow-commandsdeny-commandscommitloadrollbacksavestatusupdate

  • Die Berechtigungsbits der Anmeldeklasse haben Vorrang vor erweiterten regulären Ausdrücken, wenn ein Benutzer den Befehl mit aktiviertem Berechtigungsflag ausgibt.allrollbackrollback

  • Benutzer können den Befehl nicht ausgeben, wenn sie einen erweiterten regulären Ausdruck angeben.load override Benutzer können nur die Konfigurationsbefehle , und ausführen.mergereplacepatch

  • Sie können das Platzhalterzeichen * verwenden, wenn Sie reguläre Ausdrücke kennzeichnen. Sie müssen es jedoch als Teil eines regulären Ausdrucks verwenden. Sie können oder nicht als einzigen Ausdruck verwenden.[ * ][ .* ] Darüber hinaus können Sie die Anweisung nicht mit einem Ausdruck wie , konfigurieren, da dies zu .allow-configuration(interfaces (description (|.*))allow-configuration .*

Grundlegendes zu den Unterschieden für die *-regexps-Anweisungen

In diesem Abschnitt werden die Unterschiede zwischen den Anweisungen und den Anweisungen beschrieben.allow/deny-configurationallow/deny-configuration-regexps

Die Anweisungen teilen den regulären Ausdruck in Token auf und gleichen jedes Teil mit jedem Teil des vollständigen Pfads der angegebenen Konfiguration ab, während die Anweisungen mit der vollständigen Zeichenfolge übereinstimmen.allow/deny-configuration-regexpsallow/deny-configuration Für Anweisungen konfigurieren Sie einen Satz von Zeichenfolgen, in denen jede Zeichenfolge ein regulärer Ausdruck mit Leerzeichen zwischen den Begriffen der Zeichenfolge ist.allow/deny-configuration-regexps Diese Syntax ermöglicht einen sehr schnellen Abgleich, bietet jedoch weniger Flexibilität. Zum Angeben von Platzhalterausdrücken müssen Sie Platzhalter für jedes Token der durch Leerzeichen getrennten Zeichenfolge einrichten, die Sie abgleichen möchten, wodurch die Verwendung von Platzhalterausdrücken für diese Anweisungen erschwert wird.

Hier einige Zahlen zum Generationswechsel:

  • Reguläre Ausdrücke, die mit einem Token übereinstimmen, indem sie allow-configuration-regexps verwenden

    Dieses Beispiel zeigt, dass dies der einzige übereinstimmende Ausdruck für das erste Token der Anweisung ist.options

    Die obige Konfiguration stimmt mit den folgenden Anweisungen überein:

    • Bedingung für Richtlinienoptionen festlegen dynamic-dbcondition

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

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

    Die obige Konfiguration stimmt nicht mit den folgenden Anweisungen überein:

    • host-optionen für den System-Hostnamen

    • Schnittstellenbeschreibungsoptioneninterface-name

  • Regulärer Ausdruck, der mit drei Token übereinstimmt, indem allow-configuration-regexps verwendet wird

    Dieses Beispiel zeigt, dass dies der einzige übereinstimmende Ausdruck für das dritte Token der Anweisung ist.ssh

    Im vorherigen Beispiel enthalten die drei Token , bzw. . . . und ..*.*.*ssh

    Die obige Konfiguration stimmt mit den folgenden Anweisungen überein:

    • System-Hostname Hostname-SSH

    • Systemdienste SSH

    • Systemdienste ausgehend-ssh

    Die obige Konfiguration stimmt nicht mit der folgenden Anweisung überein:

    • Schnittstellen Beschreibung SSHinterface-name

Es ist einfacher, die Anweisung zum Einschränken des Konfigurationszugriffs zu verwenden, als die Anweisung zu verwenden. veranschaulicht die Verwendung der and-Anweisung in verschiedenen Konfigurationen, um das gleiche Ergebnis der Beschränkung des Zugriffs auf eine bestimmte Konfiguration zu erzielen. deny-configurationdeny-configuration-regexpsTabelle 2deny-configurationdeny-configuration-regexps

Tabelle 2: Einschränken des Konfigurationszugriffs mithilfe der Anweisungen deny-configuration und deny-configuration-regexps

Konfiguration verweigert

Mit: deny-configuration

Mit: deny-configuration-regexps

Ergebnis

xnm-ssl

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

Die folgende Konfigurationsanweisung wird verweigert:

  • Systemdienste XNM-SSL

ssh

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

Die folgenden Konfigurationsanweisungen werden abgelehnt:

  • System-Hostname Hostname-SSH

  • Systemdienste SSH

  • Systemdienste ausgehend-ssh

  • sicherheit ssh-known-host

Obwohl die Anweisungen auch nützlich sind, wenn Sie eine einfache Konfiguration wünschen, bieten die Anweisungen eine bessere Leistung und überwinden die Mehrdeutigkeit, die beim Kombinieren von Ausdrücken in den Anweisungen bestand.allow/deny-configurationallow/deny-configuration-regexpsallow/deny-configuration

Verwenden regulärer Ausdrücke auf Remoteautorisierungsservern

Sie können erweiterte reguläre Ausdrücke verwenden, um anzugeben, welche Befehle im Betriebsmodus und Konfigurationsmodus sowie Konfigurationsanweisungen und -hierarchien für bestimmte Benutzer zulässig oder verweigert werden. Diese regulären Ausdrücke geben Sie lokal in den Anweisungen , und auf Hierarchieebene an.allow/deny-commandsallow/deny-configurationallow/deny-commands-regexpsallow/deny-configuration-regexps[edit system login class class-name] Sie können diese regulären Ausdrücke remote angeben, indem Sie in der Konfiguration Ihres Autorisierungsservers herstellerspezifische TACACS+- oder RADIUS-Attribute von Juniper Networks angeben. Wenn Sie Autorisierungsparameter sowohl lokal als auch remote konfigurieren, führt das Gerät die regulären Ausdrücke, die während der TACACS+- oder RADIUS-Autorisierung empfangen wurden, mit allen regulären Ausdrücken zusammen, die auf dem lokalen Gerät definiert sind.

HINWEIS:

Ab Junos OS Version 18.1 werden die und-Anweisungen für die TACACS+-Autorisierung unterstützt.allow-commands-regexpsdeny-commands-regexps

Wenn Sie mehrere reguläre Ausdrücke in einer lokalen Konfiguration mit der , , oder -Anweisung angeben, konfigurieren Sie reguläre Ausdrücke in Klammern und trennen sie durch das Pipe-Symbol.allow-commandsdeny-commandsallow-configurationdeny-configuration Sie schließen den vollständigen Ausdruck in doppelte Anführungszeichen ein. Sie können z. B. mehrere Parameter mit der folgenden Syntax angeben:allow-commands

Der RADIUS-Autorisierungsserver verwendet die folgenden Attribute und Syntax:

Der TACACS+-Autorisierungsserver verwendet die folgenden Attribute und Syntax:

Wenn Sie mehrere reguläre Ausdrücke in einer lokalen Konfiguration mit der , , oder -Anweisung angeben, konfigurieren Sie reguläre Ausdrücke in doppelten Anführungszeichen und trennen sie mit dem Leerzeichenoperator.allow-commands-regexpsdeny-commands-regexpsallow-configuration-regexpsdeny-configuration-regexps Sie schließen den vollständigen Ausdruck in eckige Klammern ein. Sie können z. B. mehrere Parameter für Zulassungsbefehle mit der folgenden Syntax angeben:

Der RADIUS-Autorisierungsserver verwendet die folgenden Attribute und Syntax:

Der TACACS+-Autorisierungsserver verwendet die folgenden Attribute und Syntax:

RADIUS- und TACACS+-Server unterstützen auch eine vereinfachte Syntax, bei der Sie jeden einzelnen Ausdruck in einer separaten Zeile angeben. Die vereinfachte Syntax des RADIUS-Servers lautet beispielsweise:

In ähnlicher Weise lautet die vereinfachte Syntax des TACACS+-Servers:

Tabelle 3 unterscheidet die lokale Autorisierungskonfiguration und die TACACS+-Serverautorisierungskonfiguration mithilfe regulärer Ausdrücke.

Tabelle 3: Beispiel für eine lokale und Remote-Autorisierungskonfiguration mit regulären Ausdrücken

Lokale Konfiguration

Remote-TACACS+-Konfiguration

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"
    }
}
HINWEIS:
  • Sie müssen den Zugriff auf den NETCONF-Modus explizit zulassen, entweder lokal oder remote, indem Sie die folgenden drei Befehle ausführen: , und .xml-modenetconfneed-trailer

  • Wenn Sie die Anweisung verwenden, müssen Sie alle gewünschten Konfigurationen mithilfe der Anweisung zulassen.deny-configuration = ".*"allow-configuration Diese Konfiguration kann sich jedoch auf den zulässigen Puffergrenzwert für reguläre Ausdrücke für die Anweisung auswirken.allow-configuration Wenn dieser Grenzwert überschritten wird, funktioniert die zulässige Konfiguration möglicherweise nicht.

Reguläre Ausdrücke angeben

WARNUNG:

Wenn Sie reguläre Ausdrücke für Befehle und Konfigurationsanweisungen angeben, achten Sie genau auf die folgenden Beispiele. Ein regulärer Ausdruck mit ungültiger Syntax führt möglicherweise nicht zu den gewünschten Ergebnissen, selbst wenn für die Konfiguration ein Fehler ausgeführt wird.

Sie sollten reguläre Ausdrücke für Befehle und Konfigurationsanweisungen auf die gleiche Weise angeben wie beim Ausführen des vollständigen Befehls oder der vollständigen Anweisung. Listet die regulären Ausdrücke zum Konfigurieren von Zugriffsrechten für die AND-Anweisungshierarchien auf.Tabelle 4[edit interfaces][edit vlans]

Tabelle 4: Reguläre Ausdrücke angeben

Anweisung

Regulärer Ausdruck

Konfigurationshinweise

[edit interfaces]

Der Befehl für Schnittstellen wird wie folgt ausgeführt:set

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

Die Anweisung ist an sich unvollständig und erfordert die Option zum Ausführen der Anweisung.set interfacesunit

Daher muss der reguläre Ausdruck, der zum Verweigern der Konfiguration erforderlich ist, die gesamte ausführbare Zeichenfolge mit dem Operator anstelle von Anweisungsvariablen angeben:set interfaces.*

[edit system login class class-name]
user@host# set permissions configure
user@host# set deny-configuration "interfaces .* unit .*"
  • Der Operator bezeichnet alles ab dem angegebenen Punkt für diesen bestimmten Befehl oder diese bestimmte Anweisung..* In diesem Beispiel bezeichnet es einen beliebigen Schnittstellennamen mit einem beliebigen Einheitenwert.

  • Die Angabe nur der Anweisung ist falsch und verweigert nicht den Zugriff auf die Schnittstellenkonfiguration für die angegebene Anmeldeklasse.deny-configuration "interfaces .*"

  • Andere gültige Optionen können in den regulären Ausdruck aufgenommen werden. Hier einige Zahlen zum Generationswechsel:

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

    Hinweis: Der reguläre Ausdruck in diesem Beispiel wird verwendet, wenn erwartet wird, dass mehrere Zeichenfolgen, die mit dem Schlüsselwort beginnen, im angegebenen regulären Ausdruck enthalten sind.mem.*mem Wenn erwartet wird, dass nur eine Zeichenfolge enthalten ist, wird der reguläre Ausdruck verwendet.membermember .*

[edit vlans]

Der Befehl für VLANs wird wie folgt ausgeführt:set

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

Hier ist die Anweisung an sich unvollständig und erfordert die Option zum Ausführen der Anweisung.set vlansvlan-id

Daher muss der reguläre Ausdruck, der zum Zulassen der Konfiguration erforderlich ist, die gesamte ausführbare Zeichenfolge mit dem Operator anstelle von Anweisungsvariablen angeben:set vlans.*

[edit system login class class-name]
user@host# set permissions configure
user@host# set allow-configuration "vlans .* vlan-id .*"
  • Der Operator bezeichnet alles ab dem angegebenen Punkt für diesen bestimmten Befehl oder diese bestimmte Anweisung..* In diesem Beispiel bezeichnet es einen beliebigen VLAN-Namen mit einer beliebigen VLAN-ID.

  • Andere gültige Optionen in der Anweisungshierarchie können in den regulären Ausdruck aufgenommen werden.[edit vlans] Hier einige Zahlen zum Generationswechsel:

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

Operatoren für reguläre Ausdrücke

Tabelle 5 Listet allgemeine Operatoren für reguläre Ausdrücke auf, die Sie zum Zulassen oder Verweigern von Betriebs- und Konfigurationsmodi verwenden können.

Reguläre Ausdrücke für Befehle implementieren die erweiterten (modernen) regulären Ausdrücke, wie sie in POSIX 1003.2 definiert sind.

Tabelle 5: Allgemeine Operatoren für reguläre Ausdrücke

Administrator

Match

Beispiel

|

Einer von zwei oder mehr Begriffen, die durch die Pipe getrennt sind. Jeder Ausdruck muss ein vollständiger, eigenständiger Ausdruck sein, der in Klammern ( ) eingeschlossen ist und keine Leerzeichen zwischen dem senkrechten Strich und den angrenzenden Klammern enthält.

[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)"

Mit der vorhergehenden Konfiguration haben die Benutzer, die der Testanmeldeklasse zugeordnet sind, Zugriff auf den Betriebsmodus, der nur auf die in der Anweisung angegebenen Befehle beschränkt ist.allow-commands Sie haben auch Zugriff auf den Konfigurationsmodus, mit Ausnahme der in der Anweisung angegebenen Hierarchieebenen.deny-configuration

^

Am Anfang eines Ausdrucks, wird verwendet, um anzugeben, wo der Befehl beginnt, wo es möglicherweise Mehrdeutigkeiten gibt.

[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)"

Mit der vorhergehenden Konfiguration haben die Benutzer, die der Testanmeldeklasse zugewiesen sind, Zugriff auf die Anzeige und Konfiguration der Schnittstellenkonfiguration. Die Anweisung gewährt Zugriff auf Befehle, die mit den Schlüsselwörtern and beginnen.allow-commandsshowmonitor

Für den ersten Filter umfassen die angegebenen Befehle die Befehle , und .show logshow interfacesshow policer Der zweite Filter gibt alle Befehle an, die mit dem Schlüsselwort beginnen, z. B. das oder die Befehle.monitormonitor interfacesmonitor traffic

$

Zeichen am Ende eines Befehls. Wird verwendet, um einen Befehl zu bezeichnen, der bis zu diesem Punkt genau übereinstimmen muss.

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

Mit der vorhergehenden Konfiguration können die Benutzer, die der Test-Login-Klasse zugewiesen sind, die Schnittstellenkonfiguration im Konfigurationsmodus anzeigen. Die Benutzer können die Schnittstellenkonfiguration auch mit dem Befehl Betriebsmodus anzeigen.show configuration Der in der Anweisung angegebene reguläre Ausdruck schränkt die Benutzer jedoch ein, nur den Befehl auszuführen, und verweigert den Zugriff auf die Befehlserweiterungen wie oder .allow-commandsshow interfacesshow interfaces detailshow interfaces extensive

[ ]

Buchstaben- oder Ziffernbereich. Um den Anfang und das Ende eines Bereichs zu trennen, verwenden Sie einen Bindestrich ( -). 

[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 .*" ]

Bei der obigen Konfiguration verfügen die Benutzer, die der Testanmeldeklasse zugewiesen sind, über Benutzerberechtigungen auf Operatorebene. Diese Benutzer haben auch Zugriff auf die Konfiguration von Schnittstellen innerhalb des angegebenen Bereichs von Schnittstellenname und Gerätenummer (0 bis 9).

( )

Eine Gruppe von Befehlen, die einen vollständigen, eigenständigen Ausdruck angeben, der ausgewertet werden soll. Das Ergebnis wird dann als Teil des Gesamtausdrucks ausgewertet. Klammern müssen, wie erläutert, in Verbindung mit Leitungsoperatoren verwendet werden.

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

Mit der obigen Konfiguration verfügen Benutzer, die der Testanmeldeklasse zugewiesen sind, über Berechtigungen auf Superuser-Ebene und haben Zugriff auf die in der Anweisung angegebenen Befehle.allow-commands

*

Null oder mehr Begriffe.

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

Mit der obigen Konfiguration wird Benutzern, die der Testanmeldeklasse zugewiesen sind, deren Anmeldename mit beginnt, der Konfigurationszugriff verweigert.m

+

Ein oder mehrere Begriffe.

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

Mit der obigen Konfiguration wird Benutzern, die der Testanmeldeklasse zugewiesen sind, deren Anmeldename mit beginnt, der Konfigurationszugriff verweigert.m

.

Ein beliebiges Zeichen mit Ausnahme eines Leerzeichens " ".

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

Mit der obigen Konfiguration wird Benutzern, die der Testanmeldeklasse zugewiesen sind, deren Anmeldename mit beginnt, der Konfigurationszugriff verweigert.m

.*

Alles ab dem angegebenen Punkt.

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

Mit der obigen Konfiguration wird Benutzern, die der Testanmeldeklasse zugewiesen sind, deren Anmeldename mit beginnt, der Konfigurationszugriff verweigert.m

Ebenso verweigert die Anweisung den gesamten Konfigurationszugriff auf der Hierarchieebene .deny-configuration "protocols .*"[edit protocols]

HINWEIS:
  • Die Vorgänge , und können mithilfe von .*+..*

  • Die and-Anweisungen verweigern den Zugriff auf alle Betriebsmodusbefehle bzw. Konfigurationshierarchien.deny-commands .*deny-configuration .*

HINWEIS:

Der Operator für reguläre Ausdrücke wird nicht unterstützt.!

Beispiele für reguläre Ausdrücke

Listet die regulären Ausdrücke auf, die verwendet werden, um Konfigurationsoptionen unter zwei Konfigurationshierarchien zuzulassen – und – als Beispiel für die Angabe regulärer Ausdrücke.Tabelle 6[edit system ntp server][edit protocols rip]

HINWEIS:

Tabelle 6 bietet keine umfassende Liste aller regulären Ausdrücke und Schlüsselwörter für alle Konfigurationsanweisungen und Hierarchien. Die in der Tabelle aufgeführten regulären Ausdrücke werden nur für die Anweisungshierarchien und überprüft.[edit system ntp server][edit protocols rip]

Tabelle 6: Beispiele für reguläre Ausdrücke

Anweisungshierarchie

Reguläre Ausdrücke

Zulässige Konfiguration

Verweigerte Konfiguration

[edit system ntp server]

     

Schlüssel 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" ]
  • Server-IP

  • Server-IP und -Schlüssel

  • Version

  • Bevorzugen

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" ]
  • Server-IP

  • Server-IP und -Version

  • Schlüssel

  • Bevorzugen

Bevorzugen

[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 .*" ]
  • Server-IP

  • Server-IP und bevorzugen

  • Schlüssel

  • Version

[edit protocols rip]

     

message-size 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 .*" ]
  • message-size

  • Metrik in

  • route-timeout

  • update-intervall

Metrik in 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 .*" ]
  • Metrik in

  • message-size

  • route-timeout

  • update-intervall

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 .*" ]
  • route-timeout

  • message-size

  • Metrik in

  • update-intervall

update-intervall 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 .*" ]
  • update-intervall

  • message-size

  • Metrik in

  • route-timeout

So definieren Sie Zugriffsrechte mit allow-configuration- und deny-configuration-Anweisungen

Sie können Zugriffsberechtigungen für Konfigurationsanweisungshierarchien definieren, indem Sie eine Kombination der folgenden Anweisungstypen verwenden:

  • Berechtigungs-Flags

  • und Erklärungenallow-configurationdeny-configuration

Die Berechtigungsflags definieren die größeren Grenzen dessen, worauf eine Person oder Anmeldeklasse zugreifen und was sie kontrollieren kann. Die and-Anweisungen enthalten einen oder mehrere reguläre Ausdrücke, die bestimmte Konfigurationshierarchien und -anweisungen zulassen oder ablehnen.allow-configurationdeny-configuration Die and-Anweisungen haben Vorrang vor Berechtigungsflags und geben dem Administrator eine genauere Kontrolle darüber, welche Hierarchien und Anweisungen der Benutzer anzeigen und konfigurieren kann.allow-configurationdeny-configuration

In diesem Thema wird erläutert, wie Zugriffsberechtigungen mithilfe von and-Anweisungen definiert werden, indem Beispiele für Anmeldeklassenkonfigurationen gezeigt werden, die diese Anweisungen verwenden.allow-configurationdeny-configuration In den Beispielen 1 bis 3 werden Anmeldeklassen erstellt, die Benutzern den Zugriff auf alle Befehle und Anweisungen mit Ausnahme der in der Anweisung definierten ermöglichen.deny-configuration

Beachten Sie, dass das Berechtigungsbit und das Berechtigungsflag synonym verwendet werden.

Beispiel 1

So erstellen Sie eine Anmeldeklasse, die es dem Benutzer ermöglicht, alle Befehle auszuführen und alles außer Telnet-Parametern zu konfigurieren:

  1. Legen Sie die Anmeldeklassenberechtigungen des Benutzers auf fest.all
  2. Fügen Sie die folgende Anweisung hinzu.deny-configuration

Beispiel 2

So erstellen Sie eine Login-Klasse, die es dem Benutzer ermöglicht, alle Befehle auszuführen und alles außer Anweisungen innerhalb einer Login-Klasse zu konfigurieren, deren Name mit "m" beginnt:

  1. Legen Sie die Anmeldeklassenberechtigungen des Benutzers auf fest.all

  2. Fügen Sie die folgende Anweisung hinzu.deny-configuration

Beispiel 3

So erstellen Sie eine Anmeldeklasse, die es dem Benutzer ermöglicht, alle Befehle auszuführen und alles außer den Hierarchieebenen oder zu konfigurieren:[edit system login class][edit system services]

  1. Legen Sie die Anmeldeklassenberechtigungen des Benutzers auf fest.all

  2. Fügen Sie die folgende Anweisung hinzu:deny-configuration

Die folgenden Beispiele zeigen, wie Sie mit der and-Anweisung Berechtigungen für die Hierarchieebene invers zueinander bestimmen können.allow-configurationdeny-configuration[edit system services]

Beispiel 4

So erstellen Sie eine Anmeldeklasse, die dem Benutzer nur auf Hierarchieebene vollständige Konfigurationsrechte gewährt:[edit system services]

  1. Legen Sie die Anmeldeklassenberechtigungen des Benutzers auf fest.configure

  2. Fügen Sie die folgende Anweisung hinzu:allow-configuration

Beispiel 5

So erstellen Sie eine Anmeldeklasse, die dem Benutzer vollständige Berechtigungen für alle Befehle und alle Konfigurationshierarchien mit Ausnahme der Hierarchieebene gewährt:[edit system services]

  1. Legen Sie die Anmeldeklassenberechtigungen des Benutzers auf fest.all

  2. Fügen Sie die folgende Anweisung hinzu.deny-configuration

Beispiel: Verwenden Sie additive Logik mit regulären Ausdrücken, um Zugriffsrechte anzugeben

In diesem Beispiel wird gezeigt, wie additive Logik verwendet wird, wenn reguläre Ausdrücke zum Einrichten von Konfigurationszugriffsberechtigungen verwendet werden.

Anforderungen

In diesem Beispiel wird ein Gerät verwendet, auf dem Junos OS Version 16.1 oder höher ausgeführt wird.

Überblick

Sie können reguläre Ausdrücke definieren, um zu steuern, wer Änderungen an der Konfiguration vornehmen kann und was geändert werden kann. Diese regulären Ausdrücke geben bestimmte Konfigurationshierarchien an, auf die Benutzer in einer Anmeldeklasse zugreifen dürfen. Sie können z. B. reguläre Ausdrücke definieren, die es Benutzern ermöglichen, eine Gruppe von Routing-Instanzen zu ändern, und reguläre Ausdrücke definieren, die verhindern, dass Benutzer Änderungen an anderen Routing-Instanzen oder an anderen Konfigurationsebenen vornehmen. Sie definieren die regulären Ausdrücke, indem Sie die and-Anweisungen für eine login-Klasse konfigurieren.allow-configuration-regexpsdeny-configuration-regexps

Standardmäßig hat die Anweisung Vorrang vor der Anweisung.deny-configuration-regexpsallow-configuration-regexps Wenn eine Konfigurationshierarchie in einer Anweisung für eine Anmeldeklasse angezeigt wird, ist sie für die Benutzer in dieser Klasse nicht sichtbar, unabhängig vom Inhalt der Anweisung.deny-configuration-regexpsallow-configuration-regexps Wenn eine Konfigurationshierarchie nicht in einer Anweisung angezeigt wird, ist sie für die Benutzer in dieser Klasse sichtbar, wenn sie in einer Anweisung angezeigt wird.deny-configuration-regexpsallow-configuration-regexps

Sie können dieses Standardverhalten ändern, indem Sie die additive Logik für die Anweisungen aktivieren.*-configuration-regexps Wenn Sie die additive Logik aktivieren, hat die Anweisung Vorrang vor der Anweisung.allow-configuration-regexpsdeny-configuration-regexps

Wenn also die Anweisung den Zugriff auf alle Konfigurationshierarchien auf einer bestimmten Ebene (protocols .*) verweigert, die Anweisung jedoch den Zugriff auf eine Unterhierarchie (protocols bgp .*) zulässt, verweigert das Gerät standardmäßig den Zugriff auf die Hierarchien für Benutzer in dieser Anmeldeklasse, da die Anweisung Vorrang hat.deny-configuration-regexpsallow-configuration-regexpsdeny-configuration-regexps Wenn Sie jedoch die additive Logik aktivieren, ermöglicht das Gerät Benutzern in dieser Anmeldeklasse den Zugriff auf die angegebene Unterhierarchie, da die in diesem Fall Vorrang hat.allow-configuration-regexps

Konfiguration

Schritt-für-Schritt-Anleitung

Gehen Sie wie folgt vor, um die additive Logik zu aktivieren, um Benutzern in einer bestimmten Anmeldeklasse explizit den Zugriff auf eine oder mehrere einzelne Konfigurationshierarchien zu ermöglichen:

  1. Fügen Sie die Anweisung ein, und verweigern Sie explizit den Zugriff auf Konfigurationshierarchien.deny-configuration-regexps

    Hier einige Zahlen zum Generationswechsel:

  2. Fügen Sie die Anweisung ein, und definieren Sie reguläre Ausdrücke für die spezifischen Hierarchien, die zulässig sein sollen.allow-configuration-regexps

    Hier einige Zahlen zum Generationswechsel:

  3. Aktivieren Sie die additive Logik für die und reguläre Ausdrücke.allow-configuration-regexpsdeny-configuration-regexps

  4. Weisen Sie die Anmeldeklasse einem oder mehreren Benutzern zu.

  5. Bestätigen Sie Ihre Änderungen.

    Benutzer, die dieser Anmeldeklasse zugewiesen sind, haben Zugriff auf die in der Anweisung enthaltenen Konfigurationshierarchien, jedoch nicht auf die anderen in der Anweisung angegebenen Hierarchien.allow-configuration-regexpsdeny-configuration-regexps

HINWEIS:

Wenn Sie die Anweisung konfigurieren, gilt die Verhaltensänderung für alle und Anweisungen, die in allen Anmeldeklassen vorhanden sind.regex-additive-logicallow-configuration-regexpsdeny-configuration-regexps Wenn Sie die additive Logik aktivieren, sollten Sie vorhandene Anweisungen auf etwaige Auswirkungen auswerten und die regulären Ausdrücke in diesen Anweisungen entsprechend aktualisieren.

Beispiele:

Verwenden regulärer Ausdrücke mit additiver Logik

Zweck

Dieser Abschnitt enthält Beispiele für reguläre Ausdrücke, die additive Logik verwenden, um Ihnen Ideen zum Erstellen von Konfigurationen zu geben, die für Ihr System geeignet sind.

Bestimmte Routing-Instanzen zulassen

Die folgende Beispiel-Anmeldeklasse enthält einen regulären Ausdruck, der die Konfiguration von Routinginstanzen ermöglicht, deren Namen mit ; beginnen, z. B. , , usw.CUST-VRF-CUST-VRF-1CUST-VRF-25CUST-VRF-100 Das Beispiel enthält auch einen regulären Ausdruck, der die Konfiguration von Routinginstanzen verhindert.

Standardmäßig hat die Anweisung Vorrang, und die vorherige Konfiguration verhindert, dass die Benutzer in der login-Klasse Routinginstanzen unabhängig vom Namen konfigurieren können.deny-configuration-regexps

Wenn Sie jedoch die folgende Anweisung konfigurieren, hat die Anweisung Vorrang.allow-configuration-regexps Somit können die Benutzer Routing-Instanzen konfigurieren, deren Namen mit beginnen, aber die Benutzer können keine anderen Routing-Instanzen konfigurieren.CUST-VRF-

Nur BGP-Peer-Konfiguration zulassen

Die folgende Beispiel-Anmeldeklasse enthält reguläre Ausdrücke, die die Konfiguration auf Hierarchieebene verhindern, aber die Konfiguration von BGP-Peers zulassen:[edit protocols]

Standardmäßig verhindert die vorherige Konfiguration, dass die Benutzer in der login-Klasse Änderungen an Hierarchien unter vornehmen.[edit protocols]

Wenn Sie jedoch die folgende Anweisung konfigurieren, können die Benutzer in der login-Klasse Änderungen an BGP-Peers vornehmen, aber die Benutzer können keine anderen Protokolle oder andere BGP-Anweisungen außerhalb der zulässigen Hierarchieebene konfigurieren.

Überprüfung

So überprüfen Sie, ob Sie die Zugriffsrechte richtig festgelegt haben:

  1. Konfigurieren Sie eine Anmeldeklasse, und führen Sie einen Commit für die Änderungen aus.

  2. Weisen Sie die Anmeldeklasse einer .username

  3. Melden Sie sich als zugewiesene mit der neuen login-Klasse an.username

  4. Versuchen Sie, die zulässigen Hierarchieebenen zu konfigurieren.

    • Sie sollten in der Lage sein, Anweisungen in Hierarchieebenen zu konfigurieren, die erlaubt wurden.

    • Hierarchieebenen, die verweigert werden, sollten nicht sichtbar sein.

    • Alle zulässigen oder verweigerten Ausdrücke sollten Vorrang vor allen Berechtigungen haben, die mit der Anweisung erteilt werden.permissions

Beispiel: Konfigurieren von Benutzerberechtigungen mit Zugriffsrechten für Betriebsmodusbefehle

In diesem Beispiel wird gezeigt, wie benutzerdefinierte Anmeldeklassen konfiguriert und Zugriffsrechte für Betriebsmodusbefehle zugewiesen werden. Benutzer in der login-Klasse können nur die Befehle ausführen, auf die sie Zugriff haben. Dadurch wird verhindert, dass unbefugte Benutzer vertrauliche Befehle ausführen, die das Netzwerk beschädigen könnten.

Anforderungen

In diesem Beispiel werden die folgenden Hardware- und Softwarekomponenten verwendet:

  • Ein Gerät von Juniper Networks

  • Ein TACACS+- (oder RADIUS-) Server

Bevor Sie beginnen, stellen Sie eine TCP-Verbindung zwischen dem Gerät und dem TACACS+-Server her. Stellen Sie beim RADIUS-Server eine UDP-Verbindung zwischen dem Gerät und dem RADIUS-Server her.

Übersicht und Topologie

Abbildung 1 veranschaulicht eine einfache Topologie, bei der Router R1 ein Gerät von Juniper Networks ist und über eine TCP-Verbindung mit einem TACACS+-Server verfügt.

Abbildung 1: TopologieTopologie

In diesem Beispiel wird R1 mit drei benutzerdefinierten Anmeldeklassen konfiguriert: Klasse 1, Klasse 2 und Klasse 3. Jede Klasse definiert Zugriffsrechte für den Benutzer, indem sie die Anweisung konfiguriert und erweiterte reguläre Ausdrücke mit der and-Anweisung definiert.permissionsallow-commandsdeny-commands

Der Zweck jeder Anmeldeklasse ist wie folgt:

  • – Definiert Zugriffsrechte für den Benutzer nur mit der Anweisung.Class1allow-commands Diese Anmeldeklasse bietet Benutzerberechtigungen auf Bedienerebene und Autorisierung für den Neustart des Geräts.

  • – Definiert Zugriffsrechte für den Benutzer nur mit der Anweisung.Class2deny-commands Diese login-Klasse stellt Benutzerberechtigungen auf Operatorebene bereit und verweigert den Zugriff auf Befehle.set

  • – Definiert die Zugriffsrechte für den Benutzer mit den Anweisungen "und ".Class3allow-commandsdeny-commands Diese Anmeldeklasse bietet Benutzerberechtigungen auf Superuser-Ebene und Autorisierung für den Zugriff auf Schnittstellen und das Anzeigen von Geräteinformationen. Außerdem wird der Zugriff auf die Befehle und verweigert.editconfigure

Router R1 verfügt über drei verschiedene Benutzer, User1, User2 und User3, die den Anmeldeklassen Class1, Class2 bzw. Class3 zugewiesen sind.

Konfiguration

CLI-Schnellkonfiguration

Um dieses Beispiel schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen Sie sie in eine Textdatei ein, entfernen Sie alle Zeilenumbrüche, ändern Sie alle Details, die für Ihre Netzwerkkonfiguration erforderlich sind, kopieren Sie die Befehle, und fügen Sie sie auf Hierarchieebene in die CLI ein, und wechseln Sie dann in den Konfigurationsmodus.[edit]commit

R1

Konfigurieren der Authentifizierungsparameter für Router R1

Schritt-für-Schritt-Anleitung

So konfigurieren Sie die Router R1-Authentifizierung:

  1. Konfigurieren Sie die Reihenfolge, in der R1 versucht, den Benutzer zu authentifizieren. In diesem Beispiel steht die TACACS+-Serverauthentifizierung an erster Stelle, gefolgt von der RADIUS-Serverauthentifizierung und dann dem lokalen Kennwort.

  2. Konfigurieren Sie den TACACS+-Server.

  3. Konfigurieren Sie den RADIUS-Server.

  4. Konfigurieren Sie R1-Abrechnungsparameter.

Konfigurieren von Zugriffsrechten mit der allow-commands-Anweisung (Class1)

Schritt-für-Schritt-Anleitung

So geben Sie reguläre Ausdrücke mit der folgenden Anweisung an:allow-commands

  1. Konfigurieren Sie die Anmeldeklasse Class1, und weisen Sie Benutzerberechtigungen auf Operatorebene zu.

  2. Konfigurieren Sie den regulären Ausdruck so, dass Benutzer in der Klasse das Gerät neu starten können.allow-commands

  3. Konfigurieren Sie das Benutzerkonto für die Anmeldeklasse Class1.

Konfigurieren von Zugriffsrechten mit der deny-commands-Anweisung (Class2)

Schritt-für-Schritt-Anleitung

So geben Sie reguläre Ausdrücke mit der folgenden Anweisung an:deny-commands

  1. Konfigurieren Sie die Class2-Anmeldeklasse, und weisen Sie Benutzerberechtigungen auf Operatorebene zu.

  2. Konfigurieren Sie den regulären Ausdruck so, dass Benutzer in der Klasse keine Befehle ausführen können.deny-commandsset

  3. Konfigurieren Sie das Benutzerkonto für die Anmeldeklasse Class2.

Konfigurieren von Zugriffsrechten sowohl mit der allow-commands- als auch mit deny-commands-Anweisung (Class3)

Schritt-für-Schritt-Anleitung

So geben Sie reguläre Ausdrücke mit der and-Anweisung an:allow-commandsdeny-commands

  1. Konfigurieren Sie die Class3-Anmeldeklasse, und weisen Sie Berechtigungen auf Superuser-Ebene zu.

  2. Konfigurieren Sie den regulären Ausdruck, um zu verhindern, dass Benutzer in der Klasse Befehle ausführen.deny-commands

  3. Konfigurieren Sie den regulären Ausdruck so, dass Benutzer in den Konfigurationsmodus wechseln können.allow-commands

  4. Konfigurieren Sie das Benutzerkonto für die Class3-Anmeldeklasse.

Ergebnisse

Bestätigen Sie im Konfigurationsmodus Ihre Konfiguration, indem Sie den Befehl eingeben.show system Wenn die Ausgabe nicht die gewünschte Konfiguration anzeigt, wiederholen Sie die Anweisungen in diesem Beispiel, um die Konfiguration zu korrigieren.

Überprüfung

Melden Sie sich mit dem Benutzernamen an, der der neuen login-Klasse zugewiesen wurde, und vergewissern Sie sich, dass die Konfiguration ordnungsgemäß funktioniert.

Überprüfen der Class1-Konfiguration

Zweck

Stellen Sie sicher, dass die Berechtigungen und Befehle, die in der Anmeldeklasse Class1 zulässig sind, funktionieren.

Was

Führen Sie den Befehl im Betriebsmodus aus.show system users

Führen Sie den Befehl im Betriebsmodus aus.request system reboot

Bedeutung

Die Class1-Anmeldeklasse, der User1 zugewiesen ist, verfügt über Benutzerberechtigungen auf Operatorebene und ermöglicht Benutzern in der Klasse die Ausführung des Befehls.request system reboot

Für die vordefinierte Operator-Anmeldeklasse sind die folgenden Berechtigungsflags angegeben:

  • —Kann Befehle zum Löschen (Löschen) von Informationen verwenden , die das Gerät aus dem Netzwerk lernt und in verschiedenen Netzwerkdatenbanken speichert.clearclear

  • —Kann mit den Befehlen , , und auf das Netzwerk zugreifen.networkpingsshtelnettraceroute

  • – Kann Softwareprozesse mithilfe des Befehls neu starten.resetrestart

  • trace: Kann Trace-Dateieinstellungen anzeigen und Trace-Dateieigenschaften konfigurieren.

  • view—Kann verschiedene Befehle verwenden, um aktuelle systemweite, Routing-Tabellen- und protokollspezifische Werte und Statistiken anzuzeigen. Die geheime Konfiguration kann nicht angezeigt werden.

Für die Anmeldeklasse Class1 kann zusätzlich zu den oben genannten Benutzerberechtigungen User1 den Befehl ausführen.request system reboot Die erste Ausgabe zeigt die Ansichtsberechtigungen als Operator an, und die zweite Ausgabe zeigt, dass der einzige Befehl, den User1 als Operator ausführen kann, der Befehl ist.request systemrequest system reboot

Überprüfen der Class2-Konfiguration

Zweck

Stellen Sie sicher, dass die Berechtigungen und Befehle, die für die Class2-Anmeldeklasse zulässig sind, funktionieren.

Was

Führen Sie den Befehl im Betriebsmodus aus.ping

Überprüfen Sie an der CLI-Eingabeaufforderung die verfügbaren Befehle.

Führen Sie an der CLI-Eingabeaufforderung einen beliebigen set-Befehl aus.

Bedeutung

Die Class2-Anmeldeklasse, der User2 zugewiesen ist, verfügt über Benutzerberechtigungen auf Operatorebene und verweigert den Zugriff auf alle Befehle.set

Die Berechtigungsflags, die für die vordefinierte Operatoranmeldeklasse angegeben sind, sind identisch mit denen, die für Class1 angegeben sind.

Überprüfen der Class3-Konfiguration

Zweck

Stellen Sie sicher, dass die Berechtigungen und Befehle, die für die Class3-Anmeldeklasse zulässig sind, funktionieren.

Was

Überprüfen Sie im Betriebsmodus die verfügbaren Befehle.

Wechseln Sie in den Konfigurationsmodus.

Bedeutung

Die Class3-Anmeldeklasse, der User3 zugewiesen ist, verfügt über Superuser-Berechtigungen (alle), aber diese Klasse erlaubt Benutzern nur das Ausführen des Befehls.configure Die Klasse verweigert den Zugriff auf alle anderen Betriebsmodusbefehle. Da die in den Anweisungen angegebenen regulären Ausdrücke Vorrang vor den Benutzerberechtigungen haben, hat User3 auf R1 nur Zugriff auf den Konfigurationsmodus und wird der Zugriff auf alle anderen Befehle für den Betriebsmodus verweigert.allow/deny-commands

Beispiel: Konfigurieren von Benutzerberechtigungen mit Zugriffsrechten für Konfigurationsanweisungen und Hierarchien

In diesem Beispiel wird gezeigt, wie benutzerdefinierte Anmeldeklassen konfiguriert und Zugriffsrechte bestimmten Konfigurationshierarchien zugewiesen werden. Benutzer in der login-Klasse können nur die Konfigurationsanweisungen und Hierarchien anzeigen und ändern, auf die sie Zugriff haben. Dadurch wird verhindert, dass unbefugte Benutzer Gerätekonfigurationen ändern, die das Netzwerk beschädigen könnten.

Anforderungen

In diesem Beispiel werden die folgenden Hardware- und Softwarekomponenten verwendet:

  • Ein Gerät von Juniper Networks

  • Ein TACACS+- (oder RADIUS-) Server

Bevor Sie beginnen, stellen Sie eine TCP-Verbindung zwischen dem Gerät und dem TACACS+-Server her. Stellen Sie beim RADIUS-Server eine UDP-Verbindung zwischen dem Gerät und dem RADIUS-Server her.

Übersicht und Topologie

Abbildung 2 veranschaulicht eine einfache Topologie, bei der Router R1 ein Gerät von Juniper Networks ist und über eine TCP-Verbindung mit einem TACACS+-Server verfügt.

Abbildung 2: TopologieTopologie

In diesem Beispiel wird R1 mit zwei angepassten Anmeldeklassen konfiguriert: Klasse 1 und Klasse 2. Jede Klasse definiert Zugriffsrechte für den Benutzer, indem sie die Anweisung konfiguriert und erweiterte reguläre Ausdrücke mithilfe der Anweisungen , , und definiert.permissionsallow-configurationdeny-configurationallow-configuration-regexpsdeny-configuration-regexps

Der Zweck jeder Anmeldeklasse ist wie folgt:

  • – Definiert die Zugriffsrechte für den Benutzer mit der und-Anweisung.Class1allow-configurationdeny-configuration Diese Anmeldeklasse bietet nur Zugriff zum Konfigurieren der Hierarchie und verweigert alle anderen Zugriffe auf dem Gerät.[edit interfaces] Zu diesem Zweck umfassen die Benutzerberechtigungen den Konfigurationszugriff.configure Darüber hinaus erlaubt die Anweisung den Zugriff auf die Schnittstellenkonfiguration und verweigert den Zugriff auf alle anderen Konfigurationshierarchien.allow-configurationdeny-configuration Da die allow-Anweisung Vorrang vor der deny-Anweisung hat, können die Benutzer, die der Class1-Anmeldeklasse zugewiesen sind, nur auf die Hierarchieebene zugreifen.[edit interfaces]

  • – Definiert die Zugriffsrechte für den Benutzer mit der und-Anweisung.Class2allow-configuration-regexpsdeny-configuration-regexps Diese Anmeldeklasse stellt Benutzerberechtigungen auf Superuser-Ebene bereit und ermöglicht explizit die Konfiguration unter mehreren Hierarchieebenen für Schnittstellen. Außerdem wird der Zugriff auf die Hierarchieebenen und verweigert.[edit system][edit protocols]

Router R1 verfügt über zwei Benutzer, User1 und User2, die den Anmeldeklassen Class1 bzw. Class2 zugewiesen sind.

Konfiguration

CLI-Schnellkonfiguration

Um dieses Beispiel schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen Sie sie in eine Textdatei ein, entfernen Sie alle Zeilenumbrüche, ändern Sie alle Details, die für Ihre Netzwerkkonfiguration erforderlich sind, kopieren Sie die Befehle, und fügen Sie sie auf Hierarchieebene in die CLI ein, und wechseln Sie dann in den Konfigurationsmodus.[edit]commit

R1

Konfigurieren der Authentifizierungsparameter für Router R1

Schritt-für-Schritt-Anleitung

So konfigurieren Sie die Router R1-Authentifizierung:

  1. Konfigurieren Sie die Reihenfolge, in der R1 versucht, den Benutzer zu authentifizieren. In diesem Beispiel steht die TACACS+-Serverauthentifizierung an erster Stelle, gefolgt von der RADIUS-Serverauthentifizierung und dann dem lokalen Kennwort.

  2. Konfigurieren Sie den TACACS+-Server.

  3. Konfigurieren Sie den RADIUS-Server.

  4. Konfigurieren Sie die R1-Abrechnungsparameter.

Konfigurieren von Zugriffsrechten mit den Anweisungen allow-configuration und deny-configuration (Klasse 1)

Schritt-für-Schritt-Anleitung

So geben Sie reguläre Ausdrücke mithilfe der and-Anweisungen an:allow-configurationdeny-configuration

  1. Konfigurieren Sie die Anmeldeklasse Class1 mit Berechtigungen.configure

  2. Konfigurieren Sie den regulären Ausdruck so, dass Benutzer in der Klasse einen Teil der Hierarchieebene anzeigen und ändern können.allow-configuration[edit interfaces]

  3. Konfigurieren Sie den regulären Ausdruck so, dass der Zugriff auf alle Konfigurationshierarchien verweigert wird.deny-configuration

  4. Konfigurieren Sie das Benutzerkonto für die Anmeldeklasse Class1.

Konfigurieren von Zugriffsrechten mit den Anweisungen allow-configuration-regexps und deny-configuration-regexps (Class2)

Schritt-für-Schritt-Anleitung

So geben Sie reguläre Ausdrücke mithilfe der and-Anweisungen an:allow-configuration-regexpsdeny-configuration-regexps

  1. Konfigurieren Sie die Class2-Anmeldeklasse, und weisen Sie Superuser-Berechtigungen (alle) zu.

  2. Konfigurieren Sie den regulären Ausdruck so, dass Benutzer in der Klasse auf mehrere Hierarchien unter der Hierarchieebene zugreifen können.allow-configuration-regexps[edit interfaces]

  3. Konfigurieren Sie den regulären Ausdruck, um zu verhindern, dass Benutzer in der Klasse die Konfiguration auf der Hierarchieebene und anzeigen oder ändern.deny-configuration-regexps[edit system][edit protocols]

  4. Konfigurieren Sie das Benutzerkonto für die Anmeldeklasse Class2.

Ergebnisse

Bestätigen Sie im Konfigurationsmodus Ihre Konfiguration, indem Sie den Befehl eingeben.show system Wenn die Ausgabe nicht die gewünschte Konfiguration anzeigt, wiederholen Sie die Anweisungen in diesem Beispiel, um die Konfiguration zu korrigieren.

Überprüfung

Melden Sie sich mit dem Benutzernamen an, der der neuen login-Klasse zugewiesen wurde, und vergewissern Sie sich, dass die Konfiguration ordnungsgemäß funktioniert.

Überprüfen der Class1-Konfiguration

Zweck

Vergewissern Sie sich, dass die in der Anmeldeklasse Class1 zulässigen Berechtigungen funktionieren.

Was

Überprüfen Sie im Betriebsmodus die verfügbaren Befehle.

Überprüfen Sie im Konfigurationsmodus die verfügbaren Konfigurationsberechtigungen.

Bedeutung

User1 verfügt über Benutzerberechtigungen, wie in der ersten Ausgabe zu sehen ist.configure Darüber hinaus hat Benutzer1 im Konfigurationsmodus Zugriff auf die Hierarchieebene, aber nur auf diese Hierarchieebene, wie in der zweiten Ausgabe zu sehen ist.interfaces

Überprüfen der Class2-Konfiguration

Zweck

Stellen Sie sicher, dass die Class2-Konfiguration wie erwartet funktioniert.

Was

Greifen Sie im Konfigurationsmodus auf die Konfiguration zu.interfaces

Greifen Sie im Konfigurationsmodus auf die Konfigurationshierarchien und zu.systemprotocols

Bedeutung

Benutzer2 verfügt über Berechtigungen zum Konfigurieren von Schnittstellen auf R1, aber der Benutzer verfügt nicht über die Berechtigung zum Anzeigen oder Ändern der Hierarchieebenen oder .[edit system][edit protocols]

Tabellarischer Änderungsverlauf

Die Unterstützung der Funktion hängt von der Plattform und der Version ab, die Sie benutzen. Verwenden Sie Feature Explorer, um festzustellen, ob eine Funktion auf Ihrer Plattform unterstützt wird.

Release
Beschreibung
18.1
Ab Junos OS Version 18.1 werden die und-Anweisungen für die TACACS+-Autorisierung unterstützt.allow-commands-regexpsdeny-commands-regexps