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
Wenn Benutzer1 mit dem Router verbunden ist, kann mit dieser Konfiguration show access-lists
-Befehls bzw. anderen auf dieser Berechtigungsebene aktivierten Befehlen. Das gleiche kann jedoch nicht gesagt werden, wenn die show running-config
-Befehls, wie später in der problem-Anweisung beschrieben wird.
Konfigurationsproblem
Wenn Sie für verschiedene Benutzer verschiedene Zugriffsebenen für den Router konfigurieren, ist es eine gängige Anwendung, dass ein Netzwerkadministrator versucht, bestimmten Benutzern nur Zugriff auf show
und bietet keinen Zugriff auf configuration
-Befehlen. Dies ist eine einfache Aufgabe für die meisten show
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
Bei dieser Beispielkonfiguration kann die zweite Leitung test_user
um Zugriff auf eine Vielzahl von Befehlen zu erhalten, die sich auf show beziehen und normalerweise auf dieser Berechtigungsebene nicht verfügbar sind. Die show running-config
wird anders behandelt als die meisten show-Befehle. Auch bei der dritten Zeile Beispielcode wird nur ein weggelassener/gekürzter show running-config
wird 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 die show running-config
zeigt alle Befehle an, 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. show 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 traditionellen show run
-Befehls, der diese Einschränkung des Befehls umgeht.
Router(config)# show running-config view full
Router(config)# privilege exec level 10 show running-config view full
Durch die Ergänzung von view full
auf den Befehl (und damit auf die Privilegstufe des Befehls, um dem Benutzer den Zugriff auf den Befehl zu ermöglichen), kann der Benutzer jetzt den vollständigen show running-config
ohne ausgelassene Befehle.
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?
Um die Lösung zu umgehen und die Konsistenz in einem sicheren Netzwerkdesign sicherzustellen, können Sie einen Alias für den Benutzer erstellen, der die Vollversion des show running-config
ohne dem Benutzer Zugang zu gewähren, wie hier gezeigt:
Router(config)# alias exec show-running-config show running-config view full
In diesem Beispiel show running-config
ist der Aliasname. 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.
Hinweis: 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