AAA / TACACS+ / RADIUS — Cheat Sheet Cisco IOS
Configuration pratique d'AAA (Authentication, Authorization, Accounting) sur Cisco IOS, avec un serveur centralisé TACACS+ ou RADIUS. Objectif : ne plus dépendre de mots de passe locaux identiques sur tous les équipements, et tracer qui a fait quoi.
AAA en une phrase
Authentication (qui es-tu ?), Authorization (qu'as-tu le droit de faire ?), Accounting (qu'as-tu fait ?). Sans aaa new-model, un routeur Cisco utilise l'authentification locale classique (line/username) — aaa new-model bascule vers un modèle unifié, local ou serveur externe.
TACACS+ vs RADIUS — lequel choisir
| Critère | TACACS+ | RADIUS |
|---|---|---|
| Chiffrement | Toute la charge utile | Mot de passe seulement (le reste en clair) |
| Séparation AAA | Authentification/Autorisation/Accounting distinctes | Authentification + Autorisation combinées |
| Usage typique | Administration des équipements (accès CLI) | Accès utilisateur final (Wi-Fi, VPN, 802.1X) |
| Transport | TCP 49 | UDP 1812/1813 |
Cisco recommande TACACS+ pour administrer les équipements (contrôle fin par commande possible) et RADIUS pour l'authentification réseau des utilisateurs.
:::danger Ne jamais couper l'accès en configurant AAA à distance Toujours garder une session console ouverte et tester la nouvelle méthode avant de désactiver le fallback local. Une erreur de configuration AAA appliquée en SSH peut verrouiller tout accès distant à l'équipement (y compris pour soi-même). :::
Authentification locale de secours (fallback obligatoire)
username admin privilege 15 secret <MotDePasseSolide>
Toujours garder au moins un compte local — c'est le filet de sécurité si le serveur AAA devient injoignable.
TACACS+ — configuration complète
aaa new-model
tacacs server TACACS-PRIMARY
address ipv4 192.168.1.20
key <ClePartageeSolide>
aaa group server tacacs+ TACACS-GROUP
server name TACACS-PRIMARY
! Authentification : serveur d'abord, secours local si injoignable
aaa authentication login default group TACACS-GROUP local
! Autorisation des commandes exec (niveau privilège)
aaa authorization exec default group TACACS-GROUP local
! Traçabilité : log de chaque commande exécutée
aaa accounting exec default start-stop group TACACS-GROUP
aaa accounting commands 15 default start-stop group TACACS-GROUP
line vty 0 4
login authentication default
group TACACS-GROUP local: l'ordre compte — IOS essaie le groupe TACACS+ puis l'authentification locale si le serveur ne répond pas (jamais l'inverse par défaut, il ne bascule pas en cas de simple refus d'identifiants).aaa accounting commands 15: journalise chaque commande de niveau privilège 15 exécutée par un administrateur — utile en investigation/conformité.
RADIUS — configuration équivalente
aaa new-model
radius server RADIUS-PRIMARY
address ipv4 192.168.1.21 auth-port 1812 acct-port 1813
key <ClePartageeSolide>
aaa group server radius RADIUS-GROUP
server name RADIUS-PRIMARY
aaa authentication login default group RADIUS-GROUP local
aaa authorization exec default group RADIUS-GROUP local
aaa accounting exec default start-stop group RADIUS-GROUP
RADIUS pour l'accès réseau (802.1X)
aaa authentication dot1x default group RADIUS-GROUP
interface GigabitEthernet0/1
authentication port-control auto
dot1x pae authenticator
Complète le contrôle d'accès au niveau port : voir aussi le glossaire pour 802.1X.
Vérification
show aaa servers ! état des serveurs AAA configurés (up/dead, statistiques)
test aaa group TACACS-GROUP <user> <password> legacy ! teste l'authentification sans se déconnecter
debug aaa authentication ! trace la négociation en temps réel (à couper après usage)
:::tip Diagnostiquer un échec d'authentification
test aaa group ... legacy permet de valider la chaîne AAA sans risquer de se déconnecter soi-même — toujours préférable à un test en conditions réelles sur une session active.
:::
:::warning Pièges fréquents
- Pas de fallback local (
localomis dans la ligneaaa authentication login) : si le serveur AAA tombe, plus personne ne peut se connecter, y compris en console selon la config des lignes. - Clé partagée différente entre le routeur et le serveur : échec silencieux côté client (le serveur AAA voit souvent la requête arriver mais rejette le hash) — vérifier
debug aaa authenticationet les logs serveur en miroir. - Oubli de
line vty ... login authentication default: sans cette ligne, les VTY continuent à utiliser l'authentification locale classique même après avoir configuré AAA. :::
📝 Tester ses connaissances
1. Que désignent respectivement les trois lettres A-A-A ?
2. Pourquoi faut-il toujours garder un compte local (`username ... secret`) même avec AAA configuré vers un serveur externe ?
3. Pourquoi Cisco recommande-t-il TACACS+ plutôt que RADIUS pour l'administration CLI des équipements ?
4. Quel est le principal risque en configurant AAA à distance en SSH sans précaution ?