Aller au contenu principal

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èreTACACS+RADIUS
ChiffrementToute la charge utileMot de passe seulement (le reste en clair)
Séparation AAAAuthentification/Autorisation/Accounting distinctesAuthentification + Autorisation combinées
Usage typiqueAdministration des équipements (accès CLI)Accès utilisateur final (Wi-Fi, VPN, 802.1X)
TransportTCP 49UDP 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 (local omis dans la ligne aaa 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 authentication et 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 ?