La version actuel de FreeRadius sur une Debian Etch est : 1.1.3

Création de l'espace de travail :

mkdir -p /usr/src/deb-src/freeradius

Installation des sources de freeRadius et des outils nécessaires :

apt-get update
apt-get build-dep freeradius
apt-get install libssl-dev fakeroot
apt-get source freeradius

Modifier les sources

Le fichier /usr/src/deb-src/freeradius/freeradius-1.1.3/debian/control

Modifier ces deux lignes :

Build-Depends: debhelper (>= 5), libltdl3-dev, libpam0g-dev, libmysqlclient15-dev | libmysqlclient-dev, libgdbm-dev, libldap2-dev, libsasl2-dev, libiodbc2-dev, libkrb5-dev, snmp, autotools-dev, dpatch (>= 2), libperl-dev, libtool, dpkg-dev (>= 1.13.19), libssl-dev
Build-Conflicts:

Et ajouter ces deux descriptions de paquets :

Package: freeradius-eaptls
Architecture: any
Depends: freeradius (= ${binary:Version}), ${shlibs:Depends}
Description: eap-tls module for FreeRADIUS server
 Debian will not provide a binary version of the rlm_eap_tls.so library. This
 module is required if you want to use EAP/TLS authentication, commonly used
 for WiFi access points
Package: freeradius-eappeap
Architecture: any
Depends: freeradius (= ${binary:Version}), ${shlibs:Depends}
Description: eap-peap module for FreeRADIUS server
 Debian will not provide a binary version of the rlm_eap_peap.so library. This
 module is required if you want to use EAP/PEAP authentication, commonly used
 for WiFi access points

Le fichier /usr/src/deb-src/freeradius/freeradius-1.1.3/debian/rules

Modifier ces deux lignes :

buildssl=--without-rlm_otp --without-rlm_sql_postgresql --without-snmp
modulelist=krb5 ldap sql_mysql sql_iodbc eap_peap eap_tls

Créer le fichier /usr/src/deb-src/freeradius/freeradius-1.1.3/debian/freeradius-eaptls.install

usr/lib/freeradius/rlm_eap_tls*.so

Créer le fichier /usr/src/deb-src/freeradius/freeradius-1.1.3/debian/freeradius-eaptls.postinst

#! /bin/sh

set -e

case "$1" in
 configure)
       if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
         invoke-rc.d freeradius restart
       else
         /etc/init.d/freeradius restart
       fi
       ;;
 abort-upgrade)
       ;;
 abort-remove)
       ;;
 abort-deconfigure)
       ;;
esac

#DEBHELPER#

Créer le fichier /usr/src/deb-src/freeradius/freeradius-1.1.3/debian/freeradius-eappeap.install

usr/lib/freeradius/rlm_eap_peap*.so

Créer le fichier /usr/src/deb-src/freeradius/freeradius-1.1.3/debian/freeradius-eappeap.postinst

#! /bin/sh

set -e

case "$1" in
 configure)
       if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
         invoke-rc.d freeradius reload
       else
         /etc/init.d/freeradius reload
       fi
       ;;
 abort-upgrade)
       ;;
 abort-remove)
       ;;
 abort-deconfigure)
       ;;
esac

#DEBHELPER#

Compiler et créer les nouveaux packages de FreeRADIUS

cd /usr/src/deb-src/freeradius/freeradius-1.1.3/
dpkg-buildpackage -rfakeroot -uc -us

Après quelques minutes (sur un bi PIII 900) nous avons nos packages avec support EAP/TLS et EAP/PEAP dispo. dans /usr/src/deb-src/freeradius/

Télécharger les packages déjà compilés