Ci-dessous, les différences entre deux révisions de la page.
wiki:services:radius [2018/08/02 23:34] sowarks |
wiki:services:radius [2020/06/27 18:16] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Radius ====== | ||
- | |||
- | RADIUS est un protocole AAA qui réalise 3 fonctions: l' | ||
- | |||
- | RADIUS supporte différents standard d' | ||
- | |||
- | ==== Historique à MiNET==== | ||
- | |||
- | A MiNET, nous avons utilisé dans un premier temps un serveur freeradius patché pour utiliser une base de donnée distante d' | ||
- | * L' | ||
- | * Le NAS contacte le serveur RADIUS avec les informations de l' | ||
- | * Le serveur vérifie le type de requête. Si c'est une requête EAP MSCHAPv2, il fait une requête HTTP à ADH5 pour recevoir le hash du mot de passe de l' | ||
- | * Si les informations sont correctes, RADIUS renvoie un message d' | ||
- | * Quand le port est dans le bon VLAN, l' | ||
- | |||
- | Le patch fait par Guillaume Rose est disponible ici : https:// | ||
- | |||
- | Minet possédait deux serveurs freeradius : pour le filaire et le wifi. Nous avons voulu améliorer cette architecture. | ||
- | |||
- | ==== Installation de FreeRadius avec Patch ==== | ||
- | |||
- | Voici un description succincte des étapes que j'ai réalisées | ||
- | |||
- | * Télécharger les sources de freeradius http:// | ||
- | * Cloner le dépôt de guillaume git clone https:// | ||
- | * Télécharger les dépendances de freeradius apt-get build-dep freeradius | ||
- | * Télécharger les paquets dev: openssl, curl, json (apt-get install libssl-dev libjson0-dev libcurl4-openssl-dev) | ||
- | * Suivre les étapes de guillaume sur github | ||
- | |||
- | ==== Installation de FreeRadius avec rlm_python ==== | ||
- | |||
- | Freeradius 3 est intégré dans Debian stretch. Il suffit de sourcer les dépots correspondants. | ||
- | ==== Fonctionnement interne de FreeRadius ==== | ||
- | |||
- | FreeRadius est extensible un peu à la manière de Apache : il a des sites et des modules pour les différentes utilisation du logiciel. La documentation est disponible sur le site : http:// | ||
- | |||
- | FreeRadius 2 ne permettait pas d' | ||
- | |||
- | Actuellement, | ||
- | * EAP avec Mschapv2 pour le type d' | ||
- | * MySQL pour approvisionner le serveur avec les données utilisateurs | ||
- | * rlm_python pour faire l' | ||
- | |||
- | Concernant les sites : | ||
- | * default est le site pour les requêtes filaires. Quand PEAP est utilisé, ce profil en appelle un autre : inner-tunnel | ||
- | * inner-tunnel a accès aux données du tunnel sécurisé PEAP. Il vérifie le login et mot de passe (avec MSCHAPv2) pour l' | ||
- | |||
- | ==== Haute disponibilité ==== | ||
- | |||
- | Les serveurs radius et radius2 sont en haute disponibilité. | ||
- | |||
- | Sur les WLANC, il est possible de référencer plusieurs serveurs pour l' | ||
- | |||
- | Sur les switch, cette fonctionnalité est également activée. Les switchs peuvent faire du load-balancing. | ||
- | http:// | ||
- | |||
- | ==== Nouvel outil utilisant Radius: ex Wlan Controller ==== | ||
- | |||
- | Lors de l' | ||
- | |||
- | ====== Schéma de base de donnée ====== | ||
- | |||
- | Freeradius utilise une base de donnée distante ' | ||
- | Pour ce faire, on créé 4 vues (similaire à kea) : **login_authorize**, | ||
- | |||
- | NB : On utilise une vue des tables de la base de donnée adh5 pour la base de donnée radius, il s'agit donc de vue externe à une base de donnée. | ||
- | |||
- | NB2: Il peut être nécessaire de réaliser un drop table sur certaines tables créés par le script automatique de freeradius. (ex: radcheck) | ||
- | |||
- | < | ||
- | < | ||
- | CREATE ALGORITHM=UNDEFINED DEFINER=`thunder`@`%` SQL SECURITY DEFINER VIEW `login_authorize` AS select `adh5-prod`.`adherents`.`id` AS `id`, | ||
- | </ | ||
- | |||
- | < | ||
- | < | ||
- | CREATE ALGORITHM=UNDEFINED DEFINER=`thunder`@`%` SQL SECURITY DEFINER VIEW `login_to_macf` AS select `A`.`login` AS `login`, | ||
- | </ | ||
- | |||
- | < | ||
- | < | ||
- | CREATE ALGORITHM=UNDEFINED DEFINER=`thunder`@`%` SQL SECURITY DEFINER VIEW `login_to_macw` AS select `adh5-prod`.`adherents`.`login` AS `login`, | ||
- | </ | ||
- | |||
- | < | ||
- | < | ||
- | CREATE ALGORITHM=UNDEFINED DEFINER=`thunder`@`%` SQL SECURITY DEFINER VIEW `radcheck` AS select `adh5-prod`.`adherents`.`id` AS `id`, | ||
- | </ | ||