Skip to main content
Your first session is free. Claim mine
PacketMentor logo
Open menu
Home
Training
CCNA Library (74)
Browse all CCNA topics →
Network (13)
Device Operations (5)
Network Access (12)
Wireless (6)
IP Connectivity (10)
IP Services (11)
Security (10)
Automation (7)
CCNP Library (15)
LabsPricing
Contact 📞 +1 (860) 556-3010 Book a Call
← All topics
Security Fundamentals Foundational

AAA · RADIUS & TACACS+

Authentication, Authorization, Accounting — centralize who can log in, what they can do, and what they did. Covers RADIUS vs TACACS+, method lists, and why every network with more than 5 devices uses centralized auth.

TL;DR
  • AAA = Authentication (who are you), Authorization (what can you do), Accounting (what did you do).
  • RADIUS is the open standard, common for 802.1X and Wi-Fi auth. TACACS+ is Cisco-leaning, common for device admin access.
  • Always configure a local fallback so you don't lock yourself out if the AAA server is unreachable.

Mental model

Managing 50 switches without AAA: every switch has its own local user database. Hire someone? Update 50 devices. Fire someone? Update 50 devices. Audit who did what? Hope each device’s local log survived.

With AAA: every switch points to a central RADIUS or TACACS+ server. One place to add/remove users, one place to set permissions, one place to see who logged in where. Add the 51st switch? It just points at the same server.

Three letters, three jobs:

What it answers
AuthenticationWho are you? (proves identity — username + password, certificate, token)
AuthorizationWhat are you allowed to do? (commands, services, privilege level)
AccountingWhat did you do? (logs of commands, sessions, byte counts)

You can use all three or just authentication. Most networks start with auth only, add authorization later.

RADIUS vs TACACS+

RADIUSTACACS+
OriginOpen standard (IETF)Cisco proprietary (mostly)
TransportUDP 1812 (auth) + 1813 (accounting)TCP 49
EncryptionOnly password is encryptedEntire packet body encrypted
AAA separationAuth + authz combined in one exchangeAuth, authz, accounting are separate exchanges
Typical use802.1X, Wi-Fi, VPN clientsDevice admin (router/switch login)
Per-command authorizationLimitedFull support — TACACS+ can authorize every command typed

Rule of thumb:

  • RADIUS for client/user-side auth (Wi-Fi, 802.1X port auth, VPN client login)
  • TACACS+ for admin login to network devices (because of per-command authorization and full encryption)

Many large networks run both — TACACS+ for engineer logins, RADIUS for end-user Wi-Fi.

Commands — typical TACACS+ for admin login

! Enable AAA
R1(config)# aaa new-model

! Define the TACACS+ server
R1(config)# tacacs server CORP-TAC
R1(config-server-tacacs)# address ipv4 10.0.99.5
R1(config-server-tacacs)# key supersecret123

! Build a server group (lets you reference multiple servers)
R1(config)# aaa group server tacacs+ TACGROUP
R1(config-sg-tacacs+)# server name CORP-TAC

! Method list: try TACACS+ first, fall back to local if server unreachable
R1(config)# aaa authentication login default group TACGROUP local
R1(config)# aaa authorization exec default group TACGROUP local
R1(config)# aaa accounting commands 15 default start-stop group TACGROUP

! Make sure a local user exists for fallback
R1(config)# username admin privilege 15 secret rescuepass

Critical detail: the local keyword at the end of aaa authentication login default group TACGROUP local is what saves you when the TACACS+ server is down. Without it, no one can log in.

Commands — typical RADIUS for 802.1X port auth

R1(config)# aaa new-model

R1(config)# radius server CORP-RAD
R1(config-radius-server)# address ipv4 10.0.99.6 auth-port 1812 acct-port 1813
R1(config-radius-server)# key supersecret456

R1(config)# aaa group server radius RADGROUP
R1(config-sg-radius)# server name CORP-RAD

R1(config)# aaa authentication dot1x default group RADGROUP
R1(config)# aaa authorization network default group RADGROUP

R1(config)# dot1x system-auth-control

! On an access port that should enforce 802.1X
R1(config)# interface GigabitEthernet0/5
R1(config-if)# switchport mode access
R1(config-if)# authentication port-control auto
R1(config-if)# dot1x pae authenticator

Method lists — the magic of “try this, then that”

A method list says: “try authentication via X. If X says no, deny. If X is unreachable, try Y. If Y is unreachable, try Z.”

aaa authentication login default group TACGROUP local enable

Read aloud: “For login, first ask TACGROUP. If TACGROUP can be reached and says no, deny. If TACGROUP is unreachable, try the local user database. If that’s empty, try the enable password.”

Critical safety net: always include local or enable at the end so you can recover if the server is unreachable.

Verification

R1# show aaa servers
R1# show tacacs
R1# show radius statistics
R1# debug aaa authentication      ! temporary — don't leave on

Common mistakes

  1. Forgetting the local fallback. aaa authentication login default group TACGROUP (without local) → if the server is unreachable, you can’t log in. Always add local.

  2. No local user account. You added local to the method list, but no local users exist. Same problem. Always create at least one local admin user with username ... privilege 15 secret ....

  3. Confusing RADIUS and TACACS+ ports. RADIUS: UDP 1812 auth, 1813 accounting (sometimes legacy 1645/1646). TACACS+: TCP 49. Get them mixed up and the server seems unreachable.

  4. Pre-shared key mismatch. The key supersecret123 on the device must exactly match the corresponding entry on the AAA server. One typo and authentication silently fails.

  5. Skipping accounting. Authentication tells you someone logged in. Accounting tells you what they did. For compliance / forensics, accounting is often required.

  6. TACACS+ over a slow / lossy link. TCP means retransmits — if your management link is congested, login attempts hang. Have a fallback method (RADIUS over UDP, or local).

  7. Using enable as the only fallback. enable password is shared by everyone who knows it. Use local instead — at least each rescue user has their own credential.

Lab to try tonight

  1. Install FreeRADIUS or TACACS+ server (tacacs+ package on Ubuntu). Configure one test user.
  2. On a Cisco router, enable AAA, point at the server, configure a method list with local fallback.
  3. Add a local admin user as a safety net.
  4. Log out, log back in via SSH. Watch the AAA server log the request and the device accept.
  5. Make the server unreachable (firewall block / power off). Log in again — should fall back to the local user.
  6. Bonus: configure TACACS+ command authorization. Watch each command get authorized in real time.

Cheat strip

ConceptPlain English
AAAAuthentication, Authorization, Accounting
RADIUSOpen standard. UDP 1812/1813. Encrypts only the password.
TACACS+Cisco-leaning. TCP 49. Encrypts the entire packet body.
Method listOrdered list of auth sources to try
local in the listCritical safety net — fall back to local users
aaa new-modelMust come first. Enables AAA.
Per-command authzTACACS+ feature — authorize every CLI command
enable as fallbackShared password. Use local instead.
Master this on a real network

Want this drilled into reflex?

1:1 weekly sessions, live feedback on your labs, and US interview prep — built around the CCNA® exam blueprint. Free first session. No card on file until you decide.

Claim my free session →

One topic per email, every fortnight

VLANs, OSPF, ACLs, subnetting, automation — written like this. Unsubscribe in one click.

We respect your inbox. One email per week, max. Unsubscribe any time.

Start typing — or browse popular topics below.

↑↓ navigate open Searches topics · labs · programs · pages