Vous êtes sur la page 1sur 78

Protocoles dauthentification rseau

Sans-fil et filaire

Protocoles d'authentification rseau

S.Bordres

Plan
Introduction Qu'est-ce que l'authentification rseau ? Pourquoi faire de l'authentification rseau ? Intrt de l'authentification rseau Authentifier quoi ? Des utilisateurs ou des machines ? Elments pour authentifier Autoriser quoi ? Le protocole Radius Bases du protocole Support des Vlans Support EAP Authentification 802.1X Configuration des quipements rseau WIFI (borne HP et Cisco) Filaire (switch HP et Cisco) Configuration du serveur Radius Freeradius Configuration des clients TLS - Windows et Linux PEAP - Windows et Linux Utilisation d'une base de donnes. Windows LDAP Mise en oeuvre Authentification par adresse MAC (Radius-mac) Configuration des quipements rseau WIFI (borne HP et Cisco) Filaire (switch HP et Cisco) Configuration du serveur Radius Configuration des clients

Protocoles d'authentification rseau

S.Bordres

Qu'est-ce que l'authentification rseau ?

Il s'agit d'authentifier une machine lorsqu'elle se branche sur le rseau afin de lui autoriser ou refuser l'usage du rseau.

On authentifie pour dlivrer des autorisations

Cette authentification est indpendante d'autres authentifications vers des systmes d'exploitation ou applications

Protocoles d'authentification rseau

S.Bordres

Qu'est-ce que l'authentification rseau ?

Au th en r s tific ea ati u on

Branchement physique sur le rseau Authentification Autorisation d'usage


Base De Donnes Commune (LDAP)

Au th ap ent pl ific ica a ti v tio es n

Authentification sur le systme d'exploitation (windows, Linux)

Authentification sur une application

Protocoles d'authentification rseau

S.Bordres

Pourquoi faire de lauthentification rseau ?

Scuriser un rseau filaire ou sans-fil Pour interdire les postes inconnus Pour placer les postes connus a des endroits spcifiques du rseau (vlan) de faon dynamique. Pour savoir quelle machine est connecte et o elle est connecte

Protocoles d'authentification rseau

S.Bordres

Intrts de lauthentification rseau ?


Intrt pour un rseau filaire Savoir qui se connecte sur quelle prise Eviter une utilisation illicite du rseau par des inconnus Affecter les machines sur des rseaux virtuels (cloisonnement) Intrt pour un rseau sans-fil sansObligatoire pour intgrer le rseau filaire cad que les machines sans-fil travaillent comme les machines filaires Affecter une machine sur le mme vlan que lorsquelle se connecte sur le rseau filaire. Authentification + cryptage Ncessit de grer un primtre arien, flou, incontrlable.
Protocoles d'authentification rseau

S.Bordres

Authentifier quoi ? Des utilisateurs ou des machines ?

La rponse dpend de la destination et/ou de larchitecture du rseau. Une authentification par utilisateur implique que les autorisations sont accordes quelque soit la machine utilise. Une authentification par machine implique quune machine recevra les mmes autorisations quelque soit lutilisateur qui lutilise. Dans chaque cas il est possible de croiser les lments dauthentification avec ladresse MAC de la machine.

Protocoles d'authentification rseau

S.Bordres

Elments pour authentifier


De quoi dispose ton pour authentifier ? Ladresse MAC de la carte Ethernet Et/ou Une base de login/mot de passe (windows, LDAP) Et/ou De certificats (utilisateurs ou machines)

Obligatoire : ne pas rajouter de contraintes sur lutilisateur

Protocoles d'authentification rseau

S.Bordres

Autoriser quoi ?

On autorise une machine utiliser tout ou partie dun rseau.

Dans un rseau plat (sans sous-rseau) on autorise tout le rseau obligatoirement Dans un rseau segment on autorise la connexion sur un sous-rseau (Vlan)

Protocoles d'authentification rseau

S.Bordres

Rappel sur les Vlans


Vision logique correspondante Routeur
Lien 802.1Q Trunk (cisco) Tagged (HP) Vlan3

Routeur
Rseau3 Rseau2

Vlan2

switch

switch
Vlan2

Vlan3
Protocoles d'authentification rseau

10

S.Bordres

Protocoles dauthentification

Protocoles propritaires =>

Exemple: VMPS de Cisco Authentification sur adresse MAC uniquement Rseau filaire

Protocoles ouverts

=>

Radius et 802.1x Authentification sur adresse MAC, Login/password Certificats, cartes puce . Rseau filaire et sans-fil

Protocoles d'authentification rseau

11

S.Bordres

Protocoles dauthentification: Radius

Deux possibilits : Authentification par adresse MAC (Radius-Mac)

Authentification 802.1x

Protocoles d'authentification rseau

12

S.Bordres

Protocoles dauthentification: Radius


Authentification par adresse MAC
Le serveur radius Interroge sa base de donnes pour mettre en correspondance ladresse MAC et le N de vlan

Serveur radius
Ladresse MAC sert didentifiant

Lorsque un poste se connecte sur un port le switch interroge le serveur radius

Fichier local Et/ou Base Ldap Et/ou Base sql

Protocoles d'authentification rseau

13

S.Bordres

Protocoles dauthentification: Radius et 802.1x


Le serveur radius Interroge sa base de donnes pour trouver lidentifiant

Serveur radius
Lidentifiant et soit un login/password soit un certificat Fichier local Et/ou Base Ldap Et/ou Base sql Et/ou Domaine windows

Le switch relaie la demande du poste

Excution dun supplicant qui demande lauthentification

Protocoles d'authentification rseau

14

S.Bordres

Protocoles dauthentification: Radius et 802.1x


EAP over Radius

Serveur radius

Il y a une communication entre le client et le serveur Radius avec le protocole EAP

Port non contrl Port contrl EAP over LAN

Au t

P EA

re s

Aprs authentification

Avant authentification
Protocoles d'authentification rseau

15

Au t

P EA

re s

S.Bordres

Protocoles dauthentification: Radius et 802.1x

802.1x met en uvre le protocole EAP pour les communications du client vers le serveur d'authentification. EAP (Extensible Authentication Protocol) est un protocole de transport de protocole d'authentification.

L'intrt de l'architecture de EAP est de pouvoir utiliser divers mcanismes d'authentification sans que l'quipement rseau (NAS) aient besoin de les connatre. Dans ce cas il agit comme un tunnel transparent vers un serveur qui lui implmente les mcanismes souhaits. Par exemple: Mot de passe, certificats, carte puce .

Protocoles d'authentification rseau

16

S.Bordres

Protocoles dauthentification: EAP

Principales mthodes d'authentification EAP: - EAP/TLS


Authentification mutuelle entre le serveur et le client par certificat.

- EAP/PEAP ou EAP/TTLS
Le client est authentifi par un login/mot de passe. Le serveur peut tre authentifi par son certificat.

Protocoles d'authentification rseau

17

S.Bordres

Protocoles dauthentification:Terminologie
NAS Authenticator (802.1x) Radius client

serveur Radius
supplicant

Domaine Windows
Mthodes d'authentification et d'autorisation

Borne WIFi

Commutateur
supplicant NAS Authenticator (802.1x) Radius client

LDAP Base sql certificats Fichier local

NAS= Network Access Server

Protocoles d'authentification rseau

18

S.Bordres

Le protocole Radius

Protocoles d'authentification rseau

19

S.Bordres

Le protocole Radius

Remote Access Dial In User Service

Protocole d'authentification d'utilisateurs distants

Initialement plutt utilis par les ISP Pour authentifier leurs utilisateurs

Dvelopp par Livingston Enterprises

Le protocole de base de RADIUS est dcrit dans le RFC 2865. Utilise UDP sur le port 1812 (anciennement 1645)
Protocoles d'authentification rseau

20

S.Bordres

Le protocole Radius

Radius est un serveur de type AAA

Authentification
Qui me parle ?

Authorization
Quelles autorisations je lui accorde ?

Accounting
Que fait-il ?

Protocoles d'authentification rseau

21

S.Bordres

Le protocole Radius: les types de paquets

Le protocole utilise 4 types de paquets suffisants pour assurer toutes les transactions: (hors accounting) Access-Request Access-Accept Access-Reject Access-Challenge

Protocoles d'authentification rseau

22

S.Bordres

Le protocole Radius: les types de paquets


Access Request Premier paquet envoy par le client (NAS) Contient l'identit de l'utilisateur qui se connecte ( username/password ou CN du certificat ou MAC adresse)

Access-Accept Renvoy par le serveur Radius pour accepter la requte du client aprs interrogation de sa base d'authentification. Ce paquet peut contenir une liste d'attributs correspondant aux services qui sont autoriss (par exemple le vlan).

Protocoles d'authentification rseau

23

S.Bordres

Le protocole Radius: les types de paquets


Access-reject Emis par le serveur radius pour spcifier au client que sa requte est rejete. En principe ce paquet peut tre mis tout moment pour mettre fin une connexion, mais certains quipement ne supporte pas.

Access-challenge Emis par le serveur Radius pour demander soit de r-emettre un access-request, soit pour demander des informations complmentaires.

Protocoles d'authentification rseau

24

S.Bordres

Le protocole Radius: format des paquets

Code(1) Identifier(1)

Longueur(2)

Authentificateur(16)

Attributs et valeurs(variable)
Codes 1 2 3 4 5 11access-request access-accept Access-reject Accounting-request Accounting-response Access-challenge Identifier utilis pour associer les requtes et les rponses. Authentificateur Utilis pour que l'quipement NAS puisse authentifier les rponses du serveur -> Request authenticator -> Response authenticator

Attributs et valeurs Ensemble d'attributs et leur valeur qui indique quels services sont demands ou autoriss.

Protocoles d'authentification rseau

25

S.Bordres

Le protocole Radius: les types de paquets

Code(1) Identifier(1)

Longueur(2)

Authentificateur(16)

Attributs et valeurs

Authentificateur Lorsque le client NAS envoi un paquet access-request il inclut un authentificateur appel request-authenticator qui est une squence alatoire. Le serveur rpond par un paquet access-accept ou accept-reject ou accept-challenge avec un response-authenticator compos avec les informations contenues dans le paquet access-request, le request authenticator et un secret partag avec le NAS et le tout crypt MD5. Le NAS est alors en mesure de vrifier que le serveur qui rpond est bien celui qu'il a contact.

Protocoles d'authentification rseau

26

S.Bordres

Le protocole Radius: les attributs


Les transactions RADIUS ont pour but de vhiculer des attributs et leur valeur entre le client NAS et le serveur. Ces attributs et leur valeur sont appels paires attribut-valeur (AVP= attribut-value pair) Ces attributs permettent au client de communiquer des informations au serveur (password, MAC adresse) et au serveur de communiquer les paramtres des autorisations qu'il dlivre (vlan) ou bien demander des informations complmentaires.

Code(1) Identifier(1) N longueur attribut

Longueur(2)

Authentificateur(16)

valeur

Protocoles d'authentification rseau

27

S.Bordres

Le protocole Radius: les attributs


Un attribut est caractris par son type et sa valeur (ventuellement nulle) Integer Enumerated IP address Chane de caractres Date Binaire Vendor-specific

Code(1) Identifier(1) N longueur attribut


Protocoles d'authentification rseau

Longueur(2)

Authentificateur(16)

valeur
28
S.Bordres

Le protocole Radius: les attributs standards

Il y a beaucoup d'attributs standards mais peu sont utilisables dans le cas d'une utilisation avec 802.1x. Par exemple l'attribut CALLBACK-NUMBER contient le numro de tlphone sur lequel il faut rappeler le client. Ce qui est inutile dans notre cas

Seront dcrits ici uniquement les attributs intressants pour l'authentification 802.1X et Radius Mac

Protocoles d'authentification rseau

29

S.Bordres

Le protocole Radius: les attributs standards


Called-Station-Id Contient l'adresse MAC de l'quipement NAS Calling-Station-Id Contient l'adresse MAC de la machine de l'utilisateur. NAS-IP-Address Adresse IP de l'quipement NAS NAS-Port Port sur lequel est connect le supplicant User-Name User-Password

Protocoles d'authentification rseau

30

S.Bordres

Le protocole Radius: le dictionnaire


Chaque attribut possde un numro d'identification. Seul ce numro est transmis dans les paquets . La correspondance entre le nom de l'attribut, son numro et son type est ralis dans un dictionnaire.

N attribut

Nom d'attribut

type

Protocoles d'authentification rseau

31

S.Bordres

Le protocole Radius: les attributs vendor


Les fabricant de matriel rseau (NAS) ont parfois intgr leurs quipements des attributs spcifiques en plus des attributs standards dfinis dans le RFC. Ces attributs sont encapsuls dans l'attribut standard vendor-specific qui a pour numero 26. Ils sont appels VSA = Vendor Specific Attribut

Code(1) Identifier(1) 26 longueur

Longueur(2) Vendor Attribut longueur ID number

Authentificateur(16)
valeur

Protocoles d'authentification rseau

32

S.Bordres

Le protocole Radius: les attributs vendor


Vendor ID: N d'immatriculation du fabricant (NMPECS= Network Management Private Enterprise Codes (RFC1700) Attribut number Comme pour les attributs standards, les vendor-attributs possdent un numro d'identification. Ce numro est rpertori dans un dictionnaire spcifique au fabricant. Longueur Valeur

Code(1) Identifier(1) 26 longueur

Longueur(2) Vendor Attribut longueur ID number

Authentificateur(16)
valeur

Protocoles d'authentification rseau

33

S.Bordres

Le protocole Radius: les attributs vendor

Valeur de l'attribut
SSID=visiteurs Renvoi une borne cisco AP1200 le SSID autoris pour un utilisateur. Ce SSID est gale un VLAN

Nom de l'attribut

Exemple 1

ip:inacl#1=permit ip any host 10.3.3.254 Renvoi une ACL un commutateur


(Exemple vu sur: http://www.lmcp.jussieu.fr/~morris/802.1X/mobile.htm)

Exemple 2

Protocoles d'authentification rseau

34

S.Bordres

Les extensions du protocole Radius: support des vlans

Le support des VLANs est ralis par le biais des attributs de tunnel

Le support des attributs de tunnel est une extension du protocole de base de RADIUS dont le but initial est de crer des tunnels avec des clients distants.

Ces extensions sont dcrites dans le RFC 2868

Les attributs concerns sont :

Tunnel-type Tunnel-Medium-Type Tunnel-Private-group-Id

Protocoles d'authentification rseau

35

S.Bordres

Les extensions du protocole Radius: support des vlans


Tunnel-Type Il y a 13 types de tunnels. Bien que le RFC ne parle que des 12 premiers. Le 13me tant les VLAN 802.1q.
1 2 3 4 5 6 7 8 9 Point-to-Point Tunneling Protocol (PPTP) Layer 2 Forwarding (L2F) Layer 2 Tunneling Protocol (L2TP) Ascend Tunnel Management Protocol (ATMP) Virtual Tunneling Protocol (VTP) IP Authentication Header in the Tunnel-Mode (AH) IP-in-IP encapsulation (IP-IP) Minimal IP-in-IP Encapsulation (MIN-IP-IP) IP encapsulating Security Payload in the tunnel-mode (ESP)

10 Generic Route Encapsulation (GRE) 11 Bay dial in virtual Services (DVS) 12 IP-in-IP Tunneling 13 Vlan 802.1Q

Protocoles d'authentification rseau

36

S.Bordres

Les extensions du protocole Radius: support des vlans


Tunnel-Medium-Type
Cet attribut indique quel type de transport est utilis. Il y a 14 types possibles.

1 2 3 4 5 6 7 8 9 10 11 12 13 14

IPv4 UPv6 NSAP HDLC BBN 1822 802 E.163 (POTS) E.164 (SMDS, Frame relay, ATM) F.69 (Telex) X.121 IPX Appletalk Decnet IV Banyan Vines

Ethernet

Protocoles d'authentification rseau

37

S.Bordres

Les extensions du protocole Radius: support des vlans

Tunnel-Private-Group-Id
Indique un group-id pour un tunnel spcifique. Dans le cas des VLANs il s'agit du numro de Vlan.

Autres attributs tunnel


Il existe d'autres attributs de tunnel, non utiliss pour nos besoins

Protocoles d'authentification rseau

38

S.Bordres

Les extensions du protocole Radius: support EAP (802.1x)


Radius a t tendu pour supporter le protocole EAP et donc l'authentification 802.1x.

Pour cela 2 attributs ont t ajouts: Message-Authenticator EAP-Message


Les paquets EAP sont encapsuls dans l'attribut EAP-Message Message-Authenticator est un attribut qui permet de signer les requtes qui contiennent des attributs EAP-Message. (calcul MD5 sur le contenu d'un access-request + secret partag)

RFC:

2869 3579 3748 2716 3580

radius extension radius support for EAP EAP EAP/TLS 802.1x radius usage guidelines
39
S.Bordres

Protocoles d'authentification rseau

Les extensions du protocole Radius: support EAP (802.1x)


Authentification avec certificat (TLS) EAP over LAN
EAP-request =identity

EAP over RADIUS


1
EAP-reply=identity=CN

EAP-request =TLS start

EAP-Reply=Client_hello EAP_request=Server_hello, certificat+cl publique

5
Calcul cl principale

6
Calcul cl principale

EAP-reply=Certificat+cl publique EAP-request=TLS_finished

7
EAP-request=TLS_finished

EAP-reply= vide

8
EAP-reply= success
Protocoles d'authentification rseau

8
EAP-reply= success+cl de session

EAP-key=Cl WEP ou WPa

9
40
S.Bordres

Les extensions du protocole Radius: support EAP (802.1x)


Authentification avec certificat (TLS) 1- Le NAS envoi au client une requte EAP lui demandant son identit 2- Le client rpond avec le CN comme identit 3- Le serveur dmarre la squence TLS par lenvoi du message TLS_start 4- Le client rpond par un message client_hello : La version de TLS Un challenge (nombre alatoire) Un identifiant de session La liste des algorithmes de chiffrement supports par le client 5- Le serveur rpond par un message server_hello Son certificat et sa cl publique Demande au client denvoyer son certificat Un challenge Un identifiant de session calcul partir de celui du client. Choisit un algorithme de chiffrement en fonction de ceux connus par le client 6- Le client vrifie le certificat du serveur et envoi le sien et sa cl publique
Protocoles d'authentification rseau

41

S.Bordres

Les extensions du protocole Radius: support EAP (802.1x)


Authentification avec certificat (TLS)

7- Le client et le serveur calculent une cl de chiffrement pour la session principale ( partir des challenges changs) 8- Le client renvoi une rponse EAP vide et le serveur rpond par un message EAP_success avec une cl de session pour la borne wifi. 9- A partir de cette cl de session la borne calcul une cl WEP ou WPA et lenvoi au client. Dans le cas dauthentification EAP/TLS la cl de session principale nest pas utilise. Seul lchange de validation mutuelle des certificats est utile

Protocoles d'authentification rseau

42

S.Bordres

Les extensions du protocole Radius: support EAP (802.1x)


Authentification avec login/password (PEAP) Client
EAP-request/identity EAP-Response/identity (EAP-message- identity=login) Access-request (EAP-message)

NAS

Serveur d'authentification

TLS pour cration dun tunnel chiffr

Tunnel TLS chiffr Authentification du client (mschapv2) authentification


OK
Gnration cl WEP/WPA

Access-accept +Cl de session

EAP key cl WEP/WPA

Protocoles d'authentification rseau

43

S.Bordres

Les extensions du protocole Radius: support EAP (802.1x)


Authentification avec login/password (PEAP) EAP over LAN
EAP-request =identity

EAP over RADIUS


1

EAP-reply=identity=login EAP-request =TLS start

EAP-Reply=Client_hello EAP_request=Server_hello, certificat+cl publique

5
Calcul cl de session principale

Calcul cl de session principale

EAP-request-PEAP_finished EAP-request=PEAP_finished

Tunnel chiffr
EAP-reply= vide

7
EAP-reply= success EAP-key=Cl Protocoles d'authentification rseau WEP ou WPa EAP-reply= success+cl de session

44

S.Bordres

Les extensions du protocole Radius: support EAP (802.1x)


Remarques sur lidentit

Dans les phases 1 et 2 lidentit (rponse identity) transmise nest pas crypte Ce nest pas directement ce champ qui permet lauthentification. Mais cest lui qui est utilis pour lautorisation. Pour TLS : Cest la validation mutuelle des certificats qui constitue lauthentification Pour PEAP: Cest le username transmis dans le tunnel (crypt) qui sert faire lauthentification par vrification du mot de passe. Dans tous les cas il est possible de donner une identit diffrente du CN ou du username. Ceci afin que lidentit relle ne circule pas en clair. Dans la ralit il faut tre prudent car il y a risque quun utilisateur sauthentifie avec sa propre identit mais puisse acqurir les autorisations dun autre.

Protocoles d'authentification rseau

45

S.Bordres

Les extensions du protocole Radius: support EAP (802.1x)


Remarques sur le cryptage sans-fil

Pour EAP/PEAP les changes ncessaires lauthentification sont crypts dans un tunnel TLS et ce mme si ensuite aucune mthode de cryptage nest configure.(en filaire galement)

Mme si 802.1x nimpose pas le cryptage des communications il est FORTEMENT recommand de crypter avec une mthode srieuse . (au moins WPA)

La borne doit grer la transmission automatique des cls de cryptage vers les postes clients et, de prfrence, la rotation dynamique de ces cls.

Protocoles d'authentification rseau

46

S.Bordres

Les extensions du protocole Radius: support EAP (802.1x)


Remarques sur le cryptage sans-fil Mthodes de cryptage: WEP : dpass ne pas utiliser

WPA : Associ TKIP pour la rotation Initialisation des cls par 802.1x Changement de la cl tous les 10Ko Cl 128 bits (RC4) vecteur dinitialisation de 48 bits MIC: Contrle dintgrit WPA2: = 802.11i Principe identique WPA avec: CCMP pour la rotation des cls AES pour le cryptage

Protocoles d'authentification rseau

47

S.Bordres

Les extensions du protocole Radius: support EAP (802.1x)


Dans le cas du WIFI

"la dure de vie d'une cl wep est une heure"


Source Herv shauer Consultants
http://www.hsc.fr/ressources/presentations/ossir-wpa-wpa2/img0.html

Protocoles d'authentification rseau

48

S.Bordres

Les extensions du protocole Radius: support EAP (802.1x)

Imbrication des protocoles

802.11b/g EAP TLS TLS


MSCHAPv2

802.3
TLS TLS MSCHAPv2

IP UDP Radius EAP

Cryptage WEP, ou WPA ou 802.11i (WPA2)

IP

TCP ou UDP IP

Protocoles d'authentification rseau

49

S.Bordres

Processus dauthentification et autorisation

Check items Request-items


Mac-address Processus d'authentification et autorisation

Base

Check-item=request-items ? Check- item=request-

Reply-items
Vlan=5

Reply items
50

Base
S.Bordres

Protocoles d'authentification rseau

Processus dauthentification et autorisation

L'quipement NAS envoi un access-request contenant une liste d'attributs appels request_items. Par exemple, l'adresse MAC est un request-item. Le serveur Radius dispose dans sa base d'authentification/autorisation d'une liste de check-items associe chaque utilisateur/machine connu. Radius interroge sa base pour trouver une entre qui correspond au username envoy et dont les check-items matches les request-item. Si aucune correspondance n'est trouve un access-reject est envoy. Si une correspondance est trouve, une reply-list est forme partir des reply-items contenu dans la base. Par exemple, le numro de vlan est un reply-item. Le username envoy est authentifi (mot de passe, certificats..) Si l'authentification est ok, la reply-list est envoy l'quipement NAS avec un access-accept.

Protocoles d'authentification rseau

51

S.Bordres

Elments constitutifs de la base de donnes


Identifiant : Un username fournis par le client radius (switch) ou par le supplicant

La mthode dauthentification: Elle peut tre indique explicitement dans la base de donnes ou bien tre dduite implicitement en fonction du protocole utilis par le NAS ou le supplicant. (Local, EAP, LDAP)

Les check-items: Exemples: Mot de passe : Fourni par le NAS dans le cas dune authentification par adresse MAC. Dans ce cas le mot de passe est ladresse MAC. Ladresse MAC Les reply-items: Exemple: le ssid ou le N de vlan.

Protocoles d'authentification rseau

52

S.Bordres

Freeradius

Protocoles d'authentification rseau

53

S.Bordres

Freeradius

Freeradius est une implmentation open source du protocole Radius. www.freeradius.org

Fonctionnalits: - Support EAP (MD5, SIM TLS TTLS, PEAP, LEAP, GTC, MSCHAPV2) - 50 dictionnaires vendor-specific - LDAP, MYSQL, PostgresSQL, Oracle, SAMBA - Module PAM-radius - Mod_auth radius pour Apache

Protocoles d'authentification rseau

54

S.Bordres

Freeradius: Installation et dmarrage


Installation tar xvzf freeradius-1.0.1.tar.gz. cd freeradius-1.0.1 CFLAGS="-I/usr/include/et" ./configure --sysconfdir=/etc make make install

Dmarrage /etc/init.d/radiusd start Logs dans /var/log/radius/radius.log Ou bien radiusd X (mode debug)
Protocoles d'authentification rseau

55

S.Bordres

Freeradius: Fichiers de configuration

Les fichiers de configurations sont dans /etc/raddb radiusd.conf clients.conf eap.conf users

Configurations principales

Configurations particulires

dictionnary Ldap.attrmap Oraclesql.conf Postgresql.conf Sql.conf

Gestion des certificats

cert
56
S.Bordres

Protocoles d'authentification rseau

Freeradius: Fichiers de configuration : Clients.conf

Dans ce fichier doivent tre rfrencs tous les clients Radius (NAS) autoriss interroger le serveur.

client adresse-ip { secret = mot-de-passe shortname = nom nastype = type-materiel }

Doit tre prsent aussi dans le NAS

Protocoles d'authentification rseau

57

S.Bordres

Freeradius: Fichiers de configuration - users

Le fichier user est la base de donnes locale. Cest un fichier plat. Il est constitu d'une succession "d'entre". Chacune correspondant un utilisateur ou machine. Le fichier est parcouru squentiellement du haut vers le bas. Chaque entre commence par un identifiant suivi par une liste d'item vrifier (check item). Sur une seule ligne. check item Les lignes suivantes commencent par une tabulation suivie d'une liste d'items de rponse (reply item). reply item Il peut y avoir plusieurs reply item spars par des virgules et sur plusieurs lignes.

Protocoles d'authentification rseau

58

S.Bordres

Freeradius: Fichiers de configuration - users

username

Type d'authentification

Adresse MAC Check items

Dupont

Auth-Type := EAP, Calling-Station-Id == "0012f0ae2546" AuthCalling- StationService-Type = Framed-User, ServiceFramed- User, Tunnel-type = VLAN, TunnelTunnel-Medium-Type = 6, Tunnel- MediumTunnel-private-Group-ID = 15 Tunnel- private- GroupReply items

DEFAULT

Auth-Type := reject , Fall-Trough = 0 AuthFall-

Service-Type = Framed-User ServiceFramed-

Entre par dfaut


Protocoles d'authentification rseau

Rejet de la requte

59

S.Bordres

Freeradius: Fichiers de configuration - users


Auth-Type: attribut spcial permettant de spcifier le type d'authentification appliquer une entre. Les types possibles peuvent tre trouvs dans le dictionnaire:
Local System SecurID Crypt-Local Reject ActivCard EAP ARAP Accept PAP CHAP LDAP PAM MS-CHAP Kerberos CRAM NS-MTA-MD5 SMB
Protocoles d'authentification rseau

Reject permet de refuser inconditionnellement une connexion.

Accept permet d'accepter inconditionnellement une connexion.

60

S.Bordres

Freeradius: Fichiers de configuration - users


Les oprateurs Attribute == valeur (check-item) Match si l'attribut est prsent et est gale cette valeur.

Attribute != valeur (check-item) Match si l'attribut est prsent et n'est pas gale cette valeur.

Attribute > valeur, >= , <, <=

(check-item)

Match si l'attribut est prsent et est > ou >= ou < ou <= cette valeur.

Protocoles d'authentification rseau

61

S.Bordres

Freeradius: Fichiers de configuration - users


Les oprateurs Attribute =~ expression (check-item) Match si l'attribut match l'expression rgulire.. Attribute !~ expression (check-item) Match si l'attribut ne match pas l'expression rgulire. Attribute *= value (check-item) Match si l'attribut est prsent dans la requte. La valeur n'a pas d'importance.

Attribute != value (check-item) Match si l'attribut n'est pas prsent dans la requte. La valeur n'a pas d'importance.

Protocoles d'authentification rseau

62

S.Bordres

Freeradius: Fichiers de configuration - users


Les oprateurs Attribute = valeur (reply-item) Ajoute l'attribut la liste des reply-items .

Attribute := valeur (check-item/reply-item) Comme check-item, match toujours et remplace ou ajoute l'attribut aux configuration-items. Comme reply-item ajoute l'attribut la liste des reply-items. Attribute += value (check-item/reply-item) Comme check-item match toujours et rajoute l'attribut au request-item. Comme repy-item rajoute l'attribut au request-item.

Protocoles d'authentification rseau

63

S.Bordres

Freeradius: Fichiers de configuration radiusd.conf

Format gnral du fichier

Liste de paramtres de fonctionnement Dclaration de modules Appel des modules

Protocoles d'authentification rseau

64

S.Bordres

Freeradius: Fichiers de configuration radiusd.conf


prefix = /usr/local exec_prefix = ${prefix} sysconfdir = /etc localstatedir = /var sbindir = ${exec_prefix}/sbin logdir = ${localstatedir}/log/radius raddbdir = ${sysconfdir}/raddb radacctdir = ${logdir}/radacct confdir = ${raddbdir} run_dir = ${localstatedir}/run/radiusd log_file = ${logdir}/radius.log libdir = ${exec_prefix}/lib pidfile = ${run_dir}/radiusd.pid max_request_time = 30 delete_blocked_requests =no cleanup_delay = 5 max_requests = 1024 bind_address = * port =1812

Protocoles d'authentification rseau

65

S.Bordres

Freeradius: Fichiers de configuration radiusd.conf


#listen { # IP address on which to listen. # Allowed values are: # # # # dotted quad (1.2.3.4) hostname wildcard (radius.example.com) (*)

ipaddr = *

# Port on which to listen. # Allowed values are: # # # integer port number (1812) 0 means "use /etc/services for the proper port"

Listen : Utile uniquement lorsque le client peut tre sur la machine o tourne Radius

port = 0

# Type of packets to listen for. # Allowed values are: # # # # #}


Protocoles d'authentification rseau

auth acct

listen for authentication packets listen for accounting packets

type = auth
66
S.Bordres

Freeradius: Fichiers de configuration radiusd.conf


hostname_lookups = no allow_core_dumps = no regular_expressions = yes extended_expressions = yes log_stripped_names = yes log_auth = yes log_auth_badpass = yes log_auth_goodpass = yes usercollide = no lower_user = no lower_pass = no nospace_user = no nospace_pass = no

Paramtrage des logs

Protocoles d'authentification rseau

67

S.Bordres

Freeradius: Fichiers de configuration radiusd.conf


security { max_attributes = 200 reject_delay = 1 status_server = no }
Inclusion des autres fichiers de configuration Paramtres imposants des limitations pour contrarier certains types d'attaques. Limite le nombre d'attributs par requte Autorise un dlai de rponse pour freiner une attaque type DoS Interdit/autorise la requte status-server

proxy_requests = yes $INCLUDE ${confdir}/proxy.conf $INCLUDE ${confdir}/clients.conf snmp = no

Autorise/interdit les requtes proxy

NAS autoriss communiquer avec le serveur Autorise/interdit le support SNMP

$INCLUDE ${confdir}/snmp.conf

Protocoles d'authentification rseau

68

S.Bordres

Freeradius: Fichiers de configuration radiusd.conf


Dclaration des modules Modules { nom1 { } nom2 { } . . . nom3 { . } } Paramtres du module
Nom du module: correspond une librairie rlm_nom1 Ces librairies sont situes dans /usr/local/lib.

Protocoles d'authentification rseau

69

S.Bordres

Freeradius: Fichiers de configuration radiusd.conf


pap { encryption_scheme = crypt } chap { authtype = CHAP } pam { pam_auth = radiusd }

Module d'authentification PAP

Module d'authentification CHAP

Module d'authentification PAM

unix { cache = no cache_reload = 600 passwd = /etc/passwd shadow = /etc/shadow group = /etc/group radwtmp = ${logdir}/radwtmp }

Module d'authentification Unix partir d'un fichier de style /etc/passwd Mise en cache ventuelle de passw, shadow et group Emplacement des fichiers

Protocoles d'authentification rseau

70

S.Bordres

Freeradius: Fichiers de configuration radiusd.conf

$INCLUDE ${confdir}/eap.conf

Inclusion du module d'authentification EAP

mschap { authtype = MS-CHAP #require_encryption = yes #require_strong = yes with_ntdomain_hack = yes

Module d'authentification mschap pour authentification sur un domaine Windows

ntlm_auth = "/usr/bin/ntlm_auth --request-nt-key --domain=nom-domaine --username=%{StrippedUser-Name:-%{User-Name:-None}} --challenge=%{mschap:Challenge:-00} --nt-response=%{mschap:NTResponse:-00}" }

Requte destination du contrleur de domaine (ncessite winbindd et nmbd)

Protocoles d'authentification rseau

71

S.Bordres

Freeradius: Fichiers de configuration radiusd.conf

ldap {

server = "ldap.your.domain" serveur # identity = "cn=admin,o=My Org,c=UA" # password = mypass basedn = "o=My Org,c=UA" filter = "(uid=%{Stripped-User-Name:-%{User-Name}})" # base_filter = "(objectclass=radiusprofile)" start_tls = no # tls_cacertfile = /path/to/cacert.pem # tls_cacertdir = /path/to/ca/dir/ # tls_certfile = /path/to/radius.crt # tls_keyfile = /path/to/radius.key # tls_randfile = /path/to/rnd # tls_require_cert = "demand" # default_profile = "cn=radprofile,ou=dialup,o=My Org,c=UA" # profile_attribute = "radiusProfileDn" access_attr = "dialupAccess" dictionary_mapping = ${raddbdir}/ldap.attrmap ldap_connections_number = 5 # password_attribute = userPassword # groupname_attribute = cn # groupmembership_filter = "(|(&(objectClass=GroupOfNames)(member=%{LdapUserDn}))(&(objectClass=GroupOfUniqueNames)(uniquemember=%{Ldap-UserDn})))" # groupmembership_attribute = radiusGroupName timeout = 4 timelimit = 3 net_timeout = 1 # compare_check_items = yes # do_xlat = yes # access_attr_used_for_allow = yes }

Module d'authentification sur LDAP (voir plus loin)

Protocoles d'authentification rseau

72

S.Bordres

Freeradius: Fichiers de configuration radiusd.conf

#passwd etc_smbpasswd { # filename = /etc/smbpasswd # format = "*User-Name::LM-Password:NT-Password:SMB-Account-CTRL-TEXT::" # authtype = MS-CHAP # hashsize = 100 # ignorenislike = no # allowmultiplekeys = no #} #passwd etc_group { passwd permet de spcifier # filename = /etc/group le format de fichier de type # format = "=Group-Name:::*,User-Name" /etc/passwd # hashsize = 50 # ignorenislike = yes # allowmultiplekeys = yes # delimiter = ":" #}

Protocoles d'authentification rseau

73

S.Bordres

Freeradius: Fichiers de configuration radiusd.conf


# Realm module, for proxying. realm IPASS { format = prefix delimiter = "/" ignore_default = no ignore_null = no } realm suffix { format = suffix delimiter = "@" ignore_default = no ignore_null = no }

realm realmpercent { format = suffix delimiter = "%" ignore_default = no ignore_null = no }

realm host { format = prefix delimiter = "/" ignore_default = no ignore_null = no }


Protocoles d'authentification rseau

74

S.Bordres

Freeradius: Fichiers de configuration radiusd.conf

checkval { item-name = Calling-Station-Id check-name = Calling-Station-Id data-type = string #notfound-reject = no }

Permet de comparer la valeur d'un attribut dans une requte avec une liste de check-item (utilis avec LDAP)

Protocoles d'authentification rseau

75

S.Bordres

Freeradius: Fichiers de configuration radiusd.conf

preprocess { huntgroups = ${confdir}/huntgroups hints = ${confdir}/hints

with_ascend_hack = no ascend_channels_per_line = 23 with_ntdomain_hack = no with_specialix_jetstream_hack = no with_cisco_vsa_hack = yes }

files { usersfile = ${confdir}/users acctusersfile = ${confdir}/acct_users compat = no }

Permet de dfinir o se trouve le fichier users

Protocoles d'authentification rseau

76

S.Bordres

Freeradius: Fichiers de configuration radiusd.conf


detail { detailperm = 0600 } #detail auth_log { # detailfile = ${radacctdir}/%{Client-IP-Address}/auth-detail%Y%m%d # detailperm = 0600 #} # detail reply_log { # detailfile = ${radacctdir}/%{Client-IP-Address}/reply-detail%Y%m%d # detailperm = 0600 #} # detail pre_proxy_log { # detailfile = ${radacctdir}/%{Client-IP-Address}/pre-proxy-detail%Y%m%d # detailperm = 0600 #} # detail post_proxy_log { # detailfile = ${radacctdir}/%{Client-IP-Address}/post-proxy-detail%Y%m%d # detailperm = 0600 #}

Module pour la cration de logs dtaills

Protocoles d'authentification rseau

77

S.Bordres

Freeradius: Fichiers de configuration radiusd.conf


authorize { preprocess # # auth_log attr_filter chap mschap # # digest IPASS suffix host eap files # # sql etc_smbpasswd ldap # daily checkval }

Fichier docs/aaa.txt
Authorization is a process of obtaining information about the user from external source (file, database or LDAP), and checking that the information in request is enough to authenticate user. Authorization modules deal with data sources, so ldap, sql, files, passwd are authorization modules.

Voir discussion sur authorize/authenticate


http://lists.cistron.nl/pipermail/freeradius-users/2002-December/014730.html

Protocoles d'authentification rseau

78

S.Bordres

Freeradius: Fichiers de configuration radiusd.conf


authenticate { Auth-Type PAP { pap }

Auth-Type CHAP { chap } Auth-Type MS-CHAP { mschap } # # digest pam unix # # # } eap } Auth-Type LDAP { ldap

Fichier docs/aaa.txt
Authentication is simply a process of comparing user's credentials in request with credentials stored in database. Authentication usually deals with password encryption. PAP, CHAP, MS-CHAP are authentication modules. Few modules act as both authorization and authentication. For example, the MSCHAP module is normally authentication one, but it may be used during authorization to verify that request contains MS-CHAP related attribute and only in this case perform MS-CHAP based authentication. LDAP is normally an authorization module, but it may be used for authentication (In this case FreeRADIUS will authenticate user in case he can connect to LDAP server with his account). SQL is only an authorization module, as dial-in users are not normally given passwords to access an SQL server.

Protocoles d'authentification rseau

79

S.Bordres

Freeradius: Fichiers de configuration radiusd.conf


eap { default_eap_type = peap timer_expire = 60

ignore_unknown_eap_types = no cisco_accounting_username_bug = no md5 { } leap { } gtc { #challenge = "Password: " auth_type = PAP }

. . .

Protocoles d'authentification rseau

80

S.Bordres

Freeradius: Fichiers de configuration eap.conf


tls { private_key_password = cl-prive private_key_file = ${raddbdir}/certs/serveur-radius.key certificate_file = ${raddbdir}/certs/serveur-radius.crt CA_file = ${raddbdir}/certs/ca.pem dh_file = ${raddbdir}/certs/dh random_file = ${raddbdir}/certs/random fragment_size = 1024 include_length = yes # check_crl = yes check_cert_cn = %{User-Name} } Les certificats du serveur et de l'autorit sont stocks dans /etc/raddb/certs

Impose que le username envoy soit gal au CN

TLS doit toujours tre configur pour TLS ou PEAP

Protocoles d'authentification rseau

81

S.Bordres

Freeradius: Fichiers de configuration eap.conf

peap { default_eap_type = mschapv2 copy_request_to_tunnel = yes use_tunneled_reply = yes } mschapv2 { } } (fin module eap)

Permet de copier les items dans le tunnel TLS

Important si on veut crire: Dupont Auth-Type := EAP, Calling-Station-ID= 1234567890

Protocoles d'authentification rseau

82

S.Bordres

Mise en oeuvre

Cisco

HP

Configurer les quipements rseau Configurer les vlans dans ces quipements Configurer les serveurs Radius utiliser dans ces quipements Configurer les cryptages (WIFI) Configurer les fichier USERS de radius

802.1X Radius-mac

Protocoles d'authentification rseau

83

S.Bordres

Authentification par adresse MAC (radius-mac)


Sur rseau WIFI

Remarque importante

Dans le cas du WIFI ne pas se contenter dune authentification par adresse MAC. MAC. Ladresse MAC nest pas crypte

Protocoles d'authentification rseau

84

S.Bordres

Authentification par adresse MAC (radius-mac)

Configuration des quipements rseau


Bornes et switch

HP et Cisco

Protocoles d'authentification rseau

85

S.Bordres

Authentification par adresse MAC (radius-mac)


Inter-connexion des quipements Connexion dune borne sur un switch Cisco 2950

WIFI

interface FastEthernet0/24 switchport trunk native vlan 12 switchport mode trunk

Vlan sur lequel la borne possde une adresse IP

Connexion dune borne sur un switch HP 2626

vlan 12 untagged 24 vlan x tagged 24 . .

Le port 24 doit tre tagged sur tous les autres vlans

Protocoles d'authentification rseau

86

S.Bordres

Authentification par adresse MAC (radius-mac)


Configuration des vlans
4 HP 20
Sur la borne il faut crer un SSID gnrique sur lequel tous les postes se connectent. Le serveur radius dcide sur quel vlan chaque poste sera affect.

WIFI

Vlan par dfaut si le serveur radius ne renvoi rien ou ne fonctionne pas (mettre un vlan poubelle)

Protocoles d'authentification rseau

87

S.Bordres

Authentification par adresse MAC (radius-mac)


Configuration des vlans
4 HP 20

WIFI

Protocoles d'authentification rseau

88

S.Bordres

Authentification par adresse MAC (radius-mac)


Configuration des serveurs radius
4 HP 20

WIFI

Les serveurs radius sont dfinis par SSID

10.4.0.3

Le format des adresses MAC est dfini par serveur

Protocoles d'authentification rseau

89

S.Bordres

Authentification par adresse MAC (radius-mac)


Configuration des serveurs radius
4 HP 20

WIFI

Protocoles d'authentification rseau

90

S.Bordres

Authentification par adresse MAC (radius-mac) Configuration du cryptage


4 HP 20

WIFI

Tous les postes utilisant le mme ssid utilisent la mme suite de scurit
Mthode possible en Radius-mac

Protocoles d'authentification rseau

91

S.Bordres

Authentification par adresse MAC (radius-mac)

WIFI

ET AIRON CISCO

1200

Chez Cisco la posibilit de crer plusieurs couple SSID/vlan existe depuis longtemps mais lutilisation dun vlan gnrique fonctionne depuis rcemment (test avec la version k9w7-tar.123-7.JA2)

Le principe est le mme quavec les bornes HP

Protocoles d'authentification rseau

92

S.Bordres

Authentification par adresse MAC (radius-mac)


Configuration des vlans

WIFI

15

demo 15

Protocoles d'authentification rseau

93

S.Bordres

Authentification par adresse MAC (radius-mac)


Configuration des serveurs radius
T1 NE IRO A 200

WIFI

CO CIS

10.4.0.3
10.4.0.3

10.4.0.3

10.4.0.3

Protocoles d'authentification rseau

94

S.Bordres

Authentification par adresse MAC (radius-mac)


Configuration des serveurs radius
1 ET ON AIR 200

WIFI

CO CIS

Uniquement les attributs Calling/called Sation Id

Le format des adresses mac est le mme pour tous les serveurs et les ssid

Protocoles d'authentification rseau

95

S.Bordres

Authentification par adresse MAC (radius-mac)


Configuration du cryptage
T1 NE IRO A 200

WIFI

CO CIS

Protocoles d'authentification rseau

96

S.Bordres

Authentification par adresse MAC (radius-mac)

Filaire

Avec Cisco 2950 IOS version 12.1(22)EA4 pas possible: La fonctionnalit n'est pas prsente Pour faire de l'authentification MAC il faut utiliser VMPS

Possible sur matriel HP procurve

Protocoles d'authentification rseau

97

S.Bordres

Authentification par adresse MAC (radius-mac)


6 62 e2 urv oc Pr
radius-server host 10.4.0.3 shared-secret aaa port-access mac-based addr-format multi-dash

Filaire

Inter-connexion des quipements et configuration du serveur Radius

h itc Sw

HP

aaa port-acces mac-based port-list

Lien tagged

Port 24 tagged sur tous les vlans Port 24 tagged sur tous les vlans

Protocoles d'authentification rseau

98

S.Bordres

Authentification par adresse MAC (radius-mac)

Configuration du serveur Radius avec utilisation de la base local USERS pour la mthode RADIUS-MAC

Protocoles d'authentification rseau

99

S.Bordres

Authentification par adresse MAC (radius-mac)


Configuration du fichier USERS de radius

WIFI+Filaire

Exemple1: Autoriser la machine 00c049e901ab se connecter sur le vlan 15

Sur le serveur Radius il faut crire une entre par adresse MAC autorise du type suivant:

Fichier users sur le serveur Radius

Mot de passe=adresse mac

00c049e901ab Auth-Type := local , User-Password =="00c049e901ab"


Adresse mac

Service-Type = Framed-User, Tunnel-type = VLAN, Tunnel-Medium-Type = 6, Tunnel-private-Group-ID = 15

Protocoles d'authentification rseau

100

S.Bordres

Authentification par adresse MAC (radius-mac)

Configuration sur le client Aucune configuration particulire sur le client que ce soit en wifi ou en filaire

Protocoles d'authentification rseau

101

S.Bordres

Authentification 802.1x

Protocoles d'authentification rseau

102

S.Bordres

Authentification 802.1x
Client
Certificat personnel Request Identity

WIFI et filaire
NAS Serveur radius
Certificat serveur

Identity=CN="Jean Dupont" vrification

EAP-type=EAP-TLS

certificat autorit

vrification
certificat autorit

CN users
accept
Machine1.demo.fr Auth-Type=EAP

Protocoles d'authentification rseau

103

S.Bordres

Authentification 802.1x

Configuration des quipements rseau pour les mthodes EAP


Bornes et switches

Protocoles d'authentification rseau

104

S.Bordres

Authentification 802.1x
Inter-connexion des quipements rseau
Idem que pour Radius MAC

WIFI

=> Si la borne est capable de grer simultanment desSSID avec authentification MAC et des SSID avec authentification 802.1x, il ny a rien de plus faire sur le switch sur lequel est connect cette borne.

Connexion dune borne sur un switch Cisco 2950


Lien trunk

interface FastEthernet0/24 switchport trunk native vlan 12 switchport mode trunk

Connexion dune borne sur un switch HP


vlan 12 untagged 24 vlan x tagged 24 . .
Protocoles d'authentification rseau

Lien tagged

105

S.Bordres

Authentification 802.1x
Configuration des vlans et des serveurs Radius
4 HP

WIFI

20 La configuration dans la borne est identique au cas Radius-MAC sauf quil ne faut pas activer lauthentification MAC.

Protocoles d'authentification rseau

106

S.Bordres

Authentification 802.1x
Configuration du cryptage
4 HP 20

WIFI

Tous les postes utilisant le mme ssid utilisent la mme suite de scurit

Protocoles d'authentification rseau

107

S.Bordres

Authentification 802.1x
Configuration des vlans et des serveurs Radius
ET AIRON CISCO 1200

WIFI

La configuration des vlans est identique au cas radius-mac

Protocoles d'authentification rseau

108

S.Bordres

Authentification 802.1x
Configuration du cryptage
ET AIRON CISCO 1200

WIFI

Protocoles d'authentification rseau

109

S.Bordres

Authentification 802.1x
aaa new-model aaa group server radius demo_radius aaa server 10.4.0.3 auth-port 1812 acct-port 1813 aaa authentication login default enable aaa authentication dot1x default group demo_radius aaa authorization network default group demo_radius dot1x system-auth-control interface FastEthernet0/15 switchport mode access dot1x port-control auto

Filaire

Inter-connexion des quipements et configuration du serveur Radius

Switch Cisco 2950

radius-server host 10.4.0.3 shared-secret aaa port-access authenticator 15

Switch HP 2626

interface FastEthernet0/24 switchport mode trunk

interface FastEthernet0/1 switchport mode trunk

Switch Cisco 2950

Port 24 tagged sur tous les vlan

Port 24 tagged sur tous les vlan

Switch HP 2626

Protocoles d'authentification rseau

110

S.Bordres

Authentification 802.1x

Configuration du serveur Radius avec utilisation de la base local USERS pour les mthodes EAP

Protocoles d'authentification rseau

111

S.Bordres

Authentification 802.1x
tls { private_key_password = cl-prive private_key_file = ${raddbdir}/certs/serveur-radius.key certificate_file = ${raddbdir}/certs/serveur-radius.crt CA_file = ${raddbdir}/certs/cacnrs.pem dh_file = ${raddbdir}/certs/dh random_file = ${raddbdir}/certs/random fragment_size = 1024 include_length = yes # check_crl = yes check_cert_cn = %{User-Name} } peap {

WIFI et filaire

Fichier eap.conf
TLS

default_eap_type = mschapv2 copy_request_to_tunnel = yes use_tunneled_reply = yes } mschapv2 { } } (fin module eap)

PEAP

Protocoles d'authentification rseau

112

S.Bordres

Authentification 802.1x
Data: Version: 3 (0x2) Serial Number: 12331 (0x302b) Signature Algorithm: sha1WithRSAEncryption Issuer: C=FR, O=CNRS, CN=CNRS-Standard Validity Not Before: Feb 14 15:22:23 2006 GMT Not After : Feb 14 15:22:23 2008 GMT Subject: C=FR, O=CNRS, OU=UMR5797, CN=radius.demo.fr /emailAddress=system@demo.fr Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (1024 bit) Modulus (1024 bit): 00:c1:e4:f9:b8:da:27:5a:11:21:26:ce:51:b3:90: . db:04:61:2c:77:24:91:e5:fb Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE Netscape Cert Type: SSL Client, SSL Server X509v3 Key Usage: critical Digital Signature, Non Repudiation, Key Encipherment X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication Netscape Comment: Certificat serveur CNRS-Standard X509v3 Subject Key Identifier: FD:59:C5:56:87:5F:2D:DD:29:92:AE:44:5B:86:21:61:D2:53:1F:2B X509v3 Authority Key Identifier: keyid:67:59:A5:E5:07:74:49:03:EF:05:CF:CC:2E:A4:18:D5:10:C8:9E:3C DirName:/C=FR/O=CNRS/CN=CNRS serial:02 X509v3 Subject Alternative Name: DNS:radius.demo.fr X509v3 CRL Distribution Points: Protocoles URI:http://crls.services.cnrs.fr/CNRS-Standard/getder.crl d'authentification rseau

WIFI et filaire

Caractristique du certificat du serveur radius

113

S.Bordres

Authentification 802.1x

WIFI et filaire

Fichier users sur serveur Radius


CN dun certificat personnel ou dun certificat machine (EAP/TLS => certificats) Ou bien Username dune base de login (windows,ldap..) EAP/PEAP

"Jean Dupont" Auth-Type := EAP Service-Type = Framed-User, Tunnel-type = VLAN, Tunnel-Medium-Type = 6, Tunnel-private-Group-ID = 15

Avec TLS, ne pas oublier check_cert_cn = %{User-Name} pour obliger le client envoyer une identity gale au CN.

Lauthentification na pas besoin dune base extrieure. Le certificat est valid dans la section Authentication par lappel au module EAP dans le fichier raddb.conf

Dans cette exemple, quelque soit la machine depuis laquelle se connecte Jean Dupont il pourra se connecter sur le vlan 15.

Protocoles d'authentification rseau

114

S.Bordres

Authentification 802.1x

WIFI et filaire

Authentification avec vrification de ladresse MAC

Machine.demo.fr

Auth-Type := EAP, Calling-Station-Id == 0050.124e.4500

Service-Type = Framed-User, Tunnel-type = VLAN, Tunnel-Medium-Type = 6, Tunnel-private-Group-ID = 15

Attention au format

Autre exemple en fixant une plage horaire de connexion:

Dupont

Auth-Type := EAP, Login-Time := any0700-2000 , Calling-Station-Id == 0050.124e.4500 Service-Type = Framed-User Tunnel-type = VLAN, Tunnel-Medium-Type = 6, Tunnel-private-Group-ID = 15

Protocoles d'authentification rseau

115

S.Bordres

Authentification 802.1x

Configuration des postes utilisateurs

Protocoles d'authentification rseau

116

S.Bordres

Authentification 802.1x - configuration client

Configuration avec le supplicant intgr (Windows) Configuration avec lutilitaire de la carte sans-fil (Windows) Configuration avec Xsupplicant ou wpa_supplicant (Linux) Authentification au logon TLS (certificat machine ou utilisateur) PEAP Authentification au dmarrage TLS PEAP

Protocoles d'authentification rseau

117

S.Bordres

Authentification 802.1x -certificat (TLS)- configuration client

ind W

s ow

Gestion des certificats

Un certificat utilisateur doit tre dans le magasin certificat utilisateur actuel le rpertoire personnel/certificat La protection renforce ne doit pas tre active Un certificat machine doit tre dans: le magasin certificat ordinateur local le rpertoire personnel/certificat Un certificat machine peut aussi tre mis dans le magasin certificat utilisateur actuel

Protocoles d'authentification rseau

118

S.Bordres

Authentification 802.1x -certificat (TLS)- configuration client -WIFI

ind W

s ow

Authentification au logon dun utilisateur

demo

Protocoles d'authentification rseau

119

S.Bordres

Authentification 802.1x -certificat (TLS)- configuration client -WIFI

in W

s ow d

Authentification au dmarrage de la machine

Pendant la phase de dmarrage le PC envoi comme identifiant: host/CN-certificat Il sagit dun certificat machine prsent dans le magasin de certificat machine. Le serveur radius demande au client de lui envoyer son certificat.
x

Protocoles d'authentification rseau

120

S.Bordres

Authentification 802.1x -certificat (TLS)- configuration client -Filaire

in W

s ow d

Le service configuration automatique sans-fil (oui, oui!) doit tre dmarr

Protocoles d'authentification rseau

121

S.Bordres

Authentification 802.1x - configuration client

Lin

ux

Il faut disposer du driver de la carte sans-fil: Il existe ventuellement sous Linux ndiswrapper pour utiliser les drivers Windows MadWifi Autres

Il faut installer un supplicant Xsupplicant - Utilisable en wifi et filaire. Pour le wifi supporte WPA depuis la version 1.2.3 (Janvier 2006)
http://open1x.sourceforge.net/

WPA-supplicant Utilisable uniquement en wifi.


http://hostap.epitest.fi/wpa_supplicant/

Protocoles d'authentification rseau

122

S.Bordres

Authentification 802.1x -certificat (TLS)- configuration client -WIFI

u Lin

ctrl_interface_group=0 ctrl_interface="/var/run/wpa_supplicant" eapol_version=1 ap_scan=2 network={ ssid=demo scan_ssid=0 proto=WPA key_mgmt=WPA-EAP eap=TLS pairwise=TKIP group=TKIP cnexact=no cncheck=demo.fr identity="machine.demo.fr ca_cert="/root/cert/ca/cademo.pem client_cert="/root/cert/machine.demo.fr.pem private_key="/root/cert/machine.demo.fr.key private_key_passwd="test eapol_flags=3 }

WPA_SUPPLICANT

Fichier /etc/wpa_supplicant.conf

wpa_supplicant Dndiswrapper i wlan0 c /etc/wpa_supplicant.conf


Protocoles d'authentification rseau

123

S.Bordres

Authentification 802.1x -certificat (TLS)- configuration client -Filaire

Lin

ux
network_list = all default_netname=default default { type = wired allow_types = all identity =machine1.demo.fr eap_tls { user_cert = /root/cert/machine1.demo.fr.pem user_key = /root/cert/machine1.demo.fr.key user_key_pass = passphrase root_cert = /root/cert/ca-demo-cert.pem chunk_size = 1398 random_file = /dev/urandom } }

XSUPPPLICANT

Fichier /etc/xsupplicant.conf

xsupplicant i eth0 f

Protocoles d'authentification rseau

124

S.Bordres

Authentification 802.1x certificat (TLS)

Log de Radius (succs)


.. Info: rlm_eap_tls: Received EAP-TLS ACK message Info: rlm_eap_tls: Received EAP-TLS First Fragment of the message Info: rlm_eap_tls: More fragments to follow Info: (other): SSL negotiation finished successfully

Nom du point daccs

Info: rlm_eap_tls: Received EAP-TLS ACK message Auth: Login OK: [machine1.demo.fr/<no User-Password attribute>] (from client ap1 port 165688 cli 00c0.49e9.01ab)

CN du certificat

Plus de dtails en mode DEBUG radiusd -X

Protocoles d'authentification rseau

125

S.Bordres

Authentification 802.1x certificat (TLS)

Log de Radius (chec)


Info: rlm_eap_tls: Received EAP-TLS ACK message Info: rlm_eap_tls: Received EAP-TLS First Fragment of the message Info: rlm_eap_tls: More fragments to follow Error: --> verify error:num=10:certificate has expired Error: notAfter= Error: TLS Alert write:fatal:certificate expired Error: TLS_accept:error in SSLv3 read client certificate B

Error: rlm_eap_tls: SSL_read failed in a system call (-1), TLS session fails. Info: rlm_eap_tls: Received EAP-TLS ACK message Auth: Login incorrect: [machine1.demo.fr/<no User-Password attribute>] (from client ap1 port 165689 cli 00c0.49e9.01ab)

Protocoles d'authentification rseau

126

S.Bordres

Authentification 802.1x -login/password (PEAP)

Protocoles d'authentification rseau

127

S.Bordres

Authentification 802.1x -login/password (PEAP)


Dans ce cas au lieu de fournir un certificat l'utilisateur fourni un login et un mot de passe. Le serveur Radius authentifie l'utilisateur sur une base qui contient le mot de passe des utilisateurs au lieu d'authentifier sur le certificat. Le client donne son login/password dans la configuration du supplicant. Tout le reste fonctionne exactement de la mme manire que les mthodes voques prcdemment. Divers type de base peuvent tre utilises, par exemple un domaine Windows ou bien une base LDAP. Un domaine Windows peut authentifier un login et un mot de passe mais pas donner des autorisations (Vlans). Une base Ldap peut faire les deux. => Voir la mthode pour dfinir ces bases au chapitre Dfinir une base dauthentification
Protocoles d'authentification rseau

128

S.Bordres

Authentification 802.1x -login/password (PEAP)

WIFI

in W

s ow d

Authentification au logon dun utilisateur

demo

Protocoles d'authentification rseau

129

S.Bordres

Authentification 802.1x -login/password (PEAP)

WIFI

ind W

s ow

Authentification au dmarrage de la machine

Au dmarrage le PC envoi comme identity : host/nom-machine

Avec utilitaire DELL 1450 il est possible de configurer un login/mot de passe qui sera utilis au dmarrage de la machine x

Protocoles d'authentification rseau

130

S.Bordres

Authentification 802.1x -login/password (PEAP)

Filaire

in W

s ow d

La configuration de lauthentification en filaire est identique au cas WIFI

Protocoles d'authentification rseau

131

S.Bordres

Authentification 802.1x -login/password (PEAP)


ctrl_interface_group=0

WIFI

x inu

ctrl_interface="/var/run/wpa_supplicant" eapol_version=1 ap_scan=2 network={ ssid="demo" scan_ssid=0 proto=WPA key_mgmt=WPA-EAP eap=PEAP

WPA_SUPPLICANT

Fichier /etc/wpa_supplicant.conf

pairwise=TKIP group=TKIP cnexact=no cncheck=demo.fr identity=dupont password=demo ca_cert="/root/cert/cademo.pem" phase1="peaplabel=0" phase2="auth=MSCHAPV2 }

wpa_supplicant Dndiswrapper i wlan0 c /etc/wpa_supplicant.conf


Protocoles d'authentification rseau

132

S.Bordres

Authentification 802.1x -login/password (PEAP)

Filaire

Lin

ux
network_list = all default_netname=default default { type = wired allow_types = all identity = dupont eap-peap { random_file = /dev/urandom root_cert = /root/cert/cademo.pem allow_types = eap_mschapv2 eap-mschapv2 { username = dupont password = mot-de-passe } } }

XSUPPPLICANT

Fichier /etc/xsupplicant.conf

xsupplicant i eth0 f

Protocoles d'authentification rseau

133

S.Bordres

Authentification 802.1x PEAP vs TLS


PEAP Pas besoin dIGC Ncessit davoir une base dutilisateurs (windows, ldap) Authentifie lutilisateur plus que la machine Problme de scurit avec identity Pour configurer une machine on a besoin du mot de passe de lutilisateur. Si lutilisateur change son mot de passe, il devra penser changer aussi dans sa configuration wifi. Si plusieurs utilisateurs sur mme poste ils utilisent tous le mme login/mot de passe

Protocoles d'authentification rseau

134

S.Bordres

Authentification 802.1x PEAP vs TLS


TLS Disposer dune IGC Pas besoin de base Windows, pas forcment besoin dune base LDAP. Certificat utilisateur (CNRS) : Dlai dexpiration trop court (1 an) Impose la prsence utilisateur pour configurer Renouvellement par lutilisateur (compliqu) Authentifie lutilisateur et pas la machine Pas de protection par passphrase sous windows et passphrase en clair sous Linux => risque de vol du certificat. Certificat machine (CNRS): Dlai plus long mais toujours trop court (2 ans) Gestion plus facile, ne ncessite pas la prsence de lutilisateur pour configurer Ce nest pas lutilisateur qui gre le renouvellement Authentifie bien la machine (si crois avec adresse MAC) Le vol a moins de consquences.

Protocoles d'authentification rseau

135

S.Bordres

Configuration Proxy
La configuration proxy est utilise pour r-orienter une requte vers un autre serveur radius ou bien pour tenir compte dun domaine (realm) pass dans lidentity. Exemple:Lorsquune requte de type host/cn-certificat (authentification au dmarrage) arrive on peut mettre dans le fichier users une entre host/cn-certificat. Mais si un requte arrive avec juste cn-certificat (authentification au logon) lentre prcdente dans users ne va pas matcher. Il vaut donc mieux mettre une entre cn-certificat et configurer le proxy comme suit: raddb.conf
Realm host { format = prefix delimiter = / ignore_default = no ignore_null = no }

Proxy.conf
Realm host { type =radius authhost = LOCAL accthost = LOCAL }

Dans ce cas les requtes prfixes par host sont rediriges vers le serveur radius local avec le mot host en moins.

Protocoles d'authentification rseau

136

S.Bordres

Dfinition dune base dauthentification

Utilisation dun base Windows Utilisation dune base LDAP

Protocoles d'authentification rseau

137

S.Bordres

Utilisation dune base Windows

Utilisation dune base Windows

Protocoles d'authentification rseau

138

S.Bordres

Utilisation dune base Windows


Sur le serveur Radius il faut mettre en oeuvre samba et plus particulirement winbind (rpm samba, samb-common, samba-client)
Fichier radiusd.conf mschap { authtype = MS-CHAP #require_encryption = yes #require_strong = yes with_ntdomain_hack = yes ntlm_auth = "/usr/bin/ntlm_auth --request-nt-key --domain=nom-domaine --username=%{Stripped-User-Name:-%{User-Name:-None}} --challenge=%{mschap:Challenge:-00} --nt-response=%{mschap:NT-Response:-00} }

Fichier smb.conf Pour rejoindre le domaine: net rpc join w nom-domaine -U administrateur

Protocoles d'authentification rseau

139

S.Bordres

Utilisation dune base LDAP

Utilisation dune base LDAP

Protocoles d'authentification rseau

140

S.Bordres

Utilisation dune base LDAP Pourquoi utiliser LDAP ?

Permet de centraliser toutes les demandes dauthentification dun site rseau, systme et applicatifs.

Permet de dcrire un grand nombre dattributs pour chaque utilisateur ou machine dans un schma (arbre)

Cest un standard

Dans le cas de Radius, on peut stocker dans une base LDAP des check-items et des reply-item. Donc une base LDAP peut servir pour authentifier et/ou autoriser

Protocoles d'authentification rseau

141

S.Bordres

Utilisation dune base LDAP Contenu de la base


Pour un utilisateur: Son userid ou CN de certificat = uid LDAP Son mot de passe La (ou les) adresse(s) MAC des postes sur lesquels il est autoris Le vlan (ou ssid) autoris Pour une machine: Son userid est ladresse MAC son mot de passe est son adresse MAC Le vlan (ou ssid) autoris. Dans le cas PEAP la base LDAP est utilise pour authentifier et autoriser Dans le cas TLS la base LDAP est utilise uniquement pour autoriser, la validation du certificat tant faite par le serveur radius.

Protocoles d'authentification rseau

142

S.Bordres

Principes dutilisation de LDAP


NAS Serveur Radius Serveur LDAP

Identity=user1

Identity=user1

Query: user1

Authentification

checkval
Access-chalenge

Check-item Reply-item

uid=user1
Check-item Reply-item

accept

Autorisation

Reply-item

Protocoles d'authentification rseau

143

S.Bordres

Principes dutilisation de LDAP

Toutes les communications radius-NAS-client sont identiques aux cas prcdents quelque soit la mthode d'authentification (Radius-mac ou EAP). Seule change la faon dont les autorisations et l'authentification sont faits. La base LDAP doit contenir une entre pour chaque client. Cette entre contient les valeurs de check-items et de reply-items Le serveur Radius demande au serveur LDAP de lui envoyer les check-items puis les reply-items. Le module checkval permet de vrifier si des check-items correspondent des request-items. Par exemple, l'adresse MAC.

Protocoles d'authentification rseau

144

S.Bordres

Mise en uvre de OPENLDAP

Pour mettre en uvre openldap il faut: - l'installer - Configurer le daemon - Crer un base

Protocoles d'authentification rseau

145

S.Bordres

Mise en uvre de OPENLDAP configuration du daemon

Fourni par FreeRadius


/etc/openldap/slapd.conf include database suffix rootdn rootpw /etc/openldap/schema/RADIUS-LDAPv3.schema bdb "dc=demo,dc=fr" "cn=Manager,dc=demo,dc=fr" testldap Qualification de la base

Protocoles d'authentification rseau

146

S.Bordres

Mise en uvre de OPENLDAP schma Radius


include /etc/openldap/schema/RADIUS-LDAPv3.schema

Il faut inclure dans la base Ldap le schma des attributs radius. Ce schma est fourni par freeradius dans: freeradius-x.xx/doc/RADIUS-LDAPv3.schema

Exemple: attributetype ( 1.3.6.1.4.1.3317.4.3.1.7 NAME 'radiusCallingStationId' DESC '' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )

Protocoles d'authentification rseau

147

S.Bordres

Mise en uvre de OPENLDAP schma Radius


Dand le fichier /etc/raddb/radiusd.conf, dans le module LDAP la ligne

dictionary_mapping = ${raddbdir}/ldap.attrmap
permet de mettre en rapport les noms d'attributs tels que dfinie dans freeradius et les noms d'attributs dfinis dans le schma LDAP.

Attributs radius Attributs ldap

checkItem checkItem checkItem checkItem

Called-Station-Id Calling-Station-Id LM-Password NT-Password

radiusCalledStationId radiusCallingStationId lmPassword userPassword

replyitem replyitem replyitem

Tunnel-Type Tunnel-Medium-Type Tunnel-private-group-id

radiustunneltype radiustunnelmediumtype radiustunnelprivategroupid

Protocoles d'authentification rseau

148

S.Bordres

Mise en uvre de OPENLDAP cration dune base

Exemple d'entre dans la base LDAP


dn: uid=user1,ou=users,dc=demo,dc=fr objectclass: Inetorgperson objectclass: radiusProfile uid: user1 userPassword: 0xBFAD8787F5DC64B730028C20A64EBA94 cn: user1 sn: user1 radiusCallingStationId: 00-0F-1F-16-C9-CC radiustunneltype: VLAN radiustunnelmediumtype: 6 radiustunnelprivategroupid: 12 Mot de passe SMB Utile uniquement en EAP/PEAP

Protocoles d'authentification rseau

149

S.Bordres

Configuration Radius pour LDAP (radiusd.conf)


ldap { server = "ldap.demo.fr" ou bien server="127.0.01" identity = "cn=manager,dc=demi,dc=fr" password = testldap basedn = "dc=demo,dc=fr" filter = "(uid=%{Stripped-User-Name:-%{User-Name}})" base_filter = "(objectclass=radiusprofile)" start_tls = no # tls_cacertfile = /path/to/cacert.pem # tls_cacertdir = /path/to/ca/dir/ # tls_certfile = /path/to/radius.crt # tls_keyfile = /path/to/radius.key # tls_randfile = /path/to/rnd # tls_require_cert = "demand" # default_profile = "cn=radprofile,ou=dialup,o=My Org,c=UA" # profile_attribute = "radiusProfileDn" access_attr = "dialupAccess" dictionary_mapping = ${raddbdir}/ldap.attrmap ldap_connections_number = 5 password_attribute = userPassword # groupname_attribute = cn # groupmembership_filter = "(|(&(objectClass=GroupOfNames)(member=%{LdapUserDn}))(&(objectClass=GroupOfUniqueNames)(uniquemember=%{Ldap-UserDn})))" # groupmembership_attribute = radiusGroupName timeout = 4 timelimit = 3 net_timeout = 1 # compare_check_items = yes # do_xlat = yes access_attr_used_for_allow = yes } Protocoles d'authentification rseau
150
S.Bordres

Configuration Radius pour LDAP (radiusd.conf)

authorize { preprocess auth_log eap files ldap checkval }

authenticate { Auth-Type MS-CHAP { mschap } eap }

Protocoles d'authentification rseau

151

S.Bordres

Authentification Radius-Mac avec LDAP


username envoy dans access-request

uid=00904c871213,ou=machines,dc=demo,dc=fr objectclass: Inetorgperson objectclass: radiusProfile uid: 00904c871213 userPassword: 00904c871213 cn: 00904c871213 sn: 00904c871213 radiusCallingStationId: 00-90-4c-87-12-13 radiustunneltype: VLAN radiustunnelmediumtype: 6 radiustunnelprivategroupid: 12

Mot de passe envoy dans access-request

Protocoles d'authentification rseau

152

S.Bordres

Authentification 802.1x PEAP avec LDAP

dn: uid=user1,ou=users,dc=demo,dc=fr objectclass: Inetorgperson objectclass: radiusProfile uid: user1 userPassword: 0xBFAD8787F5DC64B730028C20A64EBA94 cn: user1 sn: user1 radiusCallingStationId :00-90-4c-87-12-13 radiustunneltype: VLAN radiustunnelmediumtype: 6 radiustunnelprivategroupid: 12

Protocoles d'authentification rseau

153

S.Bordres

Authentification 802.1x TLS avec LDAP


CN du certificat transmis par Radius au serveur LDAP
dn: uid=machine.demo.fr,ou=machines,dc=demo,dc=fr objectclass: Inetorgperson objectclass: radiusProfile uid: machine.demo.fr cn: machine.demo.fr sn: machine;demo.fr radiusCallingStationId :00-90-4c-87-12-13 radiustunneltype: VLAN radiustunnelmediumtype: 6 radiustunnelprivategroupid: 12

Protocoles d'authentification rseau

154

S.Bordres

Authentification 802.1x avec LDAP

Comment autoriser un utilisateur se connecter depuis plusieurs postes de travail ?

dn: uid=user1,ou=users,dc=demo,dc=fr objectclass: Inetorgperson objectclass: radiusProfile uid: user1 userPassword: 0xBFAD8787F5DC64B730028C20A64EBA94 cn: user1 sn: user1 radiusCallingStationId :00904c871213 radiusCallingStationId: 00-0F-1F-16-C9-CE radiustunneltype: VLAN radiustunnelmediumtype: 6 radiustunnelprivategroupid: 15

Protocoles d'authentification rseau

155

S.Bordres

Documentation
Livre: Radius par Jonathan Hassel (0'Reilly) An analysis of Radius Authentication protocol Installing and operating a Radius server 802.1X : Solution d'authentification scurise pour le futur rseau sans fil de l'Universit Louis Pasteur RFC2865: RADIUS :
http://www.untruth.org/~josh/security/radius/radius-auth.html http://www.keller.com/wifi/CNIT107HW7.html

http://2003.jres.org/actes/paper.143.pdf

http://www.ietf.org/rfc/rfc2868.txt

RFC2868:Radius attribute for tunnel protocol support : http://www.ietf.org/rfc/rfc2865.txt RFC2869:Radius extensions : RFC3579:Radius support for EAP : WPA/WPA2 Freeradius
http://www.ietf.org/rfc/rfc2869.txt http://www.ietf.org/rfc/rfc3579.txt

http://www.ossir.org/sur/supports/2005/ossir_wpa_wpa2.pdf http://www.freeradius.org

Protocoles d'authentification rseau

156

S.Bordres

Vous aimerez peut-être aussi