In diesem Dokument wird beschrieben, wie Sie einen Cisco Router für die Authentifizierung mit TACACS+ konfigurieren, der unter UNIX ausgeführt wird. TACACS+ bietet nicht so viele Funktionen wie die kommerziell erhältlichen Cisco Secure ACS für Windows oder Cisco Secure ACS UNIX.
Die TACACS+-Software, die zuvor von Cisco Systems bereitgestellt wurde, wird nicht mehr angeboten und von Cisco Systems nicht mehr unterstützt.
Heute finden Sie viele verfügbaren TACACS+ Freeware-Versionen, wenn Sie nach "TACACS+ Freeware" auf Ihrer Lieblings-Internet-Suchmaschine suchen. Cisco empfiehlt keine spezielle TACACS+-Freeware-Implementierung.
Cisco Secure Access Control Server (ACS) kann über die regulären Vertriebs- und Vertriebskanäle von Cisco weltweit erworben werden. Cisco Secure ACS für Windows umfasst alle erforderlichen Komponenten für eine unabhängige Installation auf einer Microsoft Windows-Workstation. Die Cisco Secure ACS Solution Engine wird mit einer vorinstallierten Cisco Secure ACS-Softwarelizenz ausgeliefert. Besuchen Sie die Cisco Bestellseite (nur registrierte Kunden), um eine Bestellung aufzugeben.
Hinweis: Sie benötigen ein CCO-Konto mit einem entsprechenden Servicevertrag, um die 90-Tage-Testversion von Cisco Secure ACS für Windows zu erhalten.
Die Routerkonfiguration in diesem Dokument wurde auf einem Router entwickelt, auf dem die Cisco IOS® Software Version 11.3.3 ausgeführt wird. Cisco IOS Software Version 12.0.5.T und höher verwendet group tacacs+ anstelle von tacacs+, sodass Anweisungen wie aaa authentication login default tacacs+ enable als aaa authentication login default group tacacs+ enable angezeigt werden. .
Vollständige Informationen zu Routerbefehlen finden Sie in der Dokumentation zur Cisco IOS Software.
Es gibt keine spezifischen Anforderungen für dieses Dokument.
Die Informationen in diesem Dokument beziehen sich auf die Cisco IOS Software Version 11.3.3 und Cisco IOS Software Version 12.0.5.T und höher.
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 Netz Live ist, überprüfen Sie, ob Sie die mögliche Auswirkung jedes möglichen Befehls verstehen.
Weitere Informationen zu Dokumentkonventionen finden Sie unter Cisco Technical Tips Conventions (Technische Tipps von Cisco zu Konventionen).
Führen Sie diese Schritte aus:
Stellen Sie sicher, dass Sie TACACS+ (TAC+)-Code auf dem UNIX-Server kompiliert haben.
Bei den Serverkonfigurationen wird davon ausgegangen, dass Sie den Cisco TAC+ Servercode verwenden. Die Router-Konfigurationen müssen unabhängig davon funktionieren, ob der Servercode Cisco Servercode ist. TAC+ muss als Root ausgeführt werden; su zu root, falls erforderlich.
Kopieren Sie die test_file am Ende dieses Dokuments, legen Sie sie auf dem TAC+ Server ab, und nennen Sie sie test_file.
Stellen Sie sicher, dass der tac_plus_executable-Daemon mit test_file startet. In diesem Befehl sucht die -P-Option zwar nach Kompilierungsfehlern, startet den Daemon jedoch nicht:
tac_plus_executable -P -C test_file
Sie können den Inhalt von test_file im Fenster nach unten scrollen sehen, aber Sie sollten keine Meldungen sehen, wie kann Datei nicht finden, Klartext erwartet - gefunden Klartext, oder unerwartet }. Wenn Fehler auftreten, überprüfen Sie die Pfade zu test_file, überprüfen Sie die Eingabe erneut, und testen Sie erneut, bevor Sie fortfahren.
Beginnen Sie mit der Konfiguration von TAC+ auf dem Router.
Wechseln Sie in den privilegierten Modus, und geben Sie configure terminal vor dem Befehlssatz ein. Mit dieser Befehlssyntax wird sichergestellt, dass Sie den Router nicht zu Anfang ausschließen, vorausgesetzt, die tac_plus_executable wird nicht ausgeführt:
!--- Turn on TAC+. aaa new-model enable password whatever !--- These are lists of authentication methods. !--- "linmethod", "vtymethod", "conmethod", and !--- so on are names of lists, and the methods !--- listed on the same lines are the methods !--- in the order to be tried. As used here, if !--- authentication fails due to the !--- tac_plus_executable not being started, the !--- enable password is accepted because !--- it is in each list. ! aaa authentication login linmethod tacacs+ enable aaa authentication login vtymethod tacacs+ enable aaa authentication login conmethod tacacs+ enable ! !--- Point the router to the server, where #.#.#.# !--- is the server IP address. ! tacacs-server host #.#.#.# line con 0 password whatever !--- No time-out to prevent being locked out !--- during debugging. exec-timeout 0 0 login authentication conmethod line 1 8 login authentication linmethod modem InOut transport input all rxspeed 38400 txspeed 38400 flowcontrol hardware line vty 0 4 password whatever !--- No time-out to prevent being locked out !--- during debugging. exec-timeout 0 0 login authentication vtymethod
Überprüfen Sie, ob Sie über Telnet und den Konsolen-Port weiterhin auf den Router zugreifen können, bevor Sie fortfahren. Da die tac_plus_executable nicht ausgeführt wird, sollte das enable-Kennwort akzeptiert werden.
Hinweis: Lassen Sie die Konsolen-Port-Sitzung aktiv und bleiben Sie im Aktivierungsmodus. Diese Sitzung sollte nicht zeitlich abgelaufen sein. Der Zugriff auf den Router ist zu diesem Zeitpunkt eingeschränkt, und Sie müssen in der Lage sein, Konfigurationsänderungen durchzuführen, ohne sich selbst davon abzuschotten.
Geben Sie die folgenden Befehle ein, um die Interaktion zwischen Servern am Router anzuzeigen:
terminal monitor debug aaa authentication
Starten Sie als Root TAC+ auf dem Server:
tac_plus_executable -C test_file -d 16
Vergewissern Sie sich, dass TAC+ gestartet ist:
ps -aux | grep tac_plus_executable
Oder
ps -ef | grep tac_plus_executable
Wenn TAC+ nicht startet, ist es in der Regel ein Syntaxproblem in der test_file. Kehren Sie zu Schritt 1 zurück, um dies zu korrigieren.
Geben Sie tail -f /var/tmp/tac_plus.log ein, um die Interaktion zwischen Router und Server auf dem Server anzuzeigen.
Hinweis: Die Option -d 16 in Schritt 5 sendet die Ausgabe aller Transaktionen an /var/tmp/tac_plus.log.
Telnet-Benutzer (VTY) müssen sich nun über TAC+ authentifizieren.
Nach Abschluss des Debugging-Vorgangs über den Router und den Server (Schritte 4 und 7) kann Telnet von einem anderen Teil des Netzwerks in den Router geleitet werden.
Der Router gibt eine Eingabeaufforderung mit Benutzernamen und Kennwort aus, auf die Sie antworten:
'authenuser' (username from test_file) 'admin' (password from test_file)
Der Benutzer authenuser gehört zur Gruppe admin, die über das Kennwort admin verfügt.
Sehen Sie sich den Server und den Router an, wo Sie die TAC+-Interaktion sehen können - was wo gesendet wird, Antworten, Anfragen usw. Korrigieren Sie etwaige Probleme, bevor Sie fortfahren.
Wenn die Benutzer sich auch über TAC+ authentifizieren sollen, um in den Aktivierungsmodus zu wechseln, stellen Sie sicher, dass die Konsolen-Port-Sitzung weiterhin aktiv ist, und fügen Sie den folgenden Befehl zum Router hinzu:
!--- For enable mode, list 'default' looks to TAC+ !--- then enable password if TAC+ does not run. aaa authentication enable default tacacs+ enable
Die Aktivierung ist jetzt über TAC+ erforderlich.
Nach Abschluss des Debugging-Vorgangs über den Router und den Server (Schritte 4 und 7) kann Telnet von einem anderen Teil des Netzwerks in den Router geleitet werden. Der Router gibt eine Eingabeaufforderung mit Benutzernamen und Kennwort aus, auf die Sie antworten:
'authenuser' (username from test_file) 'admin' (password from test_file)
Wenn Sie in den Aktivierungsmodus wechseln, fordert der Router ein Kennwort an, auf das Sie antworten:
'cisco' ($enable$ password from test_file)
Beobachten Sie den Server und den Router, wo Sie die TAC+-Interaktion sehen sollten - was wird wo gesendet, Antworten, Anfragen usw. Korrigieren Sie etwaige Probleme, bevor Sie fortfahren.
Deaktivieren Sie den TAC+-Prozess auf dem Server, während dieser weiterhin mit dem Konsolen-Port verbunden ist, um sicherzustellen, dass Ihre Benutzer auch dann auf den Router zugreifen können, wenn das TAC+ ausfällt:
ps -aux | grep tac_plus_executable
Oder
ps -ef | grep tac_plus_executable) kill -9 pid_of_tac_plus_executable
Wiederholen Sie Telnet, und aktivieren Sie den vorherigen Schritt. Der Router erkennt, dass der TAC+-Prozess nicht reagiert, und ermöglicht Benutzern, sich anzumelden und die Aktivierung mit den Standardkennwörtern durchzuführen.
Überprüfen Sie, ob die Benutzer Ihres Konsolen-Ports über TAC+ authentifiziert sind. Rufen Sie zu diesem Zweck den TAC+-Server erneut auf (Schritte 5 und 6), und richten Sie eine Telnet-Sitzung zum Router ein (der sich über TAC+ authentifizieren soll).
Bleiben Sie im privilegierten Modus über Telnet mit dem Router verbunden, bis Sie sich sicher sind, dass Sie sich über den Konsolen-Port beim Router anmelden können.
Melden Sie sich über den Konsolenport vom Router ab, und stellen Sie dann erneut eine Verbindung zum Konsolenport her. Die Konsolen-Port-Authentifizierung zur Anmeldung und Aktivierung mithilfe von Benutzer-IDs und Kennwörtern (siehe Schritt 10) sollte jetzt über TAC+ erfolgen.
Wenn Sie entweder über eine Telnet-Sitzung oder den Konsolen-Port verbunden bleiben und das Debugging über den Router und den Server erfolgt (Schritte 4 und 7), stellen Sie eine Modemverbindung zu Leitung 1 her.
Die Benutzer der Leitung müssen sich jetzt anmelden und über TAC+ aktivieren.
Der Router gibt eine Eingabeaufforderung mit Benutzernamen und Kennwort aus, auf die Sie antworten:
'authenuser' (username from test_file) 'admin' (password from test_file)
Wenn Sie in den Aktivierungsmodus wechseln, fordert der Router ein Kennwort an.
Antwort:
'cisco' ($enable$ password from test_file)
Sehen Sie sich den Server und den Router an, auf denen Sie die TAC+-Interaktion sehen. Sie sehen, was wo gesendet wird, Antworten, Anfragen usw. Korrigieren Sie etwaige Probleme, bevor Sie fortfahren.
Die Aktivierung ist jetzt über TAC+ erforderlich.
Das Hinzufügen der Autorisierung ist optional.
Standardmäßig gibt es drei Befehlsebenen für den Router:
Berechtigungsebene 0, die Folgendes umfasst: Deaktivieren, Aktivieren, Beenden, Hilfe und Abmelden
Privilegstufe 1 - normale Stufe auf einem Telnet - Eingabeaufforderung sagt Router>
Berechtigungsebene 15 - Aktivierungsebene - Eingabeaufforderung lautet Router#
Da die verfügbaren Befehle vom IOS-Funktionssatz, der Version von Cisco IOS, dem Router-Modell usw. abhängen, gibt es keine umfassende Liste aller Befehle der Ebenen 1 und 15. show ipx route ist beispielsweise nicht in einem reinen IP-Funktionssatz vorhanden, show ip nat trans ist nicht in Version 10.2.x der Cisco IOS-Software enthalten, da NAT zu diesem Zeitpunkt nicht eingeführt wurde. und zeigen, dass die Umgebung in Routermodellen ohne Netzteil- und Temperaturüberwachung nicht vorhanden ist. Befehle, die in einem bestimmten Router auf einer bestimmten Ebene verfügbar sind, können gefunden werden, wenn Sie einen ? an der Eingabeaufforderung des Routers ein, wenn diese Privilegstufe erreicht ist.
Die Konsolenport-Autorisierung wurde erst als Funktion hinzugefügt, als die Cisco Bug-ID CSCdi82030 (nur für registrierte Kunden) implementiert wurde. Die Konsolen-Port-Autorisierung ist standardmäßig deaktiviert, um die Wahrscheinlichkeit zu verringern, dass Sie versehentlich vom Router ausgesperrt werden. Wenn ein Benutzer über die Konsole physischen Zugriff auf den Router hat, ist die Konsolenport-Autorisierung nicht besonders effektiv. Die Konsolen-Port-Autorisierung kann jedoch unter dem Symbol 0 aktiviert werden, wenn die Cisco Bug-ID CSCdi82030 (nur registrierte Kunden) mit dem folgenden Befehl implementiert wurde:
authorization exec default|WORD
Der Router kann so konfiguriert werden, dass Befehle über TAC+ auf allen oder einigen Ebenen autorisiert werden.
Mit dieser Router-Konfiguration können alle Benutzer eine Autorisierung auf Befehlsbasis auf dem Server einrichten. Hier autorisieren wir alle Befehle über TAC+, aber wenn der Server ausfällt, ist keine Autorisierung erforderlich.
aaa authorization commands 1 default tacacs+ none aaa authorization commands 15 default tacacs+ none
Während der TAC+ Server ausgeführt wird, verbindet Telnet den Router mit der Benutzer-ID authenuser.
Da authenuser standardmäßig service = permit in test_file verwendet, sollte dieser Benutzer in der Lage sein, alle Funktionen auszuführen.
Wechseln Sie im Router in den privilegierten Modus, und aktivieren Sie das Autorisierungsdebugging:
terminal monitor debug aaa authorization
Telnet-Verbindung zum Router mit Benutzer-ID, Autoruser und Operator mit Kennwort.
Dieser Benutzer kann die beiden Befehle show traceroute und logout nicht ausführen (siehe test_file).
Beobachten Sie den Server und den Router, an denen Sie die TAC+-Interaktion sehen sollten (was wird wo gesendet, Antworten, Anfragen usw.). Korrigieren Sie etwaige Probleme, bevor Sie fortfahren.
Wenn Sie einen Benutzer für einen Autobefehl konfigurieren möchten, entfernen Sie den auskommentierten Benutzertransienten in der test_file, und setzen Sie ein gültiges IP-Adressziel anstelle von #.#.#.#.
Stoppen und starten Sie den TAC+ Server.
Router:
aaa authorization exec default tacacs+
Telnet zum Router mit Benutzer-ID transient und Kennwort transient. Das Telnet #.#.#.# wird ausgeführt, und der Benutzer wird vorübergehend an den anderen Standort gesendet.
Das Hinzufügen der Buchhaltung ist optional.
Verweis auf die Accounting-Datei befindet sich in test_file - accounting file = /var/log/tac.log. Die Abrechnung erfolgt jedoch nur, wenn sie im Router konfiguriert ist (vorausgesetzt, der Router führt eine Version der Cisco IOS-Software nach 11.0 aus).
Aktivieren Sie die Kontoführung im Router:
aaa accounting exec default start-stop tacacs+ aaa accounting connection default start-stop tacacs+ aaa accounting network default start-stop tacacs+ aaa accounting system default start-stop tacacs+
Hinweis: Bei einigen Versionen wird die AAA-Abrechnung nicht für einzelne Befehle verwendet. Eine Problemumgehung besteht darin, die Autorisierung auf Befehlsbasis zu verwenden und das Auftreten in der Accounting-Datei zu protokollieren. (Siehe Cisco Bug-ID CSCdi44140.) Wenn Sie ein Image verwenden, in dem dieses korrigierte Image verwendet wird [Cisco IOS Software-Versionen 11.2(1.3)F, 11.2(1.2), 11.1(6.3), 11.1(6.3)AA01, 11.1(6.3)CA, Stand: 24. September 1997], können Sie auch command-to Buchhaltung.
Während TAC+ auf dem Server ausgeführt wird, geben Sie diesen Befehl auf dem Server ein, um die Einträge anzuzeigen, die in die Abrechnungsdatei aufgenommen werden:
tail -f /var/log/tac.log
Melden Sie sich dann beim Router an bzw. wieder ab, Telnet beim Router usw. Geben Sie bei Bedarf auf dem Router Folgendes ein:
terminal monitor debug aaa accounting
- - - - - - - (cut here) - - - - - - - # Set up accounting file if enabling accounting on NAS accounting file = /var/log/tac.log # Enable password setup for everyone: user = $enable$ { login = cleartext "cisco" } # Group listings must be first: group = admin { # Users in group 'admin' have cleartext password login = cleartext "admin" expires = "Dec 31 1999" } group = operators { # Users in group 'operators' have cleartext password login = cleartext "operator" expires = "Dec 31 1999" } group = transients { # Users in group 'transient' have cleartext password login = cleartext "transient" expires = "Dec 31 1999" } # This user is a member of group 'admin' & uses that group's password to log in. # The $enable$ password is used to enter enable mode. The user can perform all commands. user = authenuser { default service = permit member = admin } # This user is limitted in allowed commands when aaa authorization is enabled: user = telnet { login = cleartext "telnet" cmd = telnet { permit .* } cmd = logout { permit .* } } # user = transient { # member = transients # service = exec { # When transient logs on to the NAS, he's immediately # zipped to another site # autocmd = "telnet #.#.#.#" # } # } # This user is a member of group 'operators' # & uses that group's password to log in user = authenuser { member = operators # Since this user does not have 'default service = permit' when command # authorization through TACACS+ is on at the router, this user's commands # are limited to: cmd = show { permit ver permit ip } cmd = traceroute { permit .* } cmd = logout { permit .* } } - - - - (end cut here) - - - -
Hinweis: Diese Fehlermeldung wird generiert, wenn der TACACS-Server nicht erreichbar ist: %AAAA-3-DROPACCTSNDFAIL: Abrechnungsdatensatz gelöscht,Senden an Server fehlgeschlagen: Systemstart. Überprüfen Sie, ob der TACACS+-Server betriebsbereit ist.
Überarbeitung | Veröffentlichungsdatum | Kommentare |
---|---|---|
1.0 |
10-Dec-2001 |
Erstveröffentlichung |