Outils pour utilisateurs

Outils du site


Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
310lansecure:30_radius:10_freeradius1 [le 21/03/2009 à 15:34] prof310lansecure:30_radius:10_freeradius1 [le 30/06/2018 à 15:55] (Version actuelle) prof
Ligne 1: Ligne 1:
-{{keywords>radius freeradius eap vlan}} 
 ====== FreeRADIUS  ====== ====== FreeRADIUS  ======
 (2.0.4 sur Debian Lenny). (2.0.4 sur Debian Lenny).
Ligne 20: Ligne 19:
 FreeRadius peut fonctionner en s'appuyant uniquement sur des fichiers texte. Ce n'est pas forcément ce qu'il y a de plus simple à gérer, si l'on doit manipuler un grand nombre de clients. Ici, nous utiliserons MySQL pour stocker les adresses MAC des clients. Outre la souplesse qu'apportent des outils comme phpmyadmin pour gérer la liste des clients, cette solution offre l'avantage de ne pas nécessiter de redémarrage de FreeRADIUS à chaque modification de la base. FreeRadius peut fonctionner en s'appuyant uniquement sur des fichiers texte. Ce n'est pas forcément ce qu'il y a de plus simple à gérer, si l'on doit manipuler un grand nombre de clients. Ici, nous utiliserons MySQL pour stocker les adresses MAC des clients. Outre la souplesse qu'apportent des outils comme phpmyadmin pour gérer la liste des clients, cette solution offre l'avantage de ne pas nécessiter de redémarrage de FreeRADIUS à chaque modification de la base.
 ===== Installation de Freeradius ===== ===== Installation de Freeradius =====
-Pour des raisons de compatibilité de licences, FreeRadius est compilé par défaut sur Debian sans le support de TLS. TLS nous servira pour le WPA2. Nous allons donc reconstruire un paquet binaire à partir du paquet source, en tenant compte de cet usage.+Pour des raisons de compatibilité de licences, FreeRadius est compilé par défaut sur Debian (Lenny) sans le support de TLS. TLS nous servira pour le WPA2. Nous allons donc reconstruire un paquet binaire à partir du paquet source, en tenant compte de cet usage. 
 + 
 +**Notons que ceci n'a plus lieu d'être sur Squeeze, ce qui simplifiera notre tâche, l'installation du binaire standard suffira à nos besoins.** 
 ==== Préparatifs ==== ==== Préparatifs ====
  
Ligne 354: Ligne 356:
 Et nous assurer qu'elle est bien présente sur notre système : Et nous assurer qu'elle est bien présente sur notre système :
   aptitude install libssl-dev   aptitude install libssl-dev
-==== Se protéger des mises à jour de ''aptitude'' ==== 
-Si nous compilons maintenant le paquet binaire, nous obtiendrons des paquets ayant le même nom (version comprise), que les binaires de la distribution, et les mises à jour futures ne manqueront pas de nous remplacer notre construction à la première occasion. 
  
-Une solution élégante consiste à obtenir des paquets binaires, avec un nom différent. Pour ce faire, nous pouvons agir dans le fichier ''~/build_freeradius/freeradius-2.0.4+dfsg/debian/changelog'' en modifiant la première ligne en tête du fichier. Par exemple :  
-<html><pre class="code"> 
-freeradius (2.0.4+dfsg-6<span class="hly">ssl</span>) unstable; urgency=low 
- 
-  * Fix unsafe use of tempfile (closes: #496389) 
- 
- -- Stephen Gran <sgran@debian.org>  Mon, 25 Aug 2008 14:18:48 +0100 
- 
-freeradius (2.0.4+dfsg-5) unstable; urgency=low 
- 
-  [ Mark Hymers ] 
-  * Cherry pick commit from 2.0.5 which fixes port binding issues. 
-    Closes: #489773. 
-... 
-</pre></html> 
  
 ==== construction des binaires ==== ==== construction des binaires ====
Ligne 380: Ligne 365:
 <html><pre class="code"> <html><pre class="code">
 ls -l *.deb ls -l *.deb
-<span class="hly">-rw-r--r-- 1 root root 513228 fév 22 16:20 freeradius_2.0.4+dfsg-6ssl_i386.deb +<span class="hly">-rw-r--r-- 1 root root 513228 fév 22 16:20 freeradius_2.0.4+dfsg-6_i386.deb 
--rw-r--r-- 1 root root 205030 fév 22 16:21 freeradius-common_2.0.4+dfsg-6ssl_all.deb</span> +-rw-r--r-- 1 root root 205030 fév 22 16:21 freeradius-common_2.0.4+dfsg-6_all.deb</span> 
--rw-r--r-- 1 root root 949458 fév 22 16:20 freeradius-dbg_2.0.4+dfsg-6ssl_i386.deb +-rw-r--r-- 1 root root 949458 fév 22 16:20 freeradius-dbg_2.0.4+dfsg-6_i386.deb 
--rw-r--r-- 1 root root 132748 fév 22 16:21 freeradius-dialupadmin_2.0.4+dfsg-6ssl_all.deb +-rw-r--r-- 1 root root 132748 fév 22 16:21 freeradius-dialupadmin_2.0.4+dfsg-6_all.deb 
--rw-r--r-- 1 root root  17184 fév 22 16:20 freeradius-iodbc_2.0.4+dfsg-6ssl_i386.deb +-rw-r--r-- 1 root root  17184 fév 22 16:20 freeradius-iodbc_2.0.4+dfsg-6_i386.deb 
--rw-r--r-- 1 root root  18082 fév 22 16:20 freeradius-krb5_2.0.4+dfsg-6ssl_i386.deb +-rw-r--r-- 1 root root  18082 fév 22 16:20 freeradius-krb5_2.0.4+dfsg-6_i386.deb 
--rw-r--r-- 1 root root  34426 fév 22 16:20 freeradius-ldap_2.0.4+dfsg-6ssl_i386.deb +-rw-r--r-- 1 root root  34426 fév 22 16:20 freeradius-ldap_2.0.4+dfsg-6_i386.deb 
-<span class="hly">-rw-r--r-- 1 root root  24874 fév 22 16:20 freeradius-mysql_2.0.4+dfsg-6ssl_i386.deb</span> +<span class="hly">-rw-r--r-- 1 root root  24874 fév 22 16:20 freeradius-mysql_2.0.4+dfsg-6_i386.deb</span> 
--rw-r--r-- 1 root root  35364 fév 22 16:20 freeradius-postgresql_2.0.4+dfsg-6ssl_i386.deb +-rw-r--r-- 1 root root  35364 fév 22 16:20 freeradius-postgresql_2.0.4+dfsg-6_i386.deb 
-<span class="hly">-rw-r--r-- 1 root root  71282 fév 22 16:20 freeradius-utils_2.0.4+dfsg-6ssl_i386.deb +<span class="hly">-rw-r--r-- 1 root root  71282 fév 22 16:20 freeradius-utils_2.0.4+dfsg-6_i386.deb 
--rw-r--r-- 1 root root  85212 fév 22 16:20 libfreeradius2_2.0.4+dfsg-6ssl_i386.deb</span> +-rw-r--r-- 1 root root  85212 fév 22 16:20 libfreeradius2_2.0.4+dfsg-6_i386.deb</span> 
--rw-r--r-- 1 root root 103672 fév 22 16:20 libfreeradius-dev_2.0.4+dfsg-6ssl_i386.deb+-rw-r--r-- 1 root root 103672 fév 22 16:20 libfreeradius-dev_2.0.4+dfsg-6_i386.deb
 </pre></html> </pre></html>
  
Ligne 397: Ligne 382:
 La commande ''dpkg'' : La commande ''dpkg'' :
 <code> <code>
-dpkg -i libfreeradius2_2.0.4+dfsg-6ssl_i386.deb freeradius-common_2.0.4+dfsg-6ssl_all.deb freeradius_2.0.4+dfsg-6ssl_i386.deb freeradius-mysql_2.0.4+dfsg-6ssl_i386.deb freeradius-utils_2.0.4+dfsg-6ssl_i386.deb+dpkg -i libfreeradius2_2.0.4+dfsg-6_i386.deb freeradius-common_2.0.4+dfsg-6_all.deb freeradius_2.0.4+dfsg-6_i386.deb freeradius-mysql_2.0.4+dfsg-6_i386.deb freeradius-utils_2.0.4+dfsg-6_i386.deb
 </code> </code>
 +
 +==== Se protéger des mises à jour de « aptitude » ====
 +Si nous compilons maintenant le paquet binaire, nous obtiendrons des paquets ayant le même nom (version comprise), que les binaires de la distribution, et les mises à jour futures ne manqueront pas de nous remplacer notre construction à la première occasion.
 +
 +Une solution consiste à utiliser l'outil ''dpkg'' pour gérer la sélection des paquets installés. Faisons d'abord un :
 +  :~# dpkg --get-selections > packages
 +De manière à obtenir le fichier ''packages'' qu'il nous faudra éditer. Si nous recherchons les paquets relatifs à Freeradius qui sont installés (au cas où nous aurions des trous dans la mémoire) :
 +<code>
 +aptitude search freeradius | grep ^i
 +i   freeradius                      - a high-performance and highly configurable
 +i   freeradius-common               - FreeRadius common files                   
 +i   freeradius-mysql                - MySQL module for FreeRADIUS server        
 +i   freeradius-utils                - FreeRadius client utilities               
 +i   libfreeradius2                  - FreeRADIUS shared library
 +</code>
 +
 +Nous retrouvons dans le fichier ''packages'' que nous avons créé, les mêmes paquets :
 +
 +<code>
 +cat packages | grep radius
 +freeradius install
 +freeradius-common install
 +freeradius-mysql install
 +freeradius-utils install
 +libfreeradius2 install
 +</code>
 +
 +Nous devons éditer ce fichier en remplaçant l'information ''install'' par ''hold'', qui indiquera à ''apt'' que ces paquets ne doivent pas être touchés lors des mises à jour. Après édition, nous devons avoir :
 +<code>
 +cat packages | grep radius
 +freeradius hold
 +freeradius-common hold
 +freeradius-mysql hold
 +freeradius-utils hold
 +libfreeradius2 hold
 +</code>
 +
 +Il nous reste à entrer ces nouvelles informations dans la base de donnée des paquets installés :
 +
 +  :~# dpkg --set-selections < packages
 +
 +Si tout s'est bien passé, la vérification suivante doit donner :
 +
 +<code>
 + aptitude search freeradius | grep ^i
 +ih  freeradius                      - a high-performance and highly configurable
 +ih  freeradius-common               - FreeRadius common files                   
 +ih  freeradius-mysql                - MySQL module for FreeRADIUS server        
 +ih  freeradius-utils                - FreeRadius client utilities               
 +ih  libfreeradius2                  - FreeRADIUS shared library
 +</code>
 +
 +Le ''h'' qui suit le ''i'' indique bien que ces paquets sont désormais protégés des mises à jour.
  
 ===== Configuration ===== ===== Configuration =====
Ligne 505: Ligne 543:
  
 Troisième chose : Troisième chose :
-  cat radiusd.conf | egrep -v -e '^[[:blank:]]*#|^$' > radiusd.conf+  cat radiusd.conf.dist | egrep -v -e '^[[:blank:]]*#|^$' > radiusd.conf
 De manière à ne pas se bousiller les yeux à chercher les lignes « utiles » dans la forêt de commentaires. De manière à ne pas se bousiller les yeux à chercher les lignes « utiles » dans la forêt de commentaires.
  
Ligne 755: Ligne 793:
 Il y a dans ce fichier plein de choses que nous pourrions enlever car elles ne nous servent à rien (dans notre cas...). Les lignes surlignées montrent ce qu'il est nécessaire de modifier pour nos besoins. Il y a dans ce fichier plein de choses que nous pourrions enlever car elles ne nous servent à rien (dans notre cas...). Les lignes surlignées montrent ce qu'il est nécessaire de modifier pour nos besoins.
  
-=== default ===+=== sites-avalable/default ===
 Assez peu de choses dans ce fichier, compte tenu de la simplicité de nos besoins : Assez peu de choses dans ce fichier, compte tenu de la simplicité de nos besoins :
 <html><pre class="code"> <html><pre class="code">
Ligne 826: Ligne 864:
  
 === sql.conf === === sql.conf ===
-Nous avons une base MySQL ''radius'' et un utilisateur du même nom, capable de lire dans cette base (SELECT). +Nous avons une base MySQL ''radius'' et un utilisateur du même nom, capable de lire dans cette base :  
 +<code>
 sql { sql {
  database = "mysql"  database = "mysql"
Ligne 851: Ligne 890:
  readclients = yes  readclients = yes
 } }
 +</code>
 Le fichier inclus ''dialup.conf'' pourrait être copieusement dégraissé dans notre cas, mais nous n'y toucherons pas. Le fichier inclus ''dialup.conf'' pourrait être copieusement dégraissé dans notre cas, mais nous n'y toucherons pas.
  
FreeRADIUS: Dernière modification le: 21/03/2009 à 15:34 par prof