Wie kann ich einen Benutzer für bestimmte Befehle unter Cisco IOS einschränken?

8

Ich muss sicherstellen, dass ein bestimmter Benutzer auf einem IOS-Router nur bestimmte Befehle eingeben kann. Ich war in der Lage, dies mit Berechtigungsstufen zu tun, aber wenn der Benutzer "enable" eingab, kehrte er direkt zur Berechtigungsstufe 15 zurück und war dabei, alle Befehle einzugeben. Ich möchte sicherstellen, dass er auch bei Eingabe von "enable" nur die spezifischen Befehle eingeben kann, die ich zugelassen habe. Ich habe es auch mit rollenbasiertem CLI versucht, bin aber auf dasselbe Problem gestoßen. Ich möchte keine externen Authentifizierungsserver verwenden.

Vielen Dank!

Harnik
quelle
Hat dir eine Antwort geholfen? Wenn ja, sollten Sie die Antwort akzeptieren, damit die Frage nicht für immer auftaucht und nach einer Antwort sucht. Alternativ können Sie Ihre eigene Antwort bereitstellen und akzeptieren.
Ron Maupin

Antworten:

7

Sie kennen bereits den größten Teil der Antwort auf Ihre eigene Frage. Sie müssen Befehle konfigurieren, die der Benutzer mit einer bestimmten Berechtigungsstufe ausführen kann. enableOhne Berechtigungsstufe wird standardmäßig die Berechtigungsstufe 15 verwendet, die über die Berechtigung zum Ausführen aller Befehle verfügt. Die zwei Dinge, die Sie tun müssen, sind:

  1. Ändern Sie das Standard-Aktivierungskennwort so, dass der Benutzer keinen Zugriff mehr darauf hat und daher nicht zur Berechtigungsstufe 15 gelangen kann.

  2. Legen Sie die Standardberechtigungsstufe des Benutzers bei der Anmeldung auf dieselbe Berechtigungsstufe fest, mit der Sie die gewünschten Befehle geändert haben, mit denen der Benutzer ausgeführt werden kann:

Router(config)#username joe privilege <x> password foobar

Dabei ist X die Berechtigungsstufe für Ihren gewünschten Befehlssatz.

BEARBEITEN: Ich sollte darauf hinweisen, dass dies keine echte benutzerbasierte Befehlsautorisierung bietet, sondern nur eine auf Berechtigungsstufen basierende Berechtigung, da die Befehle selbst jeweils nur an eine Berechtigungsstufe gebunden sind, sodass es sich effektiv um eine routerweite Änderung handelt . Es soll hierarchisch arbeiten; Jede Berechtigungsstufe kann die Befehle auf dieser Ebene sowie auf allen darunter liegenden Ebenen ausführen. Wenn Sie eine echte benutzerbasierte Autorisierung wünschen, benötigen Sie einen AAA-Server (siehe meinen Hinweis unten).

Sie können die Berechtigungsstufe des enableBefehls auch technisch so ändern , dass sie höher ist als die Berechtigungsstufe des Benutzers, sodass er nicht einmal die Möglichkeit hat, ihn auszuführen:

Router(config)#privilege exec level <x> enable

Dies setzt natürlich voraus, dass der Benutzer keine Konfigurationsbefehle ausführen kann.

Eine andere Option besteht darin, sicherzustellen, dass der Benutzer beim Anmelden und enableEingeben seine Berechtigungsstufe angeben muss und nicht die Berechtigungsstufe, die standardmäßig 15 ist.

Router>enable <x>

Natürlich können Sie Aktivierungskennwörter für alle 16 Berechtigungsstufen angeben, wenn Sie dies wünschen.

Mein letzter Punkt ist, dass all dies ohne einen externen AAA-Server ein riesiger Schmerz im Arsch ist. Es gibt eine Vielzahl von Open-Source-TACACS + -Implementierungen, die nur die Kosten für die Ersteinrichtung verursachen. Sie machen solche Aufgaben jedoch etwas trivial und sind zentralisiert. Wenn Sie also mehrere Router haben, müssen Sie nicht denselben Befehl wiederholen Privileg Jumprope auf jedem Gerät, das Sie verwalten. Aus diesem Grund gibt es in erster Linie AAA-Server, sodass Ihre Anforderung, dass Sie keinen verwenden möchten, wenig Sinn macht.

John Jensen
quelle
-5

Das Einschränken der Befehle kann in Cisco ACS erfolgen, wenn Sie das Gerät für die Verwendung von TACACS für AAA konfigurieren.

Bill Karn
quelle
Bitte erwägen Sie, dieser Antwort weitere Informationen hinzuzufügen.
Teun Vink