Mise en place d’une sécurité basée sur le 802.1x et un serveur d’authentification

Cours mise en place d’une sécurité basée sur le 802.1x et un serveur d’authentification, tutoriel & guide de travaux pratiques en pdf.

Configuration

Il faut maintenant éditer le fi chier de configuration d’openssl. Ce fichier contient différentes informations comme : le nom de l’entreprise, le pays, l’adresse e-mail, le nom du propriétaire du certificat…
L’Edition via l’éditeur de texte (nous utiliserons gedit) du fichier de config uration openssl.cnf
gedit /usr/local/openssl-certgen/ssl/openssl.cnf
Vers le milieu du fichier se trouve les paramètres à modifier : toutes les lignes qui sont de la forme XXX_default (Comme encadré ci-dessous) :
L’installation d’openssl est terminée.

Générations des certificats

Sur le site http://www.nantes-wireless.org/actu/article.php3?id_article=8, nous pouvons trouver les scripts suivants : xpextensions, CA.root, CA.svr, CA.clt
Ceux-ci nécessaires à la génération des certificats.
Possédant déjà les scripts, il nous reste seulement à les copier dans le chemin approprié :
/usr/local/openssl-certgen/ssl
Attention à ne pas oublier de copier le fichier xpextensions contenant les OID pour la génération des certificats.

Génération du certificat root

Le certificat root lui même autorité de certification sera générer par le fichier CA.root, permettant aussi la signature des autres certificats (client, serveur,…). Le lancement du certificat root se fera par la commande suivante :
[/usr/local/openssl-certgen/ssl] # chmod 700 CA.root
[/usr/local/openssl-certgen/ssl] # ./CA.root
A chaque question appuyée sur la touche entrer. Une fois cette série terminée (questions), la création des fichiers root.pem, root.der, root.p12 et dossier demoCA se fera d’elle-même (dans le chemin: /usr/local/openssl-certgen/ssl). Le fichier root.pem est utilisé par freeradius, et il faudra installer le root.der sur chaque station client.

Génération du certificat serveur

Avant d’exécuter ce script, il faut s’assurer que le fichier serial est présent dans le répertoire demoCA (crée à l’étape précédente). Dans le cas où celui-ci (serial) n’existe pas, il faudra donc le crée, puis placer une valeur hexadécimale dans ce même fichier.
A la différence du certificat root, nous devrons ajouter dans un premier temps un paramètre supplémentaire qui sera le nom du fichier que nous désirons obtenir (nom du serveur). Celui-ci devra être inscrit à la suite de l’exécution du script CA.svr comme suivant :
[/usr/local/openssl-certgen/ssl] # chmod 700 CA.svr
[/usr/local/openssl-certgen/ssl] # ./CA.svr serveur
Dans un second temps, il faudra répondre aux questions comme précédemment (touche entrer), ceci étant dit à la question Common Name (eg, YOUR name) [] : nous devrons répondre en utilisant le paramètre ajouté (comme ci-dessus : serveur).
On se retrouve donc avec les fichiers serveur.pem, serveur.der, serveur.p12, dont le dernier devra être installé sur chaque ordinateur client.

Génération du certificat client

Nous devrons réitérer la même manipulation (certificat serveur) afin d’obtenir le certificat client. Sauf qu’à la question Common Name (eg, YOUR name) [] : il faudra simplement inscrire le nom de l’utilisateur (ici se sera wissame) comme ci-dessous :
[/usr/local/openssl-certgen/ssl] # chmod 700 CA.clt
[/usr/local/openssl-certgen/ssl] # ./CA.clt wissame
On aura donc les 3 fichiers suivants : wissame.pem, wissame.der, wissame.p12 dont le dernier devra être installé sur chaque ordinateur client.
Cependant il est impossible d’avoir 2 certificats avec le même nom d’utilisateur.
Une fois la génération des certificats est terminée, nous sommes passés à l’installation de freeradius.

Installation et configuration de freeradius

Installation

Version utilisé : freeradius-1.0.4 téléchargé sur le site www.freeradius.org
tar zxvf freeradius-1.0.4.tar.gz
cd freeradius-1.0.4

LIRE AUSSI :  Les limites des canaux de communication

Configuration

Pour la configuration et la compilation de freeradius, on utilise le paramètre –sysconfdir=/etc qui placera tous les fichiers de configuration dans /etc/raddb.
./configure –sysconf dir=/etc
Important : Il faut vérifier pe ndant la configuration qu’il n’y a pas d’erreur au niveau d’EAP-TLS.
Figure III.6 : Configuration sans erreurs au niveau d’EAP-TLS On peut passer à la compilatio n et l’installation de freeradius :
make
make install
Une fois l’installation terminée, un message comme ci-dessous s’affichera.
Figu re III.7 : Fin d’installation de freeradius
Maintenant que freeradius est bien installé, il nous faut copier fans un première temps les certificats serveur.pem, root.pem dans le répertoire /etc/raddb/certs en utilisant la commande
Dans un second temps, nous allons générer deux fichiers aléatoires : dh et random, qui vont nous permettre de mieux sécuriser notre serveur radius.
[/etc/raddb/cers]# openssl dhparam –check –text -5 512 –out dh
Enfin créez et compiler ce court programme en C pour générer un fichier comportant des caractères aléatoires.
[/etc/raddb/certs]# touch random.c
[/etc/raddb/certs]# gedit random.c
Copiez ces quelques lignes de C dans le fichier random.c :
#include <stdio.h>
#include <openssl/rand.h>
// you will need to compile it with openssl lib
// $ gcc –lcrypto
main void {
unsigned char buf[100] ;
if ( !RAND_bytes[buf, 100]) {
// the usual md5(time+pid)
}
Printf(« Random : %s\n », buf) ;
}
Puis exécutez la commande suivante :
[/etc/raddb/certs]# gcc random.c –o random -lcrypto
A noter que cette commande diffère selon la version de linux.
Tester avec la commande :
[/etc/raddb/certs]# ./random
Le test donne quelque chose qui ressemble à ça :

Fichiers de configuration de freeradius

Les fichiers de configuration se trouvent dans /etc/raddb (comme nous l’avons précisé plus tôt via le –sysconfdir), ces fichiers sont très bien commentés et constituent la documentation de freeradius. La section suivante présente les fichiers de configuration principaux a modifié:
 eap.conf : pour la configuration des méthodes EAP d’authentification. Le contenu de ce fichier était au départ inclus dans la partie module du fichier « radiusd.conf » mais les développeurs ont préféré le séparer pour des raisons de lisibilité car il devenait de plus en plus volumineux du fait du nombre de méthodes d’authentification EAP différentes. En fonction des méthodes EAP que le serveur devra supporter dans son environnement de production il y aura éventuellement certains paramètres à configurer. Par exemple dans le cas d’une authentification via EAP-TLS, il faudra indiquer le répertoire contenant le certificat du serveur (qu’il enverra au supplicant) et la clé privée avec le mot de passe associé, celui contenant le certificat de l’autorité (qui permettra de vérifier le certificat fourni par le supplicant), indiquer si le serveur doit vérifier un fichier contenant les certificats révoqués ou encore s’il faut vérifier que le nom de l’utilisateur correspond au nom du propriétaire du certificat fourni.
 radiusd.conf : pour la configuration globale du serveur. Ce fichier est découpé en deux grandes parties, d’abord les paramètres propres au démon (interfaces d’écoute, port, etc.), puis une partie définition des modules (définition et configuration des modules d’authentification disponibles hormis ceux du type EAP qui sont traités séparément, des modules de journalisation, de relayage des requêtes, etc.).

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *