FreeRadius avec support EAP/TLS, EAP/TTLS, EAP/PEAP sur Linux Debian Etch
Par Yoann le mercredi, 4 avril 2007, 16:15 - L1nuX and c0 - Lien permanent
La licence d'OpenSSL n’étant pas compatible avec la licence GPL de FreeRADIUS, les modules EAP/TLS (rlm_eap_tls.so), EAP/TTLS (rlm_eap_ttls.so) et EAP/PEAP (rlm_eap_peap.so) ne sont pas compilés par défaut dans le package FreeRADIUS sur Debian. Je vais vous expliquer comment créer un nouveau package .deb pour ces modules.
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
Commentaires
Ha ben voila un bon tuto. J'aime beaucoup Debian mais je trouve parfois que leur politique pro-gnu est un peu abusée...
fonctionne avec le fraîchement disponible freeradius 1.1.6
il faut penser aussi à installer le paquet freeradius compilé
Merci. Fort utile et très bien structuré. J'aurais peut-etre réussi à le faire, mais ça aurait été autrement plus sale.
Olá, je suis Edson, je vis au Brésil. Je ne sais pas parler Français, donc j'ai utilisé un traducteur. Malin que tu il puisse me comprendre et si possible il me aide.
Je fais un travail de la faculté. Mon travail est monter un serveur radius avec logiciel ait exempté. Je suis nouveau dans le secteur de logiciel ait exempté. Est mien premier travail.
J'ai choisi l'Ubuntu 7,04 mange système opérationnel. Le Mysql avec base de données. Et le Freeradius comme servant d'authentification radius.
J'ai eu plusieurs problèmes et après beaucoup d'ils recherche ont réussi à faire avec que le Freeradius parlait avec le Mysql.
Mais j'ai perçu que le Freeradius n'était pas habilité à utiliser EAP-TLS, EAP-TTLS, EAP-PEAP.
J'ai cherché encore dans l'internet et ai découvert que par des problèmes de licence le Debian ne distribue pas le support à ces bibliothèques.
Ce a été là alors que j'ai trouvé son site !
Ils ont suivi les procédures décrites par toi et ont réussi à créer les emballages avec succès ! J'ai fait l'installation des mêmes comme tu il a enseigné.
Mais est maintenant apparu autre problème dont je n'ai pas ni idée comment décider, le Freeradius n'initie pas et présente le suivant message…
...
rlm_eap: Loaded and initialized type md5
rlm_eap: Loaded and initialized type leap
gtc: challenge = "Password: "
gtc: auth_type = "PAP"
rlm_eap: Loaded and initialized type gtc
rlm_eap: Failed to link EAP-Type/tls: /usr/lib/freeradius/rlm_eap_tls.so: undefined symbol: cbtls_info
radiusd.conf [10]: eap: Module instantiation failed.
radiusd.conf [1939] Unknown module "eap".
radiusd.conf [1886] Failed to parse authenticate section.
...
Je n'ai pas réussi à trouver aucunes informations qui pouvaient décider ce problème dans l'internet et mon délai pour la livraison du travail finit. Plus maintenant je sais plus ce qui fera.
Donc je demande aide à toi ! J'attends qu'il ait quelque temps pour me aider
Débiteur.
Edson
Bonjour Edson. j'ai exactement le même problème que toi.
Fri May 25 09:31:49 2007 : Error: radiusd.conf[10]: eap: Module instantiation failed.
Fri May 25 09:31:49 2007 : Error: radiusd.conf[1946] Unknown module "eap".
Fri May 25 09:31:49 2007 : Error: radiusd.conf[1892] Failed to parse authenticate section.
as-tu trouvé une solution ?
je ne parle pas portugais, mais un peu l'espagnol et l'anglais. comme tu préfères.
Cécile
Seumiteucheux, Edson Santos Leite,
Si vous avez le message Unknown module "eap", c'est que celui-ci n'est probalement pas installé.
Avez-vous essayé, d'utiliser les packages que je fournie, plutot que ceux du systeme ? (Les packages fournies par debian, ne support pas l'EAP)
Vous trouverez tous les packages nécessaires pour installer FreeRadius ici : www.queret.net/download/h...
merci beaucoup pour ta réponce, Yoann. Sa fait plaisir de voir qu'on est pas seul.
les modules eappeap et eaptls sont bien installés a partir de tes sources et j'ai pourtant toujours ces messages d'erreurs
Tue May 29 17:01:51 2007 : Error: rlm_eap: Failed to link EAP-Type/tls: /usr/lib/freeradius/rlm_eap_tls.so: undefined symbol: cbtls_password
Tue May 29 17:01:51 2007 : Error: radiusd.conf[10]: eap: Module instantiation failed.
Tue May 29 17:01:51 2007 : Error: radiusd.conf[1939] Unknown module "eap".
Tue May 29 17:01:51 2007 : Error: radiusd.conf[1886] Failed to parse authenticate section.
je sais pu quoi faire.
j'ai completement désinstallé et réinstallé avec les packages que tu fournis, puis avec les packages que j'ai fait en suivant le tuto.. j'ai la même erreur.
apparemment on ne peut pas telment toucher aux fichiers .so
...
si t'as une piste, une idée...
merci
Bon jour à tous !
Ils ont finalement réussi à faire l'installation complète de la freeradius. Le Freeradius tournoie et avec les modules que Yoann nous a enseigné à copilar.
J'ai abandonné d'utiliser l'Ubuntu et ai abaissé une version pure du Debian.
J'ai installé le Debian et ai abaissé les sources du Freeradius. J'ai produit les archives .deb et ai installé le Freeadius produit à partir des sources abaissées et dans suivante les modules eaptls, eapttls et eappeap. J'ai recommencé le Freeradius et le même n'a pas présenté les erreurs d'avant.
J'ai fait des essais comme le Freeradius en utilisant la radtest. J'ai consulté un utilisateur qui était cadastré dans une banque de données mysql et ai reçu à message accepté de connexion.
Je vais faire des essais de connexion du serveur avec access point et une machine client aujourd'hui la nuit. Brièvement je posterai les résultats ici et tout le processus d'installation du serveur.
Très obligé Yoann par l'aide !
Accolade à tous et jusqu'à exposé !
Edson
PS : Encore une fois je demande excuse par le Français. J'utilise un traducteur online, le Worldlingo. =)
Hi,
I`m using your version 1.1.3-3 - it`s OK.
Are you able to compile (and complete share) any version for Win Vista users (freeradius version min 1.1.4)?
(Sorry, I don`t speak french, maybe my request is duplicate.)
Milan
j'ai téléchargé les packages déjà compilé qui sont proposés et les ai installé via GDebi package installer. Je n'ai touché aucun fichier de conf par rapport à ça et suit au niveau de la configuration de freeradius le tuto que l'on peut trouver sur christian.caleca.free.fr/...
J'ai toujours:
debian:/usr/local# freeradius -x
Starting - reading configuration files ...
Using deprecated naslist file. Support for this will go away soon.
Module: Loaded CHAP
Module: Instantiated chap (chap)
Module: Loaded eap
rlm_eap: Failed to link EAP-Type/tls: /usr/lib/freeradius/rlm_eap_tls.so: undefined symbol: cbtls_password
radiusd.conf[1]: eap: Module instantiation failed.
radiusd.conf[184] Unknown module "eap".
radiusd.conf[180] Failed to parse authenticate section.
Ais je loupé quelque chose ?
Real nice howto. Even though my french is not that good, I was able to understand the steps to follow.
Thanks!
Hugo (or someone else) : Have you succeded in installing freeradius and configure it for EAP-TLS authentification ? DO you know why i have this message :
rlm_eap: Failed to link EAP-Type/tls: /usr/lib/freeradius/rlm_eap_tls.so: undefined symbol: cbtls_password
radiusd.conf[1]: eap: Module instantiation failed.
radiusd.conf[184] Unknown module "eap".
radiusd.conf[180] Failed to parse authenticate section.
Thanx.
Merci pour le howto, tres bien fait, beau travail.
Juste une ou deux petites remarques :
C'est stupide mais si on ne pense pas a modifier son fichier apt (/etc/apt/sources.list) on ne parvient pas a continuer les etapes suivantes du HowTo, faut juste y penser.
je rajoute ceci pour mon precendent post : s/une ou deux petites remarques/une remarque/
Possibilité de correspondre directement Johan ?
Eventuellement d'avoir des précisions sur tes fichiers de conf ...
Il faut recompiler le serveur entier. Si vous installez seulement le paquet freeradius-eaptls_1.1.3-3_i386.deb vous obtiendrez cette erreur :
rlm_eap: Failed to link EAP-Type/tls: /usr/lib/freeradius/rlm_eap_tls.so: undefined symbol: cbtls_password
eric.
Bonjour,
j'ai suivi ce tuto, et j'ai réussi à mettre en place le serveur ainsi que l'authentification avec peap, mais un jour j'essaye de lancer le serveur avec la commande freeradius -X et il me remet l'erreur cbtls_password alors que je n'ai rien modifié. Quelqu'un serai t il pourquoi l'erreur est réapparue ?
merci
Salut a tous!!!!
Moi j'eesay de mettre en place un serveur freeradius sous ubuntu 8.10 et je recontre le meme probleme. Malgrés avoir quivi le tuto pour crée les modules eap/peap et eap/tls il me dit toujour le même erreur "No such sub-type for default eap type peap"
Je galère deouis deux jours la dessu je ne vois pas comment faire
si qulqu'un a une idée
If you encountered problem with cbtls_password than you probably forgot about new version of libfreeradius library (it was created with other freeradius* debs). I know I did and after installing everything went smooth.