Il y a quelques années, j’ai eu l’occasion de travailler sur le déploiement d’une architecture radius basée sur freeradius. Projet très intéressant et qui, à l’époque, m’a permis de contribuer mes premiers patchs, ainsi qu’un template Cacti. Ce dernier est visiblement utilisé par quelques personnes, puisque je reçois de temps à autres des questions sur son installation. J’ai donc décidé de détailler la procédure ici, afin de simplifier son utilisation.
En résumé, il ne s’agit ni plus ni moins que d’installer un plugin cacti…
Le sujet n’étant pas l’installation de Cacti, je vais considérer que ce dernier est installé.
Télécharger l’archive.
Vous pouvez commencer par télécharger l’archive ici. Celle ci contient:
radstatus.sh
: le script bash d’extraction des données.cacti_host_template_freeradius_server.xml
: un modèle d’hôtes.components
: un dossier contenant chaque template de chaque que élément. Ce dossier n’est pas nécessaire si vous souhaiter importer le modèle d’hôte, ce dernier contenant tous les modèles.cacti_data_template_freeradius_acct_status.xml
: un modèle de données cacti pour les statistiques d’accounting.cacti_data_template_freeradius_auth_status.xml
: un modèle de données cacti pour les statistiques d’authentification.cacti_graph_template_freeradius_acct.xml
: un modèle graphique pour le rendu les données d’accounting.cacti_graph_template_freeradius_auth.xml
: un modèle graphique pour le rendu les données d’authentification.
Dépendances
Notez qu’étant donné que freeradius 2.x ne fournit plus d’interface snmp, aucun de ces modèles ne dépend d’un autre template SNMP (ni aucun autre).
En revanche, le script d’extraction fait appel au binaire radclient. Sur des distributions basées sur Debian, vous devriez donc installer le paquet freeradius-utils. Outre ce client radius vous devriez aussi disposer de sed.
Préparation du radius
Depuis freeradius 2.0, les statistics du serveur RADIUS sont disponibles via des requêtes radius spécifiques « status ». Freeradius n’embarque plus d’interface SNMP. Afin de permettre à Cacti d’envoyer des requêtes status il faut paramétrer le serveur de façon adéquat. On peut ainsi utiliser les server virtuels (un peu à la mode apache).
Sous Debian, il existe même un fichier tout prêt /etc/freeradius/sites-available/status qu’il suffit d’éditer et de linker dans /etc/freeradius/sites-enabled/. Dans ce fichier il faut s’assurer que le serveur écoute sur une interface accessible à Cacti, et le définir comme client du serveur.
Au final le fichier devrait ressembler à ceci:
server status {
listen {
type = status
ipaddr = 0.0.0.0
port = 18121
}
client admin {
ipaddr = 2.3.4.5
secret = changeme
require-message-authenticator = no
}
authorize {
ok
Autz-Type Status-Server {
ok
}
}
}
Installation
le script
Le fichier radstatus.sh doit être copié sur le serveur Cacti, dans le répertoire <path_cacti>/scripts
(sur Debian, cacti est installé dans /usr/share/cacti/site
).
Les templates
Afin d’installer les templates, loggez vous dans Cacti en tant qu’admin.
Dans la console d’administration, rendez vous dans le menu « Import Templates », cliquez sur « Parcourir » et sélectionnez le fichier de modèle d’hôtes (cacti_host_template_freeradius_server.xml). Validez l’importation en cliquant sur « Import ».
Si tous ce passe correctement vous devriez avoir une page comme celle présentée ci-dessous:
Configuration
Vous pouvez maintenant créer un nouvel hôte et lui appliquer le modèle « freeradius server ». A partir du menu « Devices », cliquez sur « Add », puis remplisez le formulaire comme montré ci-dessous (notez que pour l’example je n’est pas activé SNMP ou la détection de l’hôte mais rien n’empeche de le faire):
Rendez vous ensuite dans l’hôte nouvellement créé puis cliquez en haut à droite sur « Create Graphs for this Host »
Cochez tous les templates freeradius et cliquez sur « Create ». Remplissez les données du formulaire avec les valeurs « secret » et « port », utilisées dans le serveur virtuel freeradius « status »:
Il ne vous reste plus qu’à être patient en attendant que les graphes apparaissent.
Laisser un commentaire