http://www.ed-diamond.com

Documents pareils
Authentification sur réseau sans-fil Utilisation d un serveur radius Expérience du CENBG

Le protocole RADIUS Remote Authentication Dial-In User Service

Sécurité des réseaux sans fil

titre : CENTOS_CUPS_install&config Système : CentOs 5.7 Technologie : Cups Auteur : Charles-Alban BENEZECH

1. Présentation de WPA et 802.1X

CRI-IUT Serveur d'authentification pour la sécurité des réseaux Wi-Fi

Internet. Licence Pro R&S. TD 5 - Wifi / Radius. 1 Sur le réseau de distribution (DS) 1.1 Configuration des routeurs PC6

NOTE: Pour une meilleure sécurisation, nous vous recommandons de faire l installation des outils web à l intérieur d un serveur virtuel.

HAUTE DISPONIBILITÉ DE MACHINE VIRTUELLE AVEC HYPER-V 2012 R2 PARTIE CONFIGURATION OPENVPN SUR PFSENSE

Le protocole RADIUS. Objectifs. Ethernet Switch RADIUS RADIUS

WIFI sécurisé en entreprise (sur un Active Directory 2008)

Réaliser un inventaire Documentation utilisateur

Architectures PKI. Sébastien VARRETTE

Les Protocoles de sécurité dans les réseaux WiFi. Ihsane MOUTAIB & Lamia ELOFIR FM05

Introduction au Wi-Fi sécurisé

Installation UpdatEngine serveur (CentOs apache2 / MySQL)

Accès aux ressources informatiques de l ENSEEIHT à distance

! "# Exposé de «Nouvelles Technologies Réseaux»

Network WPA. Projecteur portable NEC NP905/NP901W Guide de configuration. Security WPA. Méthode d authentification supportée

Windows Server 2008 Sécurité ADMINISTRATION ET CONFIGURATION DE LA SECURITE OLIVIER D.

Méthode 1 : Mise en place IPSEC

M2-RADIS Rezo TP13 : VPN

AUTHENTIFICATION x FREERADIUS. Objectifs

TD3 - Radius et IEEE 802.1x

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

Tunnels et VPN. 22/01/2009 Formation Permanente Paris6 86

Cryptologie. Algorithmes à clé publique. Jean-Marc Robert. Génie logiciel et des TI

VPN TLS avec OpenVPN. Matthieu Herrb. 14 Mars 2005

TP HTTP. Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A

Sécurité des réseaux wi fi

IV. La sécurité du sans-fil

Mettre en place un accès sécurisé à travers Internet

Installation du point d'accès Wi-Fi au réseau

Les Réseaux Privés Virtuels (VPN) Définition d'un VPN

WiFI Sécurité et nouvelles normes

Un peu de vocabulaire

(1) Network Camera

INDUSTRIALISATION «802.1X» CONFIG : 802.1X PEAP MSCHAPV2

Pare-feu VPN sans fil N Cisco RV120W

Guide Numériser vers FTP

Le rôle Serveur NPS et Protection d accès réseau

Utilisation des certificats X.509v3

Installation d'un serveur RADIUS

>#? " $: $A; 4% 6 $7 -/8 $+.,.,$9:$ ;,<=</.2,0+5;,/ ! " # $%!& *$$ $%!& *! # +$

Les clés d un réseau privé virtuel (VPN) fonctionnel

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant.

Réseaux AirPort Apple

freeradius Serveur RADIUS libre, performant et modulaire mais pas vraiment simple Aurélien Geron, Wifirst, 7 janvier 2011

Guide Utilisateur pour accès au réseau WiFi sécurisé 802.1X

Le protocole SSH (Secure Shell)

Guide de configuration pour accès au réseau Wifi sécurisé 802.1X

Guide d installation de MySQL

Devoir Surveillé de Sécurité des Réseaux

II- Préparation du serveur et installation d OpenVpn :

SSH, le shell sécurisé

Présentation et portée du cours : CCNA Exploration v4.0

CA SIC Directives de certification Certificate Practice Statement (CPS) du SIC Customer ID CA 1024 Level 2

L3 informatique Réseaux : Configuration d une interface réseau

Cours 14. Crypto. 2004, Marc-André Léger

La sécurité dans les grilles

Protocoles utilisant des mécanismes d'authentification: TACACS+, RADIUS et Kerberos

FACULTE DES SCIENCES ET TECHNIQUES FES SAIS MASTER SYSTEMES INTELLIGENTS ET RESEAUX MST SIR 2014 TP WIFI. Encadré par PR.

Contrôleur de communications réseau. Guide de configuration rapide DN

Etape 1 : Connexion de l antenne WiFi et mise en route

Table des matières. 1. Installation de VMware ESXI Pré-requis Installation... 3

Modèle de sécurité de la Grille. Farida Fassi Master de Physique Informatique Rabat, Maroc May 2011

Les certfcats. Installation de openssl

Présentation et portée du cours : CCNA Exploration v4.0

TUTORIEL RADIUS. I. Qu est-ce que RADIUS? II. Création d un groupe et d utilisateur

DHCP et NAT. Cyril Rabat Master 2 ASR - Info Architecture des réseaux d entreprise

Guide d installation de FreeRadius avec EAP-TLS + MySQL

Sécurisation du réseau

Aristote Groupe PIN. Utilisations pratiques de la cryptographie. Frédéric Pailler (CNES) 13 janvier 2009

Sommaire Introduction Les bases de la cryptographie Introduction aux concepts d infrastructure à clés publiques Conclusions Références

et dépannage de PC Configuration Sophie Lange Guide de formation avec exercices pratiques Préparation à la certification A+

INSTALLATION DE WINDOWS 2000 SERVER POUR BCDI3. par. G.Haberer, A.Peuch, P.Saadé

La sécurité dans un réseau Wi-Fi

Contenu. Cocher : Network Policy and Access Services > Next > Next. Cocher : Network Policy Server > Next > Install

Installation de la plate-forme Liberacces 2.0 «Intégrale» avec LiberInstall

TP 6 : Wifi Sécurité

Certificats (électroniques) : Pourquoi? Comment? CA CNRS-Test et CNRS

EJBCA PKI Open Source

SAGEM Wi-Fi 11g USB ADAPTER Guide de mise en route rapide

Configuration du driver SIP dans ALERT. V2

Installation d'un serveur FTP géré par une base de données MySQL

Présenté par : Ould Mohamed Lamine Ousmane Diouf

Pervasive Network (Thus0 / Petrus homepage)

Certificats X509 & Infrastructure de Gestion de Clés. Claude Gross CNRS/UREC

Les différentes méthodes pour se connecter

Installation de GFI MailEssentials

Serveur de partage de documents. Étude et proposition d'une solution afin de mettre en place un serveur de partage de documents.

Réseaux. Moyens de sécurisation. Plan. Evolutions topologiques des réseaux locaux

Documentation technique OpenVPN

Sommaire: Contenu de l emballage : 1x

Bravo! Vous venez d acquérir un routeur large bande à 4 ports Conceptronic C100BRS4H.

Procédures d accès au nouveau réseau sans fil à l aide d un portable (Windows XP) géré par la DGTIC

Transcription:

Ceci est un extrait électronique d'une publication de Diamond Editions : http://www.ed-diamond.com Ce fichier ne peut être distribué que sur le CDROM offert accompagnant le numéro 100 de GNU/Linux Magazine France. La reproduction totale ou partielle des articles publiés dans Linux Magazine France et présents sur ce CDROM est interdite sans accord écrit de la société Diamond Editions. Retrouvez sur le site tous les anciens numéros en vente par correspondance ainsi que les tarifs d'abonnement. Pour vous tenir au courant de l'actualité du magazine, visitez : http://www.gnulinuxmag.com Ainsi que : http://www.linux-pratique.com et http://www.miscmag.com

sysadmin hotspots Techniques de déploiement de hotspots wifi sécurisés Cyril Nocton EN DEUX MOTS Cet article présente les aspects théoriques et pratiques du déploiement d un hotspot wifi sécurisé combinant un serveur d authentification FreeRADIUS et une ou plusieurs bornes d accès compatibles WPA2-Entreprise. infrastructure présentée requiert un serveur Un*x disposant d un environnement de développement GNU C, de la suite de sécurité OpenSSL, d une base de données MySQL et des bibliothèques C associées. Il sera connecté à une borne d accès wifi certifiée WPA2-Entreprise. (Extensible Authentification Protocol over LAN) règle ces échanges. Le port sous contrôle reste fermé dans cette phase, prévenant tout accès direct aux ressources réseau partagées. 2. Le point d accès relaie les messages EAP vers un serveur d authentification local ou déporté au sein d un réseau métropolitain. 3. Le serveur authentifie le terminal. Une autorisation est retournée au point d accès qui relaiera désormais l ensemble du trafic du terminal. Le port sous contrôle associé à la connexion passe de l état fermé à ouvert. Les clients sont appelés des «supplicants», le relais un «authentificateur». Ce dernier actionne les ports virtuels à l instar d une gâchette. Norme IEEE 802.1X La norme IEEE 802.1X s appuie sur l architecture physique des réseaux locaux IEEE 802 pour fournir un mécanisme générique d authentification et d autorisation d accès à des clients connectés en point à point. Le schéma suivant illustre ce processus. Fig. 2 : Ports virtuels 802.1X Fig. 1 : Processus d authentification 802.1X Nous identifions un point d accès sans fil, un terminal nomade et un serveur d authentification. 1. Le point d accès gère chaque demande de connexion par le biais de deux ports virtuels : un port ouvert restreint au trafic d authentification et un port sous contrôle initialement fermé. Le terminal adresse une requête d attachement au point d accès qui réclame son identité en retour. Le protocole EAP over LAN EAP (Extensible Authentification Protocol) est le protocole en charge de l authentification des supplicants [RFC 2284]. Il définit l infrastructure générique nécessaire à cette authentification. L IANA maintient la liste des schémas d authentification supportés par EAP. Énumérons les plus répandus. EAP-MD5 : Authentification par mot de passe (peu sûr) ; EAP-MS-CHAPv2 : Authentification par mot de passe (peu sûr) ; EAP-TLS : Authentification réciproque par certificats (très sûr) ; EAP-TTLS : Établissement d un tunnel TLS chiffré (sûr) ; Protected EAP : Variante d EAP-TTLS (sûr) ; PEAP-MS-CHAPv2 : EAP-MS-CHAPv2 dans un tunnel TLS (sûr). On passe par abstractions successives du protocole de transport au protocole d authentification. 38 GNU Linux Magazine France

Fig. 3 : Empilement des protocoles 802 Le protocole EAP-TLS garantit une sécurité optimale des communications en imposant l authentification réciproque du serveur et des supplicants par le biais de certificats. Nous lui préférons le protocole PEAP-MS-CHAPv2 associant un tunnel TLS chiffré, l authentification du serveur par le biais d un certificat et des supplicants par le biais de mots de passe hachés. PEAP-MS-CHAPv2 offre un bon compromis entre sécurité et facilité d administration. L authentification demeure réciproque. Le tunnel chiffré garantit la confidentialité des données d authentification des supplicants et des clés de chiffrement. Les utilisateurs disposent d un accès par login et mot de passe familier. Norme IEEE 802.11i Plusieurs étapes s enchaînent, de la requête initiale d attachement au réseau à l établissement d une session chiffrée. La norme de sécurité IEEE 802.11i couplée à la norme d authentification IEEE 802.1X apporte une sécurité poussée aux réseaux wifi. WPA2 - Entreprise (Wifi Protected Access 2 Entreprise) est une de ses composantes. Elle règle les failles de la norme WEP (Wired Equivalence Privacy). La clé secrète de chiffrement WEP partagée entre client et point d accès peut en effet être reconstituée à l aide d outils largement diffusés, ce par simple analyse du trafic échangé. WPA2 - Entreprise introduit une hiérarchie de clés, un chiffrement variable et la signature des messages échangés. Infrastructure PKI Les techniques de chiffrement modernes reposent sur des clés numériques. Chiffrement symétrique à clé secrète : L émetteur utilise une clé confidentielle pour chiffrer le message, le destinataire utilise cette même clé pour reconstituer le message original. Les algorithmes DES (Data Encryption Standard) et AES (Advanced Encryption Standard) appartiennent à cette catégorie. Chiffrement asymétrique à clés publiques : Émetteur et destinataire disposent d une bi-clé formée d une clé publique et d une clé privée. L émetteur chiffre le message avec la clé publique du destinataire. Le destinataire reconstitue le message original avec sa clé privée. L algorithme RSA (Rivest, Shamir et Adleman) appartient à cette catégorie. Il part du postulat qu il n existe pas d algorithme général de décomposition en produit de facteurs premiers de complexité polynomiale. Fig. 4 : Etablissement d une connexion PEAP 1. Le supplicant décline son identité administrative. 2. L authentificateur relaie une requête de connexion. 3. Le serveur transmet son certificat. Négociation d un tunnel chiffré. 4. Le supplicant s authentifie. Négociation d une clé MK dérivée en PMK. 5. La clé PMK est communiquée à l authentificateur. 6. Supplicant et authentificateur dérivent des clés PTK et GTK. 7. La session chiffrée débute. Fig. 5 : Chiffrement asymétrique d un document La signature d un message permet au destinataire d authentifier son émetteur et de vérifier qu il n a pas été altéré lors de son transfert. Elle repose sur une fonction de hachage qui calcule une empreinte du message. Numéro 84 / Juin 2006 39

sysadmin hotspots L algorithme SHA-256 (Secure Hash Algorithm) produit par exemple des empreintes de 256 bits. Une fonction de hachage a deux propriétés majeures. 1. Il est difficile de générer un document de valeur de hachage donnée. La fonction est dite «à trappe». Un faussaire ne saurait modifier un message en un temps raisonnable tout en préservant sa valeur de hachage. 2. Il est difficile de reconstituer un document à partir de sa valeur de hachage. Le chiffrement de l empreinte prévient la modification du message, puis le calcul d une nouvelle empreinte par un intermédiaire. L algorithme DSA (Digital Signature Algorithm) appartient à cette catégorie. Fig. 6 : Signature d un document Pour résumer, les techniques précédentes garantissent quatre points clés : confidentialité des informations échangées ; authentification de l émetteur ; non-répudiation des données par l émetteur ; détection des données corrompues. La cryptographie asymétrique réclame donc l échange de clés. Un certificat regroupe une clé publique et des informations sur son titulaire certifiées par une autorité reconnue. La société Verisign fait ainsi commerce de cette activité. PKI (Public Key Infrastructure) désigne l infrastructure en charge de la création, de la certification et de la révocation de clés publiques [les PKI]. Un certificat X509 contient les champs suivants : version X509 ; numéro de série du certificat ; algorithme de signature du certificat ; nom de l autorité de certification ; période de validité du certificat ; nom du propriétaire de la clé publique ; clé et algorithme de chiffrement associé ; extensions X509 ; signature de l autorité de certification ; certificat. Voici par exemple le certificat fictif d une association Air Océane sise au Havre : Certificate: Data: Version: 3 (0x2) Serial Number: 1 (0x1) Signature Algorithm: md5withrsaencryption Issuer: C=fr, ST=Haute-Normandie, L=Le Havre, O=Air Oceane, OU=PKI, CN=radius.airoceane.org/emailAddress=pki@airoceane.org Validity: Not Before: May 5 15:54:39 2006 GMT Not After: May 5 15:54:39 2007 GMT Subject: C=fr, ST=Haute-Normandie, L=Le Havre, O=Air Oceane, OU=PKI, CN=radius.airoceane.org/emailAddress=pki@airoceane.org Subject Public Key Info: Public Key Algorithm: rsaencryption RSA Public Key: (1024 bit) Modulus (1024 bit): 00:e3:20:2b:e8:66:37:55:ca:c1:f8:09:6c:3b:24: Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA: FALSE Netscape Comment: OpenSSL Generated Certificate X509v3 Subject Key Identifier: A9:94:1A:F3:2E:D5:AC:60:45:2E:91:FC:1A:56:C6:49:F5:15:EE:1E X509v3 Authority Key Identifier: keyid:28:ec:65:69:c1:81:30:cc:b0:26:92:51:af:e1:da:47:0c:cf:a1:51 DirName: /C=fr/ST=Haute-Normandie/L=Le Havre/O=Air Oceane/ OU=PKI/CN=radius.airoceane.org/emailAddress=pki@airoceane.org serial: 84:ED:3B:2F:3B:75:13:B1 Signature Algorithm: md5withrsaencryption 3a:7e:a8:07:f2:97:21:90:7f:8f:18:53:be:5c:a0:00:a4:6a: -----BEGIN CERTIFICATE----- MIID6DCCA1GgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBnjELMAkGA1UEBhMCZnIx -----END CERTIFICATE----- Un certificat d autorité ou certificat racine est autosigné. Installation de FreeRADIUS RADIUS (Remote Authentication Dial In User Service) est un service Internet de classe AAA (Authentication Authorization Accounting). Il authentifie, autorise et archive les connexions d utilisateurs [RFC 2865]. Des serveurs RADIUS sont par exemple présents dans les infrastructures réseau des FAI. FreeRADIUS est une implémentation fonctionnelle de RADIUS distribuée sous licence GNU GPL. Téléchargez les sources du serveur [FreeRADIUS]. 40 GNU Linux Magazine France

Techniques de déploiement de hotspots WiFI sécurisés Compilez, puis installez le programme (version 1.1.1 dans notre exemple). $ tar -xzf freeradius-1.1.1.tar.gz $ cd freeradius-1.1.1 $ export SRCDIR=`pwd` $./configure --disable-shared \ --sysconfdir=/etc --localstatedir=/var $ make $ su # make install Les fichiers sont ventilés comme suit. Programmes : /usr/local/bin et /usr/local/sbin Pages de manuel : /usr/local/man Fichiers de configuration : /etc/raddb Certificats : /etc/raddb/certs Journaux : /var/log/ et /var/log/radacct Assurez-vous que votre shell a accès aux exécutables de FreeRADIUS. Dans l hypothèse d un environnement de travail Bash, tapez : Ajoutez la ligne suivante au profil commun /etc/profile si les chemins d accès /usr/local/bin ou /usr/local/sbin sont absents. Configuration de FreeRADIUS Les fichiers de configuration de FreeRADIUS sont situés dans le répertoire /etc/raddb, conformément aux directives saisies lors de la compilation du programme. Le fichier radiusd. conf rassemble les paramètres généraux du serveur (man 5 radiusd.conf). Modifiez-le comme suit : notes L option --disable-shared force la compilation de bibliothèques statiques. Elle est requise sous Mac OS X. # echo $PATH /bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin export PATH=»${PATH:/usr/local/bin:/usr/local/sbin» # Paramètres globaux # Délai de traitement des requêtes max_request_time = 60 # Evite les gels liés aux résolutions DNS hostname_lookup = no # Log des requêtes de connexion log_auth = yes # Log des mots de passe erronés log_auth_badpass = yes # Pas de log des mots de passe valides log_auth_goodpass = no # Ce serveur n est pas un relais proxy_requests = no # Pas de supervision SNMP snmp = no # Pool de threads thread pool { start_servers = 4 # Nb de threads au démarrage max_servers = 10 # Nb max de threads min_spare_servers = 2 # Nb min de threads en réserve max_spare_servers = 4 # Nb max de threads en réserve max_requests_per_server = 0 # Mode persistent # Modules modules { # Protocole MS-CHAP mschap { # Tag MS-CHAP authtype = MS-CHAP # Chiffrement MPPE use_mppe = yes # Chiffrement requis require_encryption = yes # Clé de 128 bits require_strong = yes # Correction bogue NT with_ntdomain_hack = yes # Base d utilisateurs type Livingstone files { # Fichier users usersfile = ${confdir/users # Journal des connexions detail { # Chemin detailfile = ${radacctdir/%{client-ip-address/detail-%y%m%d # Droits detailperm = 0600 # Configuration pilote SQL $INCLUDE ${confdir/mssql.conf # Traitements valides authorize { preprocess # Normalisation des attributs auth_log # Journal des connexions mschap # Authentification MS-CHAP eap # Transport EAP files # Consultation de la base users # Mécanismes d autentification authenticate { # MS-CHAP Auth-Type MS-CHAP { Numéro 84 / Juin 2006 43

sysadmin hotspots mschap # Encapsulation EAP eap Le délai de traitement des requêtes est fixé à 60 secondes. La résolution DNS inverse est désactivée, car elle peut entraîner le gel temporaire du serveur. Un pool de threads traite les requêtes des supplicants. Il y a start_servers threads au démarrage du serveur et au plus max_servers threads à un instant donné. Adaptez ces valeurs en fonction de la charge de votre hotspot. Les supplicants sont authentifiés via EAP et MS-CHAP. Nous réclamons un chiffrement fort. Une base textuelle d utilisateurs sera consultée à ce stade. Le fichier eap.conf établit les paramètres EAP. # Protocole EAP eap { # Type PEAP default_eap_type = peap # Délai d expiration du cache timer_expire = 60 # Rejeter les types EAP inconnus ignore_unknown_eap_types = no # Tunnel TLS tls { # Clé privée RADIUS private_key_file = ${raddbdir/certs/ radius.key # Secret clé RADIUS private_key_password = secret_radius # Certificat RADIUS certificate_file = ${raddbdir/certs/ radius.crt # Certificat d autorité CA_file = ${raddbdir/certs/ca.crt dh_file = ${raddbdir/certs/dh random_file = /dev/urandom # Protocole PEAP peap { # Encapsulation MS-CHAPv2 default_eap_type = mschapv2 Le protocole d authentification est PEAP-MS- CHAPv2. La section tls définit les paramètres du tunnel chiffré. private_key_file pointe vers la clé privée du serveur RADIUS, private_key_password étant le secret associé. certificate_file et CA_file pointent vers les certificats du serveur RADIUS et de l autorité de certification. Le fichier de périphérique /dev/urandom fournit une interface avec le générateur de nombres aléatoires du noyau en mode non bloquant. Cette fonctionnalité est disponible depuis la version 1.3.30 du noyau Linux. Il peut être recréé au besoin. # mknod -m 644 /dev/urandom c 1 9 # chown root:root /dev/urandom notes Sélectionnez le fichier ${raddbdir/certs/random si votre système d exploitation n implémente pas ce périphérique. Le fichier clients.conf contient la liste des authentificateurs autorisés à adresser des requêtes au serveur FreeRADIUS (man 5 clients.conf). Nous déclarons le serveur RADIUS et un routeur wifi de SSID Altair rattaché au réseau local. # Client local client 127.0.0.1 { # Secret partagé secret = secret_localhost # Repris dans les journaux shortname = localhost nastype = other # Hotspot Altair attaché au réseau local client 192.168.0.1 { secret = secret_altair shortname = altair nastype = other Un secret partagé sera reporté lors de la configuration du routeur. Le nom court sera lui repris dans les journaux. Le fichier users contient les informations d authentification des supplicants. Une base MySQL sera créée dans un second temps. Ajoutons un utilisateur test. # Utilisateur test (à insérer en tête de fichier) «foo» User-Password == «bar» # Traitement par défaut DEfAULT Auth-Type := Reject # Rejet Création des certificats Nous allons maintenant créer le certificat d autorité et le certificat du serveur RADIUS à l aide de la trousse à outils OpenSSL [OpenSSL]. Générons la clé privée RSA du certificat racine. La longueur de la clé privée est de 1 024 bits. Elle est chiffrée par l algorithme Tripe DES (man 1 openssl). # cd /etc/raddb/certs # openssl genrsa -des3 -out ca.key 1024 Enter pass phrase for ca.key: secret_ca 44 GNU Linux Magazine France

Techniques de déploiement de hotspots WiFI sécurisés Mémorisez la phrase secrète choisie. Elle sera réclamée à l étape suivante. Établissons le certificat racine autosigné, valide 1 an. # openssl req -new -x509 -days 365 -key ca.key -out ca.crt Enter pass phrase for ca.key: secret_ca Country Name (2 letter code) [AU]: fr State or Province Name (full name) [Some-State]: Haute-Normandie Locality Name (eg, city) []: Le Havre Organization Name (eg, company) [Internet Widgits Pty Ltd]: Air Oceane Organizational Unit Name (eg, section) []: PKI Common Name (eg, YOUR name) []: radius.airoceane.org Email Address []: pki@airoceane.org Common Name est le nom pleinement qualifié de la machine à l origine du certificat. Il s agit ici du serveur RADIUS par souci de simplicité. Générons maintenant la clé privée RSA du certificat RADIUS. # openssl genrsa -des3 -out radius.key 1024 Enter pass phrase for radius.key: secret_radius Mémorisez à nouveau la phrase secrète choisie. Elle sera réclamée à l étape suivante et constitue la valeur du paramètre private_key_password du fichier radiusd.conf. Créons une requête de certificat pour cette clé. # openssl req -new -key radius.key -out radius.csr Enter pass phrase for radius.key: secret_radius Country Name (2 letter code) [AU]: fr State or Province Name (full name) [Some-State]: Haute-Normandie Locality Name (eg, city) []: Le Havre Organization Name (eg, company) [Internet Widgits Pty Ltd]: Air Oceane Organizational Unit Name (eg, section) []: PKI Common Name (eg, YOUR name) []: radius.airoceane.org Email Address []: pki@airoceane.org Enter the following extra attributes to be sent with your certificate request A challenge password []: An optional company name []: Laissez les champs extra vierges. Procédez aux ajouts suivants dans le sous-répertoire democa. # mkdir -p democa/private # mkdir -p democa/newcerts # cp ca.key democa/private/cakey.pem # cp ca.crt democa/cacert.pem # echo «01» > democa/serial # cat /dev/null > democa/index.txt Les clients sous Windows XP nécessitent l adjonction des options X509 suivantes : [ xpclient_ext] extendedkeyusage = 1.3.6.1.5.5.7.3.2 [ xpserver_ext ] extendedkeyusage = 1.3.6.1.5.5.7.3.1 Copiez le fichier xpextensions contenu dans le répertoire scripts des sources. # cp ${SRCDIR/scripts/xpextensions xpext Établissons finalement le certificat du serveur RADIUS. # openssl ca -policy policy_anything -extfile xpext -in \ radius.csr -out radius.crt Enter pass phrase for./democa/private/cakey.pem: secret_ca Sign the certificate? [y/n]: y 1 out of 1 certificate requests certified, commit? [y/n]: y La commande check-radiusd-config teste la cohérence de la configuration. # check-radiusd-config Radius server configuration looks OK. La configuration est correcte. Lançons le démon radiusd en mode débogage (option -X). # radiusd -X Ready to process requests. Le serveur est désormais prêt à traiter les requêtes. La commande radtest simule une connexion en ligne de commande (man 1 radtest). Déclinons l identité de l utilisateur foo. # radtest foo bar localhost 1812 secret_localhost Sending Access-Request of id 183 to 127.0.0.1 port 1812 User-Name = «foo» User-Password = «bar» NAS-IP-Address = 255.255.255.255 NAS-Port = 1812 rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=183, length=20 Automatisation du lancement Le serveur répond correctement à la requête d authentification. Le lancement du service peut désormais être automatisé. La procédure décrite s applique à des systèmes d exploitation reposant sur Init System V. Le répertoire des sources contient un script de démarrage rc.radiusd. Copiez-le dans le répertoire /etc. # cp ${SRCDIR/scripts/rc.radiusd /etc Ajoutez les lignes suivantes au script rc.local : # Lancement du démon radiusd sh /etc/rc.radiusd start & Le démon sera invoqué à chaque démarrage du système. Configuration du routeur wifi Rapportez-vous au manuel de votre routeur wifi pour obtenir les instructions de configuration en mode WPA. La copie Numéro 84 / Juin 2006 45

sysadmin hotspots d écran suivante montre l interface web d administration d un routeur NetGear DG834G2. On active le mode DHCP du routeur afin d affecter dynamiquement une adresse IP et les paramètres de routage aux clients. Fig. 9 : Activation du serveur DHCP Fig. 7 : Interface web routeur Netgear DG834G2 Le secret doit être identique à celui indiqué dans le fichier clients.conf. RADIUS dialogue sur les ports de communication UDP 1812 (authentification) et 1813 (comptabilité). Ils doivent être ouverts au niveau du pare-feu matériel du routeur et du pare-feu logiciel du serveur RADIUS. Dans le cas d une passerelle disposant d une adresse IP unique et utilisant la translation d adresses NAT pour propager l accès Internet à un réseau local, il est nécessaire d autoriser et de rediriger les datagrammes UDP entrants sur les ports 1812 et 1813 vers le serveur RADIUS. Voici finalement une règle IPFW minimale à placer dans un script d initialisation du serveur Un*x : # ipfw add allow udp from any to any dst-port 1812-1813 Journaux Il est important d établir un journal des connexions dans le contexte d un système ouvert au public. L option auth_log déclarée dans la section authorize combinée aux informations du module detail enclenche l enregistrement des principales informations en relation avec chaque connexion ou tentative de connexion. Elles seront ventilées dans des sous-répertoires de /var/log/radius/radacct nommés d après les points d accès. Un fichier auth-detail-aaaammjj rassemble les informations de connexion sur une journée. Voici le compte-rendu de la simulation radtest. Packet-Type = Access-Request Tue Apr 25 16:53:02 2006 User-Name = «foo» User-Password = «bar» NAS-IP-Address = 255.255.255.255 NAS-Port = 1812 Client-IP-Address = 127.0.0.1 L ordonnanceur de tâches Cron assurera l archivage des journaux. Le répertoire scripts des sources contient des scripts de maintenance radiusd.cron.daily et radiusd.cron. monthly. Copiez-les respectivement dans les répertoires /etc/daily et /etc/monthly. # cp ${SRCDIR/scripts/radiusd.cron.daily /etc/daily/999.radius # cp ${SRCDIR/scripts/radiusd.cron.monthly /etc/monthly/999.radius Fig. 8 : Redirection des ports UDP 1812 et 1813 notes La destination des scripts peut différer sur votre système. Si vous ne disposez pas de l utilitaire BSD savelog invoqué dans les scripts, téléchargez le script Perl éponyme développé par Steve Robins [Savelog]. L option -c fixe le nombre d éditions d un journal archivées. Jouez sur ce nombre. 46 GNU Linux Magazine France

Techniques de déploiement de hotspots WiFI sécurisés Configuration d un backend MySQL La maintenance du fichier texte users devient laborieuse à mesure que le nombre d utilisateurs croît. Un backend MySQL s avérera plus souple et pourra être manipulé à loisir depuis des programmes C ou PHP. Modifiez le fichier radiusd.conf commme suit : # Configuration pilote SQL $INCLUDE ${confdir/mssql.conf authorize { # files sql # Base d utilisateurs SQL La base SQL remplace la base textuelle. Le fichier mssql. conf définit le type de pilote SQL et les paramètres de connexion. sql { # Type de base de données # Pilote MySQL driver = «rlm_sql_mysql» # Infos de connexion # Base hébergée par le serveur RADIUS server = «localhost» # Login root login = «root» # Secret MySQL password = secret_mysql Dans notre exemple, le serveur MySQL est hébergé sur la même machine que le serveur FreeRADIUS. Nous supposons que les paquets requis pour l administration d une base de données MySQL sont installés et que le serveur est actif. Créons un mot de passe root qui sera requis lors des requêtes FreeRADIUS (man 1 mysqladmin). # mysqladmin -u root password secret_mysql Créons la base RADIUS. # mysqladmin -u root -psecret_mysql create radius Il n y a pas d espace entre option -p et mot de passe. Le sous-répertoire doc/examples des sources contient un fichier de commandes SQL qui va créer les tables requises. # mysql -u root -psecret_mysql radius < \ ${SRCDIR/doc/examples/mysql.sql Une rapide inspection de la base confirme la création des tables. # mysql -u root -psecret_mysql mysql > USE radius; mysql > SHOW TABLES; notes +------------------+ Tables_in_radius +------------------+ nas radacct radcheck radgroupcheck radgroupreply radpostauth radreply usergroup +------------------+ La table radcheck contient les éléments d authentification des utilisateurs. Les autres tables ne seront pas exploitées dans notre exemple. Ajoutons un utilisateur test. # mysql -u root -psecret_mysql mysql > USE radius; mysql > INSERT INTO radcheck (Username, Attribute, op, Value) VALUES ( foo, Password, ==, bar ); L exploration de la table confirme la mise à jour. # mysql -u root -psecret_mysql mysql > USE radius; mysql > SELECT * FROM radcheck; +----+----------+-----------+----+----------+ id UserName Attribute op Value +----+----------+-----------+----+----------+ 1 foo Password == bar +----+----------+-----------+----+----------+ Installation de Xsupplicant Xsupplicant est une application Linux/BSD qui gère les aspects clients de la norme 802.11i [Xsupplicant]. Les commandes iwconfig (configuration d une interface réseau wifi) et dhclient (client DHCP) doivent être présentes sur la machine cliente. Téléchargez les sources de Xsupplicant. Compilez, puis installez le programme (version 1.2.4 dans notre exemple). $ tar -xzf xsupplicant-1.2.4.tar.gz $ cd xsupplicant-1.2.4 $./configure --sysconfdir=/etc $ make $ su # make install Les fichiers de configuration sont situés dans le répertoire /etc/1x. Copiez-y le certificat d autorité. # mkdir -p /etc/1x/certs # cp ca.crt /etc/1x/certs Éditez le fichier de configuration xsupplicant. conf. # Section globale network_list = all # Script d activation de l interface wifi Numéro 84 / Juin 2006 47

sysadmin hotspots startup_command = <BEGIN_COMMAND>/etc/1x/ startup<end_command> # Section hotspot ssid_hotspot # Ex. altair { # Authentification PEAP allow_types = eap_peap identity = <BEGIN_ID>anonymous<END_ID> # Paramètres PEAP eap-peap { # Certificat d autorité root_cert = /etc/1x/certs/ca.crt chunk_size = 1398 random_file = /dev/urandom # Contrôle origine certificat cnexact = yes # Ex. radius.airoceane.org cncheck = fqdn_radius session_resume = yes # Encapsulation MS-CHAPv2 allow_types = eap_mschapv2 fonction de votre configuration. Lancez la connexion en ligne de commande (interface réseau eth0 dans notre exemple). # xsupplicant -i eth0 Connexion sous Mac OS X Mac OS X embarque un client 802.1X intégré à l environnement graphique Aqua. Ouvrez la section Réseau du panneau de Préférences système. Sélectionnez la rubrique Nouvelle configuration du menu déroulant. Baptisez la connexion, par exemple du nom du hotspot. Sélectionnez la rubrique Configuration des ports réseau. Cochez Airport. # Identité MS-CHAPv2 eap-mschapv2 { username = <BEGIN_UNAME>login<END_UNAME> password = <BEGIN_PASS>secret<END_PASS> L identifiant cncheck est le nom pleinement qualifié du serveur d origine du certificat d autorité. L identité du client est déclinée dans la section eap-mschapv2. Un script startup établit la connexion. #!/bin/bash Fig. 10 : Activation d Airport Sélectionnez la rubrique Airport. Dans l onglet TCP/IP, optez pour une Configuration IPv4 via DHCP. L adresse IP d un client sera allouée dynamiquement lors de chaque session ainsi que les adresses IP du routeur et des serveurs DNS. IFACE=eth0 # Interface wifi ESSID=altair # SSID hotspot echo Démarrage script de connexion wifi» # Désactivation de l interface wifi ifconfig $IFACE down sleep 1 # Configuration de l interface wifi avec une clé fictive iwconfig $IFACE mode managed essid $ESSID enc 000000000 # Activation de l interface wifi ifconfig $IFACE allmulti up # Obtention d une adresse IP via DHCP dhclient $IFACE Créez-le dans le répertoire /etc/1x. Adaptez la valeur des variables IFACE et ESSID en Fig. 11 : Paramétrage DHCP 48 GNU Linux Magazine France

Techniques de déploiement de hotspots WiFI sécurisés Lancez maintenant l assistant de connexion Internet (Applications->Connexion à Internet). Tapez la combinaison de touches [SHIFT] + [POMME] + [X] afin de créer une nouvelle configuration 802.1X. Dans le menu déroulant Configuration, sélectionnez l entrée Edit Configurations. Dans les Réglages de confiance, choisissez de Toujours approuver le certificat. Lancez finalement la connexion. Fig. 13 : Validation du certificat d autorité Fig. 12 : Paramètres de la connexion 802.1X Baptisez la connexion, par exemple du nom du hotspot. Déclinez vos Nom d utilisateur et Mot de passe. Cochez les Modes d Authentification PEAP et TLS. Validez ces choix. Ouvrez le Trousseau d accès (Applications->Utilitaires- >Trousseau d accès). Ajoutez le certificat d autorité à la liste X509Anchors. Double-cliquez sur l entrée. Conclusion Au terme de cet article, vous disposez des bases pour déployer un hotspot wifi sécurisé. Dans un prochain article, nous aborderons les aspects techniques de la conception et du positionnement d antennes wifi. Cyril Nocton, liens FreeRADIUS. Serveur RADIUS diffusé sous licence GNU GPL : http://www.freeradius.org/ Xsupplicant. Client 802.1X en ligne de commande : http://open1x.sourceforge.net/ Savelog. Script Perl de rotation de journaux : http://www.sumost.ca/steve/software/ OpenSSL. Boîte à outils cryptographique : http://www.openssl.org/ MySQL. Base de données relationnelle SQL : http://www.mysql.com/ RFC. Description des protocoles PPP (RFC 1661), EAP (RFC 2284), CHAP (RFC 1994), MS-CHAPv2 (RFC 2759), RADIUS (RFC 2865) : http://www.ietf.org/ 802.1X Port-Based Authentication HOWTO. Présentation du protocole 802.1X : http://www.tldp.org/howto/8021x-howto/ Guide pratique des certificats SSL. Traduction du SSL Certificates HOWTO : http://www.traduc.org/docs/howto/vf/ssl-certificates-howto.html Les PKI. Présentation de l infrastructure PKI : http://www.securiteinfo.com/crypto/pki.shtml 2 sites incontournables Http:// Numéro 84 / Juin 2006 Abonnements et anciens numéros en vente sur : www.ed-diamond.com ww Toute l actualité du magazine sur : www.gnulinuxmag.com