Einleitung
In diesem Dokument wird der Konfigurationsprozess zur Anzeige der vollständigen aktuellen Konfiguration für Benutzer mit geringen Berechtigungen beschrieben.
Voraussetzungen
Anforderungen
Zum Verständnis dieses Dokuments ist ein grundlegendes Verständnis der Cisco Berechtigungsstufen erforderlich. Die Hintergrundinformationen reichen aus, um das Verständnis der erforderlichen Berechtigungsstufen zu erläutern.
Verwendete Komponenten
Die in diesem Dokument für die Konfigurationsbeispiele verwendeten Komponenten sind ASR1006, aber alle Cisco IOS®- und Cisco IOS XE-Geräte funktionieren ähnlich.
Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die möglichen Auswirkungen aller Befehle kennen.
Hintergrundinformationen
In diesem Dokument werden die Konfigurationsschritte zum Anzeigen der vollständig ausgeführten Konfiguration für Benutzer beschrieben, die beim Router mit niedrigen Berechtigungsstufen angemeldet sind. Um das nächste Problem zu verstehen und um es zu umgehen, ist es notwendig, die Berechtigungsstufen zu verstehen. Die verfügbaren Berechtigungsebenen reichen von 0 bis 15, und der Administrator kann festlegen, welche Befehle auf welcher Berechtigungsebene verfügbar sind. Standardmäßig lauten die drei Privilegstufen auf einem Router:
- Ebene 0 - Enthält nur einfache Befehle (Deaktivieren, Aktivieren, Beenden, Hilfe und Abmelden)
- Ebene 1 - Beinhaltet alle Befehle, die im Benutzer-EXEC-Befehlsmodus verfügbar sind
- Ebene 15 - Beinhaltet alle Befehle, die im privilegierten EXEC-Befehlsmodus verfügbar sind
Die verbleibenden Ebenen zwischen diesen Mindest- und Höchstwerten sind so lange nicht definiert, bis der Administrator ihnen Befehle und/oder Benutzer zuweist. Daher kann der Administrator Benutzern verschiedene Berechtigungsebenen zwischen diesen Mindest- und Höchstberechtigungsebenen zuweisen, um die Zugriffsrechte verschiedener Benutzer voneinander zu trennen. Der Administrator kann dann einzelne Befehle (und verschiedene andere Optionen) einer einzelnen Berechtigungsebene zuordnen, um diese für jeden Benutzer auf dieser Ebene verfügbar zu machen. Beispiele:
Router(config)# username user1 privilege 7 password P@ssw0rD1
Router(config)# privilege exec level 7 show access-lists
Bei dieser Konfiguration kann user1, wenn es mit dem Router verbunden ist, denshow access-lists
Befehl und/oder andere auf dieser Berechtigungsebene aktivierte Optionen ausführen. Dasselbe kann jedoch nicht für den aktiviertenshow running-config
Befehl gesagt werden, wie später in der Problem-Anweisung erläutert wird.
Konfigurationsproblem
Bei der Konfiguration verschiedener Zugriffsebenen für den Router für verschiedene Benutzer ist es eine gängige Anwendung für Netzwerkadministratoren, zu versuchen, bestimmten Benutzern nur Zugriff aufshow
Befehle zuzuweisen, nicht jedoch Zugriff aufconfiguration
Befehle. Dies ist eine einfache Aufgabe für die meistenshow
Befehle, da Sie den Zugriff über eine einfache Konfiguration wie folgt gewähren können:
Router(config)# username test_user privilege 10 password testP@ssw0rD
Router(config)# privilege exec level 10 show
Router(config)# privilege exec level 10 show running-config
Mit dieser Beispielkonfiguration kann die zweite Zeile dem Benutzer dentest_user
Zugriff auf eine Vielzahl von Befehlen ermöglichen, die sich auf show beziehen und normalerweise auf dieser Berechtigungsebene nicht verfügbar sind. Der Befehl wird jedochshow running-config
anders behandelt als die meisten show-Befehle. Selbst bei der dritten Zeile Beispielcode wird nur eine ausgelassene/gekürzteshow running-config
Anzeige für den Benutzer angezeigt, obwohl der Befehl auf der richtigen Berechtigungsebene angegeben wurde.
User Access Verification
Username: test_user
Password:
Router#
Router#show privilege
Current privilege level is 10
Router#
Router#show running-config
Building configuration...
Current configuration : 121 bytes
!
! Last configuration change at 21:10:08 UTC Mon Aug 28 2017
!
boot-start-marker
boot-end-marker
!
!
!
end
Router#
Wie Sie sehen, zeigt diese Ausgabe keine Konfiguration an und wäre für einen Benutzer, der versucht, Informationen über die Konfiguration des Routers zu sammeln, nicht hilfreich. Dies liegt daran, dass dershow running-config
Befehl alle Befehle anzeigt, die der Benutzer auf der aktuellen Berechtigungsebene ändern kann. Dies dient als Sicherheitskonfiguration, um zu verhindern, dass Benutzer auf Befehle zugreifen können, die zuvor für ihre aktuelle Berechtigungsstufe konfiguriert wurden. Dieses Problem tritt auf, wenn versucht wird, einen Benutzer mit Zugriff auf Befehle zum Anzeigen von Befehlen zu erstellen. Diesshow running-config
ist ein Standardbefehl, den Techniker bei der Fehlerbehebung zunächst erfassen müssen.
Konfigurationslösung und Verifizierung
Als Lösung für dieses Dilemma gibt es eine andere Version des traditionellenshow run
Befehls, die diese Einschränkung des Befehls umgeht.
Router(config)# show running-config view full
Router(config)# privilege exec level 10 show running-config view full
Das Hinzufügen vonview full
zum Befehl (und damit die Privilegstufe des Befehls, um dem Benutzer den Zugriff auf den Befehl zu ermöglichen) ermöglicht es dem Benutzer nun, den vollständigenshow running-config
Befehl ohne ausgelassene Befehle anzuzeigen.
Username: test_user
Password:
Router#
Router#show privilege
Current privilege level is 10
Router#
Router#show running-config view full
Building configuration...
Current configuration : 2664 bytes
!
! Last configuration change at 21:25:45 UTC Mon Aug 28 2017
!
version 15.4
service timestamps debug datetime msec
service timestamps log datetime msec
no platform punt-keepalive disable-kernel-core
!
hostname Router
!
boot-start-marker
boot system flash bootflash:packages.conf
boot system flash bootflash:asr1000rp1-adventerprisek9.03.13.06a.S.154-3.S6a-ext.bin
boot-end-marker
!
vrf definition Mgmt-intf
!
address-family ipv4
exit-address-family
!
address-family ipv6
exit-address-family
!
enable password <omitted>
!
no aaa new-model
!
no ip domain lookup
!
subscriber templating
!
multilink bundle-name authenticated
!
spanning-tree extend system-id
!
username test_user privilege 10 password 0 testP@ssw0rD
!
redundancy
mode sso
!
cdp run
!
interface GigabitEthernet0/2/0
no ip address
shutdown
negotiation auto
!
interface GigabitEthernet0/2/1
no ip address
shutdown
negotiation auto
!
interface GigabitEthernet0
vrf forwarding Mgmt-intf
ip address <omitted>
negotiation auto
cdp enable
!
ip forward-protocol nd
!
control-plane
!
!
privilege exec level 10 show running-config view full
alias exec show-running-config show running-config view full
!
line con 0
stopbits 1
line aux 0
exec-timeout 0 1
no exec
transport output none
stopbits 1
line vty 0 4
login local
!
end
Router#
Dies wirft dann jedoch die Frage auf, indem dem Benutzer Zugriff auf diese Version des Befehls gewährt wird. Löst dies nicht das ursprüngliche Sicherheitsrisiko aus, das durch das Entwerfen einer weggelassenen Version behoben werden sollte?
Als Problemumgehung für die Lösung und um Konsistenz in einem sicheren Netzwerkdesign zu gewährleisten, können Sie einen Alias für den Benutzer erstellen, der die vollständige Version desshow running-config
Befehls ausführt, ohne dem Benutzer Zugriff auf/Kenntnisse zu gewähren, wie hier gezeigt:
Router(config)# alias exec show-running-config show running-config view full
In diesem Beispiel ist dershow running-config
Aliasname, und wenn der Benutzer beim Router angemeldet ist, kann er diesen Aliasnamen anstelle des Befehls eingeben und die erwartete Ausgabe erhalten, ohne den tatsächlichen Befehl zu kennen, der ausgeführt wird.
Anmerkung: Ab der Version 16.x müssen den Dateien je nach Plattform auch Berechtigungen mithilfe des Befehls (config)#file privilege <level> hinzugefügt werden.
Schlussfolgerung
Zusammenfassend ist dies nur ein Beispiel dafür, wie Sie mehr Kontrolle haben können, wenn Sie administrativ Benutzerberechtigungen auf verschiedenen Ebenen erstellen. Es gibt eine Vielzahl von Optionen, um verschiedene Berechtigungsebenen und den Zugriff auf verschiedene Befehle zu erstellen. Dies ist ein Beispiel dafür, wie sichergestellt wird, dass ein Benutzer, der nur anzeigen kann, weiterhin Zugriff auf die vollständige aktuelle Konfiguration hat, wenn er keinen Zugriff auf Konfigurationsbefehle hat.
Zugehörige Informationen