AAA (Authentication, Authorization, Accounting) désigne le triptyque sur lequel repose le contrôle des accès administratifs : qui a le droit de se connecter, ce qu'il peut faire une fois connecté, et la trace de ce qu'il a fait. RADIUS est l'un des protocoles les plus répandus pour déporter cette logique vers un serveur centralisé plutôt que de gérer un compte local sur chaque équipement : un commutateur ou un routeur devient alors un simple client qui interroge le serveur à chaque tentative de connexion, avec une base locale en filet de sécurité si ce serveur devient injoignable. Ce laboratoire met ce mécanisme en pratique de bout en bout, du serveur jusqu'au paquet RADIUS observé sur le fil.
Le laboratoire
La maquette associe trois éléments. VM-1-NUX, une machine virtuelle Linux à l'adresse 172.20.10.50, héberge le serveur RADIUS. ESW1, un commutateur Cisco, joue le rôle de client RADIUS (le NAS, Network Access Server) avec une interface sur chacun des deux réseaux : 172.20.10.0/24 côté serveur, 10.0.0.0/24 côté cœur de réseau. R1, enfin, sert simplement à ouvrir une session Telnet vers ESW1 pour déclencher le dialogue d'authentification et observer ce qui se passe. Le panneau de droite reprend la configuration appliquée sur ESW1 : activation d'AAA, méthodes d'authentification, comptes locaux de secours, adressage des interfaces et déclaration du serveur RADIUS.
Le serveur RADIUS : une VM Linux intégrée à la maquette
GNS3 simule très bien des routeurs et des commutateurs, mais ne fournit aucun serveur RADIUS prêt à l'emploi : il faut donc en raccorder un vrai. La solution retenue ici consiste à importer une machine virtuelle Linux gérée par VirtualBox et à la relier à ESW1 par un tunnel UDP. Côté GNS3, le nœud VM-1-NUX est autorisé à utiliser les adaptateurs réseau déclarés dans VirtualBox ; côté VirtualBox, son adaptateur est basculé en pilote générique UDPTunnel, avec des ports source et destination qui se répondent. Une fois le pont monté, la VM apparaît dans la topologie comme n'importe quel autre nœud, à l'adresse 172.20.10.50.
Une fois la VM raccordée, il ne reste qu'à y faire tourner un serveur RADIUS : FreeRADIUS, l'implémentation libre la plus courante, est installée sur cette machine Ubuntu. Sa configuration tient pour l'essentiel dans un fichier déterminant, clients.conf, qui énumère les équipements autorisés à interroger le serveur (leur adresse ou leur sous-réseau) ainsi que la clé partagée à présenter pour que la conversation soit acceptée. Cette clé doit être strictement identique à celle déclarée sur le commutateur avec radius-server key : la moindre différence, même un seul caractère, et le serveur rejette silencieusement les requêtes du client.
Activer AAA sur le commutateur, étape par étape
- 1. Activer le sous-système AAA : la commande
aaa new-modelfait basculer le commutateur d'une authentification locale classique vers le cadre Authentication, Authorization, Accounting (AAA), point d'entrée indispensable pour brancher RADIUS par la suite. - 2. Définir les méthodes d'authentification :
aaa authentication login default group radius local enablecrée la liste par défaut (RADIUS en premier, base locale ensuite, mot de passe enable en dernier recours), etaaa authentication login TELNET_LINES group radiusdéfinit une liste nommée dédiée aux lignes de terminal virtuel. - 3. Garder des comptes locaux de secours :
username synaps privilege 15 password 0 synapsetusername sna privilege 15 password 0 snaassurent un accès administratif même si le serveur RADIUS devient injoignable, le maillon local de la cascade de méthodes. - 4. Déclarer le serveur RADIUS et sa clé :
radius-server host 172.20.10.50 auth-port 1812 acct-port 1813indique où envoyer les requêtes, etradius-server keyfixe la clé partagée, qui doit correspondre au caractère près à celle du fichierclients.confdu serveur. - 5. Appliquer la liste nommée aux lignes vty : sous
line vty 0 4, la commandelogin authentication TELNET_LINESbranche les sessions Telnet/SSH entrantes sur la liste de méthodes qui interroge RADIUS avant de retomber sur les comptes locaux.
Vérification : suivre une connexion de bout en bout
La meilleure preuve qu'AAA fonctionne, c'est de se connecter pour de vrai. Depuis R1, une session Telnet vers 10.0.0.1 (l'interface de ESW1 côté cœur de réseau) déclenche aussitôt l'invite d'authentification : le commutateur n'a plus de base locale à consulter en premier, c'est désormais le serveur RADIUS qui valide, ou refuse, le compte raduser. Côté commutateur, un coup d'œil sur les sessions TCP confirme qu'une connexion est bel et bien établie entre les deux équipements sur le port 23.
Une fois connecté, raduser se retrouve d'abord en mode utilisateur. Le passage en mode privilégié suit sa propre logique d'authentification, indépendante du login initial : une première tentative échoue (Access denied), la seconde aboutit. Les commandes show users et show users all confirment ensuite que raduser occupe bien la ligne vty 0, connecté depuis 10.0.0.10, soit l'adresse de R1.
Pour aller plus loin que la simple observation du résultat, l'activation de debug radius verbose sur ESW1 expose le détail du protocole : le commutateur encode une demande de nom d'utilisateur (GET_USER) puis de mot de passe (GET_PASSWORD), construit la requête avec le type de composant EXEC et l'adresse du NAS, choisit l'adresse locale la plus appropriée pour joindre 172.20.10.50, et reçoit en retour un Access-Accept en provenance du serveur. Tout le cycle de vie d'une requête RADIUS, de la frappe au clavier jusqu'à la réponse du serveur, devient lisible ligne par ligne.
Le débogage expose la mécanique RADIUS de l'intérieur, telle que le commutateur la vit. En parallèle, une capture Wireshark tournait sur ce même segment. Parmi les trames récoltées, l'une d'elles n'a rien à voir avec RADIUS, mais mérite tout de même un coup d'œil : une annonce CDP (Cisco Discovery Protocol) émise par ESW1 à destination de ses voisins directs.
Cette trame, à elle seule, dévoile le nom de l'équipement, sa plateforme, sa version logicielle et le port d'où elle provient, le tout en clair, sans la moindre authentification pour pouvoir l'écouter. Un rappel utile : sécuriser les accès administratifs avec AAA est une étape essentielle, mais une vraie posture de sécurité s'intéresse aussi à ce qu'un équipement choisit de raconter de lui-même à qui veut bien l'entendre.