19

Rapport: simulation d'une infrastructure d'authenti cation 802.1x … · 2013-05-09 · Introduction Ce document à pour objectif de détailler les étapes nécessaires pour la mise

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Rapport: simulation d'une infrastructure d'authenti cation 802.1x … · 2013-05-09 · Introduction Ce document à pour objectif de détailler les étapes nécessaires pour la mise

Rapport: simulation d'une infrastructure

d'authenti�cation 802.1x pour le test du

protocole EAP-SIM

Sami TABIBEL

28 mars 2013

1

Page 2: Rapport: simulation d'une infrastructure d'authenti cation 802.1x … · 2013-05-09 · Introduction Ce document à pour objectif de détailler les étapes nécessaires pour la mise

Introduction

Ce document à pour objectif de détailler les étapes nécessaires pour lamise en place d'un réseau virtuel d'authenti�cation 802.1x ; Ce réseau nousservira d'infrastructure pour l'expérimentation et le test des protocoles d'au-thenti�cation 802.1x tel que EAP-PEAP, EAP-MD5, EAP-SIM. Nous nousintéresserons particulièrement à ce dernier, cependant pour un premier tempsnous allons illustré le fonctionnement de cette infrastructure par une authen-ti�cation EAP-PEAP.

1 La structure visée

Comme nous l'avons vu dans les chapitres précédents l'authenti�cation802.1x a un fonctionnement tripartite, dont les acteurs sont le supplicant,l'authenticator (Point d'accès) et le serveur d'authenti�cation (Radius).

La �gure suivante illustre la structure que nous avons réalisé.

Fig. 1 � Infrastructure pour l'authenti�cation 802.1x.

2 Pré-requis

La structure sus-décrite a été réalisée sous un système GNU/Linux, dis-tribution Fedora 16 ; Nous fournirons également les instructions pour l'instal-lation des pré-requis sous Ubuntu. Pour les di�érents �chiers de con�gurationdes di�érents logiciels que nous allons utiliser dans ce travail, nous noteronsseulement les lignes à modi�er par rapport aux �chiers originaux et nousdonnerons des liens vers les �chiers complets.

2

Page 3: Rapport: simulation d'une infrastructure d'authenti cation 802.1x … · 2013-05-09 · Introduction Ce document à pour objectif de détailler les étapes nécessaires pour la mise

LXC Container

Les sources sont téléchargeables ici.� Sous Fedora :

$ sudo yum i n s t a l l l x c . i 686

� Sous Ubuntu :

$ sudo apt−get i n s t a l l l x c

gcc

Les sources sont disponibles en ftp à ftp ://gd.tuwien.ac.at/gnu/gcc/� Sous Fedora :

$ sudo yum i n s t a l l gcc . i 686

� Sous Ubuntu :

$ sudo apt−get i n s t a l l bui ld−e s s e n t i a l

GNU Make

Les sources sont disponibles ici.� Sous Fedora :

$ sudo yum i n s t a l l make . i686

� Sous Ubuntu : il est installé avec le paquet build-essential vue précé-demment.

SSH Server

Ne requière pas de pré-con�guration, nous allons donc installer les pa-quets pré-compilés.

� Sous Fedora

3

Page 4: Rapport: simulation d'une infrastructure d'authenti cation 802.1x … · 2013-05-09 · Introduction Ce document à pour objectif de détailler les étapes nécessaires pour la mise

$ sudo yum i n s t a l l openssh−s e r v e r . i 686

� Sous Ubuntu

$ sudo apt−get i n s t a l l openssh−s e r v e r

Les �chiers de con�guration ainsi que les clés RSA pour la connexionclient/serveur ssh sont disponible sur le wiki : ssh.tar.

Con�guration du client et du serveur SSH

� Extrayez l'archive et placez vous dans le dossier ssh

$ ta r xvf ssh . ta r$ cd ssh

� Éditez le �chier con�g et remplacez 'user_name' par votre nom d'uti-lisateur à la ligne :

User user_name

� Placez les �chiers de con�gurations dans les répertoires appropriés

$ cp authorized_keys c on f i g id_eapsim id_eapsim . pub ~/. ssh

� Éditez le �chier /etc/ssh/sshd_con�g et veillez à ce que les lignesci-dessous soient présentes et que 'user_name soit remplacé par votrenom d'utilisateur

HostKey /home/user_name / . ssh / id_eapsimHostKey /home/user_name / . ssh / id_eapsimAuthor izedKeysFi le /home/user_name / . ssh / authorized_keys

4

Page 5: Rapport: simulation d'une infrastructure d'authenti cation 802.1x … · 2013-05-09 · Introduction Ce document à pour objectif de détailler les étapes nécessaires pour la mise

3 Installation

Cette section à pour objectif de con�gurer chacun des trois acteurs denotre structure à rappeler : le supplicant, l'authenticator et le serveur d'au-thenti�cation.

3.1 Le supplicant

Il s'agit de la machine réelle aussi appelée hôte. C'est sur cette partiede l'infrastructure que va s'exécuter le logiciel à réaliser (EAP-SIM suppli-cant) ; Pour des besoins d'expérimentation nous allons installer et con�gurerle supplicant wpa_supplicant.

Téléchargement

Les sources sont disponibles ici.

Con�guration

Extrayez l'archive contenant les sources et créez le �chier de con�gurationde l'installation

$ sudo ta r xvfz wpa\_supplicant−x . y . ta r . gz$ cd wpa\_supplicant−x . y$ cp d e f c on f i g . c on f i g

Maintenant éditez le �chier .con�g avec votre éditeur de texte préféré etveillez à ce que les lignes suivantes soient présentes et actives 1

CONFIG_DRIVER_WIRED=yCONFIG_IEEE8021X_EAPOL=yCONFIG_EAP_MD5=yCONFIG_EAP_MSCHAPV2=yCONFIG_EAP_PEAP=yCONFIG_EAP_SIM=yCONFIG_USIM_SIMULATOR=yCONFIG_SIM_SIMULATOR=y

Un �chier complet est disponible sur le wiki du projet à cette adresse.

1 : Pour activer une ligne, supprimez le '#' au début de cette dernière, s'il est présent.

5

Page 6: Rapport: simulation d'une infrastructure d'authenti cation 802.1x … · 2013-05-09 · Introduction Ce document à pour objectif de détailler les étapes nécessaires pour la mise

Installation

$ make$ sudo cp wpa_cli wpa_supplicant / usr / local /bin

eapol_test

C'est un outil en ligne de commande que nous avons découvert en posantune question dans le mailing-list de Freeradius ; Il s'agit d'un outil de testde serveurs radius. eapol_test est fournit avec wpa_supplicant cependant iln'est pas constructible par défaut.

Pour construire eapol_test éditez à nouveau le �chier .con�g et remplacezla ligne :

# CONFIG_EAPOL_TEST=y

par :

CONFIG_EAPOL_TEST=y

Ensuite, construisez la cible eapol_test :

$ make eapo l_test$ cp eapo l_test / usr / local /bin

3.2 L'authenticator ou le point d'accès

Il s'agit du commutateur ou du point d'accès a travers lequel notre sup-plicant va se connecter au réseau. Pour simuler un point d'accès nous allonsutiliser un container LXC que nous appellerons 'authenticator' ; A�n quenotre container puisse se comporter comme un point d'accès nous allonsl'équiper d'un logiciel spéci�que appelé "Hostapd".

HostapdEst un démon qui s'exécute sur un point d'accès et qui implémente la

norme IEEE 802.11, ce logiciel gère aussi la norme 802.1x avec une connexion�laire réelle ou virtuelle comme nous l'avait a�rmé l'auteur du wpa_supplicant

6

Page 7: Rapport: simulation d'une infrastructure d'authenti cation 802.1x … · 2013-05-09 · Introduction Ce document à pour objectif de détailler les étapes nécessaires pour la mise

et du hostapd Jouni Malinen dans cette réponse à une question que nousavons posé dans le mailing-list du hostapd.

Téléchargement

Téléchargez l'archive contenant les sources.

Con�guration

Décompressez l'archive et éditez le �chier de con�guration

$ ta r xvfz hostapd−x . y . ta r . gz$ cd hostapd−x . y$ cd hostapd$ cp d e f c on f i g . c on f i g

Éditez le �chier .con�g et veillez à ce que les lignes suivantes soient actives

CONFIG_DRIVER_WIRED=yCONFIG_DRIVER_NONE=yCONFIG_EAP_SIM=yCONFIG_DRIVER_HOSTAP=y

Installation

$ make$ cp hostapd hostapd_cl i / usr / local /bin

Le �chier de con�guration complet est disponible sur le wiki à ce lien.

3.3 Freeradius

Installation

� Sous Fedora

$ sudo yum i n s t a l l f r e e r a d i u s . i 686

� Sous Ubuntu

7

Page 8: Rapport: simulation d'une infrastructure d'authenti cation 802.1x … · 2013-05-09 · Introduction Ce document à pour objectif de détailler les étapes nécessaires pour la mise

$ sudo apt−get i n s t a l l f r e e r a d i u s

Con�guration

Les �chiers de con�guration se trouvent ici. À Extraire et à copier dansle répertoire /etc/raddb sous Fedora.

$ ta r xvfz raddb . ta r . gz$ cd raddb$ sudo cp −R ∗ / e t c /raddb

Un tutoriel sur l'installation et la con�guration de freeradius est dis-ponible à cette adresse.

4 Mise en place du réseau virtuel

Rappel sur la con�guration réseau

Fig. 2 � Infrastructure pour l'authenti�cation 802.1x.

8

Page 9: Rapport: simulation d'une infrastructure d'authenti cation 802.1x … · 2013-05-09 · Introduction Ce document à pour objectif de détailler les étapes nécessaires pour la mise

Création du point d'accès

Le �chier network-con�g

# ac t i v a t i o n du forward ing

sudo s y s c t l −w net . ipv4 . ip_forward=1

# crea t i on e t a c t i v a t i o n du b r i d g e r e l i a n t l ' a u t h en t i c a t o r

# au supp l i can t , i l s ' a g i t du l i e n EAP Over Lan

sudo b r c t l addbr eapolansudo b r c t l s e t f d eapolan 0sudo ip l i n k set eapolan up

Le �chier routing-con�g

# on f i x e l ' adres se de l ' i n t e r f a c e de l ' a u t h e n t i f i c a t e u r

# vers l e s upp l i c an t

sudo ip addr add 10 . 0 . 0 . 1 / 24 dev eapolan

Le �chier de con�guration du point d'accès nas.cfg

l x c . utsname = authen t i c a to r

# network between supp l i c an t and au t h en t i c a t o r

l x c . network . type = vethlx c . network . veth . pa i r = veth_supplx c . network . f l a g s = uplx c . network . l i n k = eapolanlx c . network . name = eth0lx c . network . hwaddr = aa : 0 0 : bb : 0 0 : cc : 11l x c . network . ipv4 = 10 . 0 . 0 . 2 / 24

Le �chier startnas

sudo lxc−execute −n Nas −f nas . c f g bash

Le �chier allcon�g.nas

source network−c on f i gsource rout ing−c on f i gsource s t a r tna s

9

Page 10: Rapport: simulation d'une infrastructure d'authenti cation 802.1x … · 2013-05-09 · Introduction Ce document à pour objectif de détailler les étapes nécessaires pour la mise

Donner le droit d'exécution au �chier allcon�g.nas

$ chmod u+x a l l c o n f i g . nas

Création du serveur radius

Le �chier nas-network-con�g

# ac t i v a t i o n du forward ing

sudo s y s c t l −w net . ipv4 . ip_forward=1

# crea t i on e t a c t i v a t i o n du b r i d g e r e l i a n t l ' a u t h en t i c a t o r

# au serveur radius , i l s ' a g i t du l i e n EAP Over Radius

sudo b r c t l addbr eaporadsudo b r c t l s e t f d eaporad 0sudo ip l i n k set eaporad up

Le �chier nas-routing-con�g

# on f i x e l ' adres se de l ' i n t e r f a c e de l ' a u t h e n t i f i c a t e u r

# vers l e se rveur rad ius

sudo ip addr add 200 . 0 . 0 . 1 /24 dev eaporad

Le �chier de con�guration du serveur radius nas.cfg

l x c . utsname = rad iu sl x c . network . type = vethlx c . network . veth . pa i r = veth_radiusl x c . network . f l a g s = uplx c . network . l i n k = eaporadlx c . network . name = eth0lx c . network . hwaddr = aa : 0 0 : ba : f e : 0 a : bel x c . network . ipv4 = 200 . 0 . 0 . 100/24

Le �chier startradius

sudo lxc−execute −n Rads −f r ad iu s . c f g bash

10

Page 11: Rapport: simulation d'une infrastructure d'authenti cation 802.1x … · 2013-05-09 · Introduction Ce document à pour objectif de détailler les étapes nécessaires pour la mise

Le �chier allcon�g.rad

source nas−network−c on f i gsource nas−rout ing−c on f i gsource s t a r t r a d i u s

Rendre le �chier allcon�g.rad exécutable

$ chmod u+x a l l c o n f i g . rad

L'ensemble des �chiers de con�guration du réseau virtuel est disponiblesur le wiki dans l'archive lxc-con�g.tar

5 Illustration : réalisation d'une authenti�cation EAP-

PEAP d'illustration

Depuis un terminal lancez l'authenticator

$ . / a l l c o n f i g . nas

dans le même terminal (authenticator) lancer le serveur SSH

$ / usr / sb in / sshd

Depuis un autre terminal connectez vous à l'authenticator via ssh etlancez le container du serveur

$ ssh h l o c a l$ . / a l l c o n f i g . rad

Maintenant on a un terminal représentant l'authenticator, un deuxièmereprésentant le serveur radius et le supplicant sera notre machine hôte.

11

Page 12: Rapport: simulation d'une infrastructure d'authenti cation 802.1x … · 2013-05-09 · Introduction Ce document à pour objectif de détailler les étapes nécessaires pour la mise

Fig. 3 � création du serveur et du point d'accès.

Depuis l'authenticator lancez hostapd avec le �chier de con�gurationhostapd.conf

$ sudo hostapd −dd hostapd . conf

Depuis le serveur lancer freeradius

$ sudo rad iusd −X

Le serveur Freeradius et le point d'accès sont en attente de nouvellesconnexions.

12

Page 13: Rapport: simulation d'une infrastructure d'authenti cation 802.1x … · 2013-05-09 · Introduction Ce document à pour objectif de détailler les étapes nécessaires pour la mise

Fig. 4 � création du serveur et du point d'accès.

Depuis la machine hôte ouvrez un terminal et lancez une demande d'au-thenti�cation avec wpa_supplicant et le �chiers de con�guration wpa.conf-v1.1 :

c t r l_ i n t e r f a c e=/var /run/wpa_supplicantap_scan=0fast_reauth=1network={s s i d=" t e s t "scan_ssid=0key_mgmt=IEEE8021Xeap=PEAPphase2="auth=MSCHAPV2"i d e n t i t y="sami"

password=" samipass "

Demande d'authenti�cation

wpa_supplicant − i eapolan −c wpa . conf−v1 . 1 −Dwired

13

Page 14: Rapport: simulation d'une infrastructure d'authenti cation 802.1x … · 2013-05-09 · Introduction Ce document à pour objectif de détailler les étapes nécessaires pour la mise

Fig. 5 � Authenti�cation auprès du serveur freeradius via l'authen-ticator avec wpa_supplicant.

Et si on regarde du coté serveur et point d'accès ...

14

Page 15: Rapport: simulation d'une infrastructure d'authenti cation 802.1x … · 2013-05-09 · Introduction Ce document à pour objectif de détailler les étapes nécessaires pour la mise

Fig. 6 � Messages du serveur et du point d'accès en réponse à unedemande d'authenti�cation depuis wpa_supplicant.

6 Sni�ng et capture wireshark

Nous avons lancer en même temps que l'exécution de la demande d'au-thenti�cation avec wpa_supplicant une capture wireshark sur l'interface ea-polan avec comme �ltre l'expréssion 'eapol'

15

Page 16: Rapport: simulation d'une infrastructure d'authenti cation 802.1x … · 2013-05-09 · Introduction Ce document à pour objectif de détailler les étapes nécessaires pour la mise

Fig. 7 � Capture des paquets d'une authenti�cation EAP-PEAP.

16

Page 17: Rapport: simulation d'une infrastructure d'authenti cation 802.1x … · 2013-05-09 · Introduction Ce document à pour objectif de détailler les étapes nécessaires pour la mise

Le �chier contenant les paquets de cette capture est disponible ici : cap-ture01.pcap

7 Interaction avec scapy

Nous allons lancer l'authenticator dans l'écran de droite et scapy dansl'écran de gauche et envoyer depuis scapy un paquet EAPOL/Start pourensuite observer la réaction de l'authenticator :

Fig. 8 � État du point d'accès avant la demande d'authenti�cation.

On envoie le paquet EAPOL/Start

17

Page 18: Rapport: simulation d'une infrastructure d'authenti cation 802.1x … · 2013-05-09 · Introduction Ce document à pour objectif de détailler les étapes nécessaires pour la mise

Fig. 9 � État du point d'accès après la demande d'authenti�cation.

18

Page 19: Rapport: simulation d'une infrastructure d'authenti cation 802.1x … · 2013-05-09 · Introduction Ce document à pour objectif de détailler les étapes nécessaires pour la mise

Conclusion

Nous avons vu comment cette structure permet-elle à un supplicant des'authenti�er auprès d'un serveur freeradius en passant par un point d'accèsqui gère l'authenti�cation 802.1x. Il nous reste à exploiter cette structurepour faire de l'authenti�cation EAP-SIM puis d'écrire un supplicant en py-thon qui réalise ce type d'authenti�cation.

19