Tutorial, How-To, HowTo
Le paquet freeradius fourni par debian ne contient pas les modules expérimentaux. Or pour l’utilisation du logiciel phpMyPrepaid, il faut installer le module freeradius rlm_sqlcounter.so pour l’accounting et utiliser l’attribut Radius : Max-All-Session. Ce tutorial va vous montrer comment créer un nouveau paquet .deb freeradius comportant les modules expérimentaux (dont rlm_sqlcounter.so).
Pour installer également les modules rlm_eap_tls.so et rlm_eap_ttls.so, voir mon articlé précédent : Ajouter les modules EAP/TLS et EAP/TTLS à FreeRADIUS sur une Debian testing.
Compilation de rlm_sqlcounter.so
Nous allons recompiler les sources de FreeRADIUS : pour cela, il faut rajouter une entrée deb-src dans votre fichier /etc/apt/sources.list si celle-ci n’existe pas :
deb-src http://http.us.debian.org/debian testing main contrib non-free
Installer les packages nécessaires pour générer le paquet .deb :
# apt-get install devscripts dpkg-dev
# apt-get install fakeroot build-essential
Installer les dépendances pour recompiler freeradius :
# mkdir -p /usr/src/freeradius
# cd /usr/src/freeradius
# apt-get build-dep freeradius
# apt-get install python-dev
# apt-get install libperl-dev
# apt-get install libssl-dev
# apt-get source freeradius
Modifier le fichier debian/rules :
Rajouter dans le bloc .configure, la ligne suivante :
--with-experimental-modules
Modifier le fichier debian/control :
Supprimer la ligne :
Build-Conflicts: libssl-dev
Modifier le changelog du paquet .deb :
# cd /usr/src/freeradius/freeradius-1.0.5
# dch -i
et rajouter des commentaires....
Générer le paquet .deb :
# dpkg-buildpackage -rfakeroot -uc -us
Installer les paquets .deb générés :
Rq : le script d’installation effectue un "freeradius restart", ce qui peut provoquer des erreurs ou des warnings si le serveur freeradius n’est pas lancé au moment de l’installation (cf. 1ère ligne)
# /etc/init.d/freeradius start
# cd ..
# dpkg -i *.deb
Finalisation de l’installation...
Pour marquer le paquet .deb comme "hold" et éviter de le désinstaller lors d’une mise à jour de debian via un apt-get update :
echo "freeradius hold" | dpkg --set-selections
Rq : pour enlever le paquest .deb marqué comme "hold" :
# echo "freeradius install" |dpkg --set-selections
Configuration
Créer le fichier /etc/freeradius/sqlcounter.conf :
sqlcounter noresetcounter {
driver = "rlm_sqlcounter"
counter-name = Max-All-Session-Time
check-name = "Max-All-Session"
sqlmod-inst = sql
key = User-Name
reset = never
query = "SELECT SUM(AcctSessionTime) FROM radacct WHERE UserName='%{%k}'"
}
Rajouter dans le fichier /etc/freeradius/radiusd.conf
[...]
$INCLUDE ${confdir}/sql.conf
$INCLUDE ${confdir}/sqlcounter.conf
[...]
instantiate {
[...]
expr
noresetcounter
[...]
}
authorize {
[...]
sql
noresetcounter
[...]
}
accounting {
detail
[...]
sql
}
session {
sql
}
Documentation
- http://www.frbox.net/viewtopic-26117.html
Commentaires
1. mercredi 10 mai 2006 à 17:33, par julien
2. lundi 19 juin 2006 à 10:15, par julien
3. mercredi 5 juillet 2006 à 23:54, par patrick bury
4. lundi 18 décembre 2006 à 12:42,
5. vendredi 9 mars 2007 à 17:21, par Fritz
6. vendredi 3 août 2007 à 18:44,
7. dimanche 5 août 2007 à 02:39, par Francesco
8. vendredi 17 août 2007 à 03:18, par Francesco
Ajouter un commentaire