AAA mit TACACS+ im Cisco IOS

AAA wird in mehreren Cisco-Kursen angesprochen, aber in so ziemlich keinem Kurs gibt es ein schlüssiges Beispiel wie es konfiguriert werden könnte. Dieser Artikel zeigt ein Beispiel zum Nachkonfigurieren einer AAA-Umgebung auf einem Cisco IOS-Router. Dabei soll dies keine Best Practice-Konfiguration sein sondern einzig und allein ein paar Zusammenhänge vom Zusammenspiel AAA und TACACS+ verdeutlichen.

Voraussetzungen

Um dieses Beispiel nachzustellen wird folgendes Equipment benötigt:

  • Ein IOS-Router (ein Catalyst IOS-Switch würde auch gehen), der tunlichst nicht produktiv läuft
  • Ein Windows 2000/2003 Server für den TACACS-Server
  • Den Cisco Secure ACS (die ACS-Testversion von Cisco geht dabei auch, ein CCO-Zugang ist aber nötig um die Software herunterzuladen)

Lab-Aufbau

Cisco AAA Beispiel

In diesem Beispiel kommt ein Cisco Secure ACS v4.0 in der Standard-Installation und ein Cisco 1750 mit Version 12.3 zum Einsatz:


Router#sh ver
Cisco Internetwork Operating System Software
IOS (tm) C1700 Software (C1700-K9O3SY7-M), Version 12.3(19)

Eine andere IOS-Version kann sich natürlich auch anders verhalten.

Beim Ausprobieren dieser Übung sollte man immer ein Telnet-Fenster im priv. Mode lassen (sobald der priv. Mode per Telnet erreichbar ist) um sich nicht versehentlich auszusperren.

Das Beispiel

  1. Der Router hat eine Grundkonfiguration, es sind keine Passwörter, User, TACACS-Einstellungen etc. konfiguriert. Nur das Ethernet-Interface hat eine IP-Adresse und ist eingeschaltet. Auf der Konsole kann man sich ohne Password einloggen, der Timeout ist aber auf den Lines deaktiviert um ein Lockout zu vermeiden.
    hostname Router
    !
    interface FastEthernet0
     ip address 10.255.255.234 255.255.255.0
    !
    line con0
     exec-timeout 0
    line aux 0
    line vty 0 4
     exec-timeout 0
    !
    end

    Frage: Welche Meldung gibt eine Telnet-Verbindung auf den so konfigurierten Router?

  2. Auf der “line vty” wird ein Password und “login” konfiguriert:
    line vty 0 4
     password vtypass
     login
    

    Frage: Können wir uns per Telnet auf den Router verbinden? Wird das Password abgefragt? Kann man sich in den Enable-Mode verbinden?

  3. Auf der “line vty” wird der Befehl “no login” konfiguriert:
    
    line vty 0 4
     no login
    

    Frage: Was hat sich zum letzten Punkt geändert?

  4. Als nächstes konfigurieren wir ein Passwort für den enable Mode und schalten “login” wieder ein:
    
    enable secret enapass
     line vty 0 4
     login
    

    Frage: Ist jetzt ein Wechsel in den privileged Mode möglich?

  5. Auf der “line vty” wird von “login” auf “login local” gewechselt:
    
    line vty 0 4
     login local
    

    Frage: Wie verhält sich jetzt der Telnet-Login? Kann man sich einloggen?

  6. Es wird ein lokales Benutzerkonto konfiguriert:
    
    username admin password adminpass
    

    Frage: Ist jetzt ein Einloggen möglich? Ist ein Wechsel in den privileged Mode möglich?

  7. “login local” wird wieder zu “login” zurückkonfiguriert:
    
    line vty 0 4
     login
    

    Frage: Ist der Login wieder per reinem Password möglich?

  8. Der Router wird für AAA umkonfiguriert:
    
    aaa new-model
    

    Frage: Wie verhält sich jetzt der Login per Telnet und die Verbindung auf der Konsole?

  9. Auf dem Router wird die Kommunikation mit dem TACACS+-Server konfiguriert:
    
    tacacs-server host 10.255.255.244
    tacacs-server key ciscosecure
    
  10. Auf dem ACS wird der Router als AAA-Client angelegt:
    • Network Configuration -> AAA Clients, Add Entry ->AAA Client
    • Hostname: Router
    • AAA Client IP Address: 10.255.255.234
    • Key: ciscosecure
    • Authenticate Using: TACACS+ (Cisco IOS)
    • Submit + Restart
    • Der AAA-Client sollte in der Liste erscheinen.
  11. Auf dem Router wird die Authentifizierung umkonfiguriert den TACACS+-Server zu benutzen:
    
    aaa authentication login default group tacacs+
    

    Frage: Wie verhält sich der Login per Telnet? Funktioniert der im Router angelegte User “admin”? Welche Fehlermeldung ist im ACS unter Reports and Activity -> Failed Attempts -> Failed Attempts active.csv zu sehen?

  12. Ein User wird im ACS angelegt:
    • User Setup -> User: aaauser -> Add/Edit
    • Im Unterbereich User Setup -> “aaapass” als CiscoSecure PAP Password und Confirm Password eintragen.
    • Button Submit

    Frage: Ist jetzt ein Telnet-Login mit dem aaauser möglich? Kann man sich in den Enable-Mode verbinden? Ist der erfolgreiche Login unter Reports and Activity -> Passed Authentications vermerkt?

  13. Im ACS wird das Logging erweitert:
    • System Configuration -> Logging -> CSV Passed Authentications
    • Das Häkchen bei “Log to CSV Passed Authentications report” setzen
    • Button Submit

    Frage: Ist bei einem erneuten Telnet-Login der erfolgreiche Login unter Reports and Activity -> Passed Authentications vermerkt?

  14. Als nächstes wird ein Ausfall unseres ACS simuliert. Dafür werden einfach die Dienste gestoppt.
    • System Configuration -> Service Control
    • Button Stop
    • Warten bis Status “Is Currently Stopped” angezeigt wird.

    Frage: Ist ein Einloggen per Telnet möglich?

  15. Der Router wird konfiguriert, bei einem Fehler des TACACS-Dienstes per Fallback eine Authentifizierung per enable password oder enable secret durchzuführen:
    
    aaa authentication login default group tacacs+ enable
    

    Frage: Ist ein Einloggen per Telnet wieder möglich?

  16. Die ACS-Dienste werden wieder gestartet
    • System Configuration -> Service Control
    • Button Start
    • Warten bis Status “Is Currently Running” angezeigt wird.
  17. Die bisherigen Versuche liefen per Telnet.
    Frage: Wie verhält sich der Router beim Einloggen auf der Konsole?
  18. Jetzt soll auch noch das enable-Passwort auf dem ACS gespeichert werden. Dafür wird der Router konfiguriert die enable-Überprüfung über TACACS+ durchzuführen:
    aaa authentication enable default group tacacs+

    Frage: Ist nach dem Einloggen per Telnet ein Wechsel in den Enable-Mode möglich? Welche Fehlermeldung erscheint auf Router und ACS?

  19. In der Userkonfiguration im ACS wird das enable-Password hinterlegt. Dafür muss in der Interface-Konfiguration diese Option erst eingeschaltet werden:
    • Interface Configuration -> TACACS+ (Cisco IOS) -> Advanced Configuration Options
    • Das Häkchen wird bei “Advanced TACACS+ Features” gesetzt.
    • Button Submit anklicken
    • Advanced Options
    • “Per-user TACACS+/RADIUS Attributes” auswählen
    • Button Submit
    • User Setup -> Button “List all users” -> aaauser
    • Advanced TACACS+ Settings
    • Unter “TACACS+ Enable Password” die Option Use seperate password auswählen und das Password “aaaena” eintragen
    • Button Submit

    Frage: Ist jetzt ein Wechsel in den Enable-Mode möglich? Welche Fehlermeldung erscheint auf Router und ACS?

  20. Der TACACS+ enable privilege wird auf “15” gestellt.
    • User Setup -> Button “List all users” -> aaauser
    • Advanced TACACS+ Settings
    • Unter “TACACS+ Enable Control:” wird die Option “Max Privilege for any AAA Client” auf “Level 15” gesetzt.
    • Button Submit

    Frage: Ist jetzt ein Wechsel in den Enable-Mode möglich? Ist der Vorgang in den Passed Authentications im ACS zu sehen?

  21. Und wieder wird der ACS gestoppt.
    Frage: Ist ein Einloggen (per Telnet oder Konsole) möglich? Kann auch jetzt noch in den priv. Mode gewechselt werden?
  22. Auch für die enable-Überprüfung wird ein Fallback konfiguriert:
    
    aaa authentication enable default group tacacs+ enable
    

    Frage: Kann jetzt wieder in den priv. Mode gewechselt werden?

  23. Der ACS wird wieder gestartet
    Jetzt möchten wir, daß der User nach dem Login direkt im priv. Mode landet. Dies wird über die exec-Authorisierung gemacht:

    
    aaa authorization exec default group tacacs+
    

    Frage: Ist immernoch ein Einloggen (Telnet oder Konsole) möglich? Gibt es eine Meldung auf dem ACS?

  24. Für die nächste Konfiguration muß in den User-Settings wieder eine bisher verdeckte Option hinzugefügt werden:
    • Interface Configuration -> TACACS+ (Cisco)
    • Das Häkchen “User” für Shell (exec) wird ausgewählt
    • Button Submit
    • User Setup -> Button “List all users” -> aaauser
    • TACACS+ Settings
    • Shell (exec) auswählen
    • Button Submit

    Frage: Ist immer noch ein Einloggen (Telnet oder Konsole) möglich? Landet man direkt im priv. Mode?

  25. Für den User wird der richtige Level für die Shell gesetzt:
    • User Setup -> Button “List all users” -> aaauser
    • TACACS+ Settings
    • Das Häkchen bei Privilege level setzen und den Level “15” eintragen
    • Button Submit

    Frage: Landet man jetzt beim Einloggen direkt im priv. Mode?

  26. Und wieder wird der ACS gestoppt und wieder getestet.
    Frage: Ist immer noch ein Einloggen (Telnet oder Konsole) möglich?
  27. Auch für die Authorisierung wird ein Fallback konfiguriert. Diesmal auf die Methode “none”:
    
    aaa authorization exec default group tacacs+ none
    

    Frage: Ist jetzt wieder ein Einloggen (Telnet oder Konsole) möglich? Kann in den priv. Mode gewechselt werden?

  28. Der ACS wird wieder gestartet
  29. Jetzt soll zusätzlich konfiguriert werden, daß auf der Konsole keine Login-Authentifizierung durchgeführt wird. Der enable-Mode soll über das lokale enable secret erreicht werden.
    Dafür wird eine Authentifizierungs-Liste geschrieben und auf die “line con 0” gelegt:

    
    aaa authentication login noTAC none
    line con 0
     login authentication noTAC
    

    Frage: Wird beim Verbinden auf der Konsole nach Username und Password gefragt? Kann man sich in den priv. Mode verbinden?

  30. Der ACS wird wieder gestoppt.
    Frage: Wie verhält sich jetzt der Login und der Wechsel in den Enable-Mode?
  31. Der ACS wird wieder gestartet.
  32. Da der Telnet-Login die aaa-Konfiguration für den “enable default” nicht mehr benötigt, kann dieser auf eine lokale Methode zurückgesetzt werden:
    
    aaa authentication enable default enable
    

    Frage: Hat sich beim Telnet-Login etwas geändert? Wie kann man sich auf der Konsole in den Enable-Mode verbinden?

Und damit ist dieses Beispiel abgeschlossen.

Die Konfiguration des Routers sieht jetzt folgendermaßen aus (Auszug):


aaa new-model
aaa authentication login default group tacacs+ enable
aaa authentication login noTAC none
aaa authentication enable default enable
aaa authorization exec default group tacacs+ none
!
username admin password 0 adminpass
!
interface FastEthernet0
 ip address 10.255.255.234 255.255.255.0
!
line con 0
 exec-timeout 0 0
 login authentication noTAC
line aux 0
line vty 0 4
 exec-timeout 0 0
 password vtypass
!
end

Antworten zu den Fragen:

Frage 1: Die Meldung “Password required, but none set” wird angezeigt.

Frage 2: ja, Passwort wird abgefragt.


Router>en
% No password set

Frage 3: Login ist jetzt ohne Password möglich

Frage 4: ja, Enable-Mode ist möglich

Frage 5: kein Login, da kein User angelegt

Frage 6: Login und enable Mode ist möglich

Frage 7: ja, nur PW

Frage 8: Telnet ist nur per Username/Password erreichbar, Konsole wie bisher.

Frage 11: Login per Telnet ist nicht möglich, “admin” funktioniert nicht, im ACS ist eine Fehlermeldung “Authen failed” mit dem Fehler-Code “CS user unknown” zu sehen.

Frage 12: Login geht, enable-Mode ist per enable password möglich. Unter “Passed Authentications” ist kein Eintrag vermerkt.

Frage 13: ja, “Authen OK” für den aaauser ist vermerkt.

Frage 14: nein Fehlermeldung “% Authentication failed.” wird ohne Loginaufforderung angezeigt.

Frage 15: Login ist mit dem enable password möglich.

Frage 17: Hier wird ebenfalls nach aaauser/aaapass gefragt, das Default-Verhalten wurde angepasst.

Frage 18: Enable schlägt mit Meldung “% Error in authentication.” fehl. Auf dem ACS ist die Fehlermeldung “Authen failed” mit dem Failure-Code “CS password invalid” zu sehen.

Frage 19: Auf Router kommt “% Error in authentication.” Auf dem ACS ist die Meldung “Authen failed” mit Code “T+ enable privilege too low” zu sehen.

Frage 20: Ena-Zugriff funktioniert und ist im Log vermerkt.

Frage 21: Ein Einloggen ist mit dem lokalen enable-Password möglich. Beim Wechsel in den priv. Mode gibt es die Fehlermeldung “% Error in authentication.” weil nicht mit dem ACS kommuniziert werden kann.

Frage 22: Jetzt ist der Wechsel in den priv. Mode mit dem lokalen enable password möglich.

Frage 23: Ein Login ist nicht möglich, die Fehlermeldung “% Authorization failed.” wird angezeigt. Auf dem ACS ist in den Failed Attempts ein “Author failed” mit den Details “Service denied” und “service=shell cmd*” zu sehen.

Frage 24: Login ja, aber noch nicht direkt im ena-Mode.

Frage 25: ja, direkt im enable Mode.

Frage 26: Kein einloggen mit Fehlermeldung “% Authorization failed.”

Frage 27: Login und Wechsel über lokales enable password

Frage 30: Login in die Konsole geht ohne User. Beim Wechsel in den enable Mode muß aber der Benutzer “aaauser” mit den zugehörigen enable password “aaaena” angegeben werden.

Frage 31: Login ohne Password, Wechsel in den enable mit lokalem Password.

Frage 32: keine Änderung. Auf der Konsole mit dem lokalen Password.

4 Replies to “AAA mit TACACS+ im Cisco IOS”

  1. Danke für den tollen Beitrag! Jetzt muss ich mir nur noch eine Testumgebung zusammenbasteln :-/

    Gruß

  2. Ja, vielen Dank für diesen Super Beitrag. Hier wird genau beschrieben was ich vor habe … und es funzt! 😉

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.