Authentification RADIUS sur Cisco 3560 avec freeRADIUS

Authentification RADIUS sur Cisco 3560 avec freeRADIUS

27 juin 2021 2 Par Mairien Anthony

Après un petit mois sans article, découverte de l’authentification RADIUS sur un équipement Cisco !

Nouveau travail et déménagement imminent obligent, j’ai eut beaucoup moins de temps à consacer à ce blog, mais je remets doucement le pied à l’étrier ! Aujourd’hui nous allons donc voir comment mettre en place un serveur freeRADIUS sur une Debian 10 et comment le relier à un commutateur Cisco Catalyst 3560 !

Je ne vais pas re-détailler ici ce qu’est le protocole RADIUS, je vais me contenter de faire un copier/coller d’un précédent article que je vous conseille d’aller voir pour en savoir plus.

Le protocole RADIUS pour Remote Authentication Dial-In User Service est donc un protocole réseau de type AAA (Authentication, Authorization, Accounting/Auditing) reconnu et ratifié dans plusieurs RFC. Il va donc permettre de gérer l’authentification, l’autorisation, et la traçabilité des échanges, par exemple : Le client a-t-il le droit de se connecter ? A-t-il le droit d’effectuer X action ? A quelle heure et combien de temps sa connexion a-t-elle durée ?

Son fonctionnement est basé sur un système de client/serveur permettant donc de gérer les accès utilisateurs sur un réseau, il est d’ailleurs extrêmement utilisé par les différents FAI.

RADIUS se constitue donc :

  • D’un serveur (le serveur RADIUS), qui est relié à une base d’identification (annuaire LDAP comme un Active Directory ou base de données comme MySQL par exemple) ;
  • D’un client RADIUS, appelé NAS (Network Access Server), faisant office d’intermédiaire entre l’utilisateur et le serveur, dans notre lab ce sera notre commutateur Cisco ;

Après ce rapide rappel, voyons donc sa mise en place avec son implémentation OpenSource freeRADIUS sur GNU/Linux ainsi que sa connexion avec un commutateur Cisco.

I) Installation de freeRADIUS et configuration

Une fois notre Debian installée, il suffit d’installer freeRADIUS via un simple apt-get install, ce dernier étant nativement disponible dans les dépôts de la distribution :

apt install freeradius -y

Pour vérifier que ce dernier est bien installé, et afficher la version, un simple freeradius -v suffit. Par la même occasion, j’en profite pour montrer l’adresse IP de notre serveur, qui est donc en 192.168.1.100/24 :

Bien, la première étape est donc de se rendre dans le dossier de configurations de freeRADIUS, et de rajouter notre client (pour rappel, un client RADIUS n’est pas un utilisateur, mais bien l’équipement intermédiaire, ici ce sera donc notre switch).

Pour ce faire, on édite le fichier /etc/freeradius/clients.conf et en premier lieu nous allons remplacer le secret par défaut, qui est donc le mot de passe utilisé pour chiffrer et signer les paquets transitants entre le serveur et le client :

Ensuite, nous nous rendons à la fin du fichier de configuration et nous rajoutons notre client comme ceci :

On renseigne donc l’adresse IP du client, un mot de passe, le type de client (ici cisco), et ensuite un nom un peu plus évocateur.

Une fois notre client déclaré, nous allons rajouter notre ou nos utilisateurs dans le fichier /etc/freeradius/users, bien que freeRADIUS supporte plusieurs autres solutions, comme l’authentification via LDAP/AD (vu dans un autre article), ou bien encore via une base de données MySQL.

On se rend donc en fin de fichier, et on rajoute nos utilisateurs. Ici nous déclarons donc le nom de l’utilisateur, puis son mot de passe, le type de service que l’utilisateur a demandé (ici un prompt sur le client), et enfin le Per User Privilege Level, qui indique le niveau de privilèges qu’aura l’utilisateur. Chez Cisco, nous pouvons dénoter deux niveaux souvent utilisés :

  • privilege level 1 = Le prompt par défaut en console, niveau de base ;
  • privilege level 15 = Le prompt privilégié, équivalent du mode enable ;

Bien-entendu d’autres niveaux sont disponibles, et sont par ailleurs ajustables sur l’équipement lui-même. Ici je ne vais pas rentrer dans les détails mais sachez que via la commande privilege exec il est possible d’ajuster les droits par niveau de privilèges.

Nos deux utilisateurs étant créés, il ne nous reste plus qu’à redémarrer le service et passer à la configuration côté switch !

II) Configuration RADIUS côté commutateur

On se connecte donc sur notre switch, et nous allons respectivement effectuer les commandes suivantes :

  • aaa new-model, pour créer un nouveau modèle ;
  • radius-server host 192.168.1.100 auth-port 1813 acct-port 1813, pour définir notre serveur RADIUS via son IP ainsi que les deux ports utilisés (un pour l’authentification, le second pour l’accounting) ;
  • radius-server key Sup3rP4ssw0rd, qui est donc le mot de passe défini pour l’équipement dans le fichier /etc/freeradius/clients.conf ;
  • aaa authentication login default group radius local, qui permet d’activer l’authentification via RADIUS sur l’équipement ;

Une fois ces différentes commandes effectuées, on peut vérifier les différents paramètres encodés :

Maintenant, place aux tests !

III) Vérification de l’authentification

Déconnectons-nous de la console, et reconnectons-nous : désormais le switch nous demande un utilisateur/mot de passe ! Essayons en premier lieu avec l’utilisateur anthonyM :

Ce dernier a bien accès au switch, niquel ! Et idem pour notre second utilisateur :

Et si l’on essaie de se connecter avec un utilisateur qui n’existe pas :

Tout est donc fonctionnel ! A l’occasion je ferai sûrement d’autres articles autour de RADIUS, comme son implémentation lors de l’authentification MAC/VLAN.

Ceci conclu donc cet article traitant de FreeRADIUS. Comme dit en introduction, ces dernières semaines ont été assez chargées pour ma part, donc moins de temps à consacrer au blog, mais l’avantage est que j’ai de nouveau de nombreuses idées d’articles, ces derniers ne devraient pas tarder à sortir 😉

Sur ce, je vous souhaite une bonne journée/soirée !