Protocoles d'authentification réseau 1 S.Bordères
Protocoles d’authentification réseau
Sans-fil et filaire
Introduction
Qu'est-ce que l'authentification réseau ?
Pourquoi faire de l'authentification réseau ?
Intérêt de l'authentification réseau
Authentifier quoi ? Des utilisateurs ou des machines ?
Eléments pour authentifier
Autoriser quoi ?
Le protocole Radius
Bases du protocole
Support des Vlans
Support EAP
Freeradius
Mise en oeuvre
Authentification par adresse MAC (Radius-mac) 9Configuration des équipements réseau
•WIFI (borne HP et Cisco)
•Filaire (switch HP et Cisco) 9Configuration du serveur Radius 9Configuration des clients
Authentification 802.1X
9Configuration des équipements réseau
• WIFI (borne HP et Cisco)
•Filaire (switch HP et Cisco) 9Configuration du serveur Radius 9Configuration des clients
•TLS - Windows et Linux
•PEAP - Windows et Linux
Plan
Protocoles d'authentification réseau 3 S.Bordères
Il s'agit d'authentifier une machine lorsqu'elle se branche sur le réseau afin de lui autoriser ou refuser l'usage du réseau.
On authentifie pour délivrer des autorisations
Cette authentification est indépendante d'autres authentifications vers des systèmes d'exploitation ou applications
Protocoles d'authentification réseau 4 S.Bordères
•Branchement physique sur le réseau
•Authentification
•Autorisation d'usage
•Authentification sur le système d'exploitation (windows, Linux…)
•Authentification sur une application A ut he nt if ic at io n
A ut he nt if ic at io n ré se au ré se au
Qu'est-ce que l'authentification réseau ?
A ut he nt if ic at io n A ut he nt if ic at io n ap pl ic at iv es ap pl ic at iv es
Base De Données Commune (LDAP)
Protocoles d'authentification réseau 5 S.Bordères
Pourquoi faire de l’authentification réseau ?
•Sécuriser un réseau filaire ou sans-fil
•Pour interdire les postes inconnus
•Pour placer les postes connus a des endroits spécifiques du réseau (vlan) de façon dynamique.
•Pour savoir quelle machine est connectée et où elle est connectée
Intérêt pour un réseau filaire Intérêt pour un réseau filaire
•Savoir qui se connecte sur quelle prise
•Eviter une utilisation illicite du réseau par des « inconnus »
•Affecter les machines sur des réseaux virtuels (cloisonnement) Intérêt pour un réseau sans
Intérêt pour un réseau sans--filfil
•Obligatoire pour intégrer le réseau filaire cad que
les machines sans-fil travaillent comme les machines filaires
• Affecter une machine sur le même vlan que lorsqu’elle se connecte sur le réseau filaire.
Intérêts de l’authentification réseau ?
Protocoles d'authentification réseau 7 S.Bordères
La réponse dépend de la destination et/ou de l’architecture du réseau.
Une authentification par utilisateur implique que les autorisations sont accordées quelque soit la machine utilisée.
Une authentification par machine implique qu’une machine recevra les mêmes autorisations quelque soit l’utilisateur qui l’utilise.
Dans chaque cas il est possible de croiser les éléments d’authentification avec l’adresse MAC de la machine.
Protocoles d'authentification réseau 8 S.Bordères
De quoi dispose t’on pour authentifier ?
•L’adresse MAC de la carte Ethernet
•Une base de login/mot de passe (windows, LDAP…)
•De certificats (utilisateurs ou machines)
Obligatoire : ne pas rajouter de contraintes sur l’utilisateur Et/ou
Et/ou
Eléments pour authentifier
Protocoles d'authentification réseau 9 S.Bordères
Autoriser quoi ?
On autorise une machine à utiliser tout ou partie d’un réseau.
Dans un réseau plat (sans sous-réseau) on autorise tout le réseau obligatoirement Dans un réseau segmenté on autorise la connexion sur un sous-réseau (Vlan)
Vlan2 Vlan3
Routeur
switch
switch
Rappel sur les Vlans
Routeur
Réseau3
Réseau2 Lien 802.1Q Trunk (cisco)
Tagged (HP)
Vision logique correspondante
Protocoles d'authentification réseau 11 S.Bordères
Protocoles propriétaires => Exemple: VMPS de Cisco
Authentification sur adresse MAC uniquement Réseau filaire
Protocoles ouverts => Radius et 802.1x
Authentification sur adresse MAC, Login/password Certificats, cartes à puce ….
Réseau filaire et sans-fil
Protocoles d'authentification réseau 12 S.Bordères
Deux possibilités :
Authentification par adresse MAC (Radius-Mac)
Authentification 802.1x
Protocoles d’authentification: Radius
Protocoles d'authentification réseau 13 S.Bordères
Authentification par adresse MAC Authentification par adresse MAC
Lorsque un poste se connecte sur un port le switch interroge
le serveur radius
Le serveur radius Interroge sa base de données pour mettre en correspondance l’adresse MAC et le N° de vlan
Fichier local Et/ou Base Ldap Et/ou Base sql L’adresse MAC sert d’identifiant
Serveur radius
Protocoles d’authentification: Radius
Le switch relaie la demande du poste
Le serveur radius Interroge sa base de données pour trouver l’identifiant
Fichier local Et/ou Base Ldap Et/ou Base sql Et/ou
Domaine windows L’identifiant et soit
un login/password soit un certificat
Serveur radius
Protocoles d’authentification: Radius et 802.1x
Protocoles d'authentification réseau 15 S.Bordères
EA P
Autres
EAP Autres
Serveur radius
Avant authentification
Après authentification Port contrôlé
Port non contrôlé
Il y a une communication entre le client et le serveur Radius avec le protocole EAP
EAP over LAN
EAP over Radius
Protocoles d'authentification réseau 16 S.Bordères
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'intérêt de l'architecture de EAP est de pouvoir utiliser divers mécanismes d'authentification sans que l'équipement réseau (NAS) aient besoin de les connaître. Dans ce cas il agit comme un tunnel transparent vers un serveur
qui lui implémente les mécanismes souhaités.
Par exemple: Mot de passe, certificats, carte à puce ….
Protocoles d’authentification: Radius et 802.1x
Protocoles d'authentification réseau 17 S.Bordères
Principales méthodes 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: EAP
NAS
Authenticator (802.1x) Radius client NAS
Authenticator (802.1x) Radius client
Borne WIFi
Commutateur
serveur Radius
Méthodes d'authentification et d'autorisation
LDAP Domaine Windows
supplicant
supplicant
Base sql
Protocoles d’authentification:Terminologie
Protocoles d'authentification réseau 19 S.Bordères
Protocoles d'authentification réseau 20 S.Bordères
Remote Access Dial In User Service
Protocole d'authentification d'utilisateurs distants
Initialement plutôt utilisé par les ISP Pour authentifier leurs utilisateurs
Développé par Livingston Enterprises
Le protocole de base de RADIUS est décrit dans le RFC 2865.
Utilise UDP sur le port 1812 (anciennement 1645)
Le protocole Radius
Protocoles d'authentification réseau 21 S.Bordères
Radius est un serveur de type AAA
A
uthentificationA
uthorizationA
ccountingQui me parle ?
Quelles autorisations je lui accorde ?
Que fait-il ?
Le protocole Radius
Le protocole utilise 4 types de paquets suffisants pour assurer toutes les transactions: (hors accounting)
Access-Request Access-Accept Access-Reject Access-Challenge
Le protocole Radius: les types de paquets
Protocoles d'authentification réseau 23 S.Bordères
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 requête du client après interrogation de sa base d'authentification.
Ce paquet peut contenir une liste d'attributs correspondant aux services qui sont autorisés (par exemple le vlan).
Protocoles d'authentification réseau 24 S.Bordères
Access-reject
Emis par le serveur radius pour spécifier au client que sa requête est rejetée.
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 complémentaires.
Le protocole Radius: les types de paquets
Protocoles d'authentification réseau 25 S.Bordères
Code(1) Iden-
tifier(1) Longueur(2) Authentificateur(16) Attributs et valeurs(variable)
Codes
1 - access-request 2 - access-accept 3 - Access-reject 4 - Accounting-request 5 - Accounting-response 11- Access-challenge
Identifier
utilisé pour associer les requêtes et les réponses.
Authentificateur
Utilisé pour que l'équipement NAS puisse authentifier les réponses du serveur -> Request authenticator
-> Response authenticator
Attributs et valeurs
Ensemble d'attributs et leur valeur qui indique quels services sont demandés ou autorisés.
Le protocole Radius: format des paquets
Code(1) Iden-
tifier(1) Longueur(2) Authentificateur(16) Attributs et valeurs
Authentificateur
Lorsque le client NAS envoi un paquet access-request il inclut un authentificateur appelé request-authenticatorqui est une séquence aléatoire.
Le serveur répond par un paquet access-accept ou accept-reject ou accept-challenge avec un response-authenticatorcomposé 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 protocole Radius: les types de paquets
Protocoles d'authentification réseau 27 S.Bordères
Les transactions RADIUS ont pour but de véhiculer des attributs et leur valeur entre le client NAS et le serveur.
Ces attributs et leur valeur sont appelés 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 paramètres des autorisations qu'il délivre (vlan…) ou bien demander des informations
complémentaires.
Code(1) Iden-
tifier(1) Longueur(2) Authentificateur(16)
N°
attribut longueur valeur
Protocoles d'authentification réseau 28 S.Bordères
Code(1) Iden-
tifier(1) Longueur(2) Authentificateur(16)
N°
attribut longueur valeur
Un attribut est caractérisé par son type et sa valeur (éventuellement nulle) Integer
Enumerated IP address
Chaîne de caractères Date
Binaire Vendor-specific
Le protocole Radius: les attributs
Protocoles d'authentification réseau 29 S.Bordères
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 numéro de téléphone sur lequel il faut rappeler le client. Ce qui est inutile dans notre cas…
Seront décrits ici uniquement les attributs intéressants pour l'authentification 802.1X et Radius Mac
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
Le protocole Radius: les attributs standards
Protocoles d'authentification réseau 31 S.Bordères
Chaque attribut possède un numéro d'identification.
Seul ce numéro est transmis dans les paquets .
La correspondance entre le nom de l'attribut, son numéro et son type est réalisé dans un dictionnaire.
N° attribut Nom d'attribut type
Protocoles d'authentification réseau 32 S.Bordères
Les fabricant de matériel réseau (NAS) ont parfois intégré à leurs équipements des attributs spécifiques en plus des attributs standards définis dans le RFC.
Ces attributs sont encapsulés dans l'attribut standard vendor-specific qui a pour numero 26. Ils sont appelés VSA = Vendor Specific Attribut
Code(1) Iden-
tifier(1) Longueur(2) Authentificateur(16)
26 longueur Vendor ID
Attribut
number longueur valeur
Le protocole Radius: les attributs vendor
Protocoles d'authentification réseau 33 S.Bordères
Code(1) Iden-
tifier(1) Longueur(2) Authentificateur(16)
26 longueur Vendor ID
Attribut
number longueur valeur
Vendor ID:
N° d'immatriculation du fabricant
(NMPECS= Network Management Private Enterprise Codes (RFC1700) Attribut number
Comme pour les attributs standards, les vendor-attributs possèdent un numéro d'identification. Ce numéro est répertorié dans un dictionnaire spécifique au fabricant.
Longueur
Valeur
Le protocole Radius: les attributs vendor
SSID=visiteurs
Renvoi à une borne cisco AP1200 le SSID
autorisé pour un utilisateur. Ce SSID est égale à un VLAN
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)
Nom de l'attribut Valeur de l'attribut
Exemple 1
Le protocole Radius: les attributs vendor
Protocoles d'authentification réseau 35 S.Bordères
¾Le support des attributs de tunnel est une extension du protocole de base de RADIUS dont le but initial est de créer des tunnels avec des clients distants.
¾Ces extensions sont décrites dans le RFC 2868
¾Le support des VLANs est réalisé par le biais des attributs de tunnel
Tunnel-type
Tunnel-Medium-Type Tunnel-Private-group-Id Les attributs concernés sont :
Protocoles d'authentification réseau 36 S.Bordères
Tunnel-Type
Il y a 13 types de tunnels. Bien que le RFC ne parle que des 12 premiers.
Le 13ème étant les VLAN 802.1q.
1 Point-to-Point Tunneling Protocol (PPTP) 2 Layer 2 Forwarding (L2F)
3 Layer 2 Tunneling Protocol (L2TP)
4 Ascend Tunnel Management Protocol (ATMP) 5 Virtual Tunneling Protocol (VTP)
6 IP Authentication Header in the Tunnel-Mode (AH) 7 IP-in-IP encapsulation (IP-IP)
8 Minimal IP-in-IP Encapsulation (MIN-IP-IP)
9 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
Les extensions du protocole Radius: support des vlans
Protocoles d'authentification réseau 37 S.Bordères
Tunnel-Medium-Type
Cet attribut indique quel type de transport est utilisé. Il y a 14 types possibles.
1 IPv4 2 UPv6
3 NSAP
4 HDLC
5 BBN 1822 6 802 7 E.163 (POTS)
8 E.164 (SMDS, Frame relay, ATM) 9 F.69 (Telex)
10 X.121 11 IPX 12 Appletalk 13 Decnet IV 14 Banyan Vines
Ethernet
Les extensions du protocole Radius: support des vlans
Tunnel-Private-Group-Id
Indique un group-id pour un tunnel spécifique. Dans le cas des VLANs il s'agit du numéro de Vlan.
Autres attributs tunnel
Il existe d'autres attributs de tunnel, non utilisés pour nos besoins
Les extensions du protocole Radius: support des vlans
Protocoles d'authentification réseau 39 S.Bordères
Radius a été étendu pour supporter le protocole EAP et donc l'authentification 802.1x.
Pour cela 2 attributs ont été ajoutés:
Message-Authenticator EAP-Message
RFC: 2869 radius extension 3579 radius support for EAP 3748 EAP
2716 EAP/TLS
3580 802.1x radius usage guidelines Les paquets EAP sont encapsulés dans l'attribut EAP-Message
Message-Authenticator est un attribut qui permet de signer les requêtes qui contiennent des attributs EAP-Message. (calcul MD5 sur le contenu d'un access-request + secret partagé)
Protocoles d'authentification réseau 40 S.Bordères
EAP-request =TLS start EAP-Reply=Client_hello EAP_request=Server_hello, certificat+clé publique
3 4
5 6 EAP-reply=Certificat+clé publique
Calcul clé principale
Calcul clé principale
7 7
EAP-request=TLS_finished EAP-request=TLS_finished
8 EAP-reply= vide 8
EAP-reply= success+clé de session 9
EAP-reply= success EAP-key=Clé WEP ou WPa
EAP over LAN EAP over RADIUS
Les extensions du protocole Radius: support EAP (802.1x)
Authentification avec certificat (TLS)
EAP-request =identity
EAP-reply=identity=CN 1 2
Protocoles d'authentification réseau 41 S.Bordères
1- Le NAS envoi au client une requète EAP lui demandant son identité 2- Le client répond avec le CN comme identité
3- Le serveur démarre la séquence TLS par l’envoi du message TLS_start 4- Le client répond par un message client_hello :
La version de TLS
Un challenge (nombre aléatoire) Un identifiant de session
La liste des algorithmes de chiffrement supportés par le client 5- Le serveur répond par un message server_hello
Son certificat et sa clé publique
Demande au client d’envoyer 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 vérifie le certificat du serveur et envoi le sien et sa clé publique
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 échangés)
8- Le client renvoi une réponse EAP vide et le serveur répond 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 l’envoi au client.
Dans le cas d’authentification EAP/TLS la clé de session principale n’est pas utilisée.
Seul l’échange de validation mutuelle des certificats est utile
Les extensions du protocole Radius: support EAP (802.1x)
Authentification avec certificat (TLS)
Protocoles d'authentification réseau 43 S.Bordères
Access-request (EAP-message)
Client NAS Serveur d'authentification
EAP-request/identity
EAP-Response/identity (EAP-message- identity=login)
authentification
Access-accept +Clé de session
OK
EAP key clé WEP/WPA
Génération clé WEP/WPA
Authentification avec login/password (PEAP)
Authentification du client (mschapv2) Tunnel TLS chiffré
TLS pour création d’un tunnel chiffré
Protocoles d'authentification réseau 44 S.Bordères
EAP-request =TLS start EAP-Reply=Client_hello EAP_request=Server_hello, certificat+clé publique
3 4
5 Calcul clé de
session principale
Calcul clé de session principale
6 6
EAP-request=PEAP_finished EAP-request-PEAP_finished
7 7
EAP-reply= vide
EAP-reply= success+clé de session 8
EAP-reply= success EAP-key=Clé WEP ou WPa
EAP over LAN EAP over RADIUS
Les extensions du protocole Radius: support EAP (802.1x)
Authentification avec login/password (PEAP)
Tunnel chiffré
EAP-request =identity
EAP-reply=identity=login 1 2
Protocoles d'authentification réseau 45 S.Bordères
Les extensions du protocole Radius: support EAP (802.1x)
Remarques sur l’identité
9Dans les phases 1 et 2 l’identité (réponse identity) transmise n’est pas cryptée 9Ce n’est pas directement ce champ qui permet l’authentification. Mais c’est lui qui est utilisé pour l’autorisation.
9Pour TLS : C’est la validation mutuelle des certificats qui constitue l’authentification 9Pour PEAP: C’est le username transmis dans le tunnel (crypté) qui sert à faire l’authentification par vérification du mot de passe.
9Dans tous les cas il est possible de donner une identité différente du CN ou du username. Ceci afin que l’identité réelle ne circule pas en clair.
Dans la réalité il faut être prudent car il y a risque qu’un utilisateur s’authentifie avec sa propre identité mais puisse acquérir les autorisations d’un autre.
Les extensions du protocole Radius: support EAP (802.1x)
Remarques sur le cryptage sans-fil
¾Pour EAP/PEAP les échanges nécessaires à l’authentification
sont cryptés dans un tunnel TLS et ce même si ensuite aucune méthode de cryptage n’est configurée.(en filaire également)
¾Même si 802.1x n’impose pas le cryptage des communications il est FORTEMENT recommandé de crypter avec une méthode « sérieuse ». (au moins WPA)
¾La borne doit gérer la transmission automatique des clés de cryptage vers les postes clients et, de préférence, la rotation dynamique de ces clés.
Protocoles d'authentification réseau 47 S.Bordères
Remarques sur le cryptage sans-fil Méthodes de cryptage:
WEP : dépassé ne pas utiliser
WPA : Associé à TKIP pour la rotation Initialisation des clés par 802.1x Changement de la clé tous les 10Ko Clé 128 bits (RC4)
vecteur d’initialisation de 48 bits MIC: Contrôle d’intégrité WPA2: = 802.11i
Principe identique à WPA avec:
CCMP pour la rotation des clés AES pour le cryptage
Protocoles d'authentification réseau 48 S.Bordères
Source Hervé shauer Consultants
http://www.hsc.fr/ressources/presentations/ossir-wpa-wpa2/img0.html
"la durée de vie d'une clé wep est une heure"
Dans le cas du WIFI
Les extensions du protocole Radius: support EAP (802.1x)
Protocoles d'authentification réseau 49 S.Bordères
EAP TLS
Radius EAP TLS
802.11b/g 802.3
IP
IP UDP
Les extensions du protocole Radius: support EAP (802.1x)
Imbrication des protocoles Imbrication des protocoles
IP TCP ou UDP
Cryptage WEP, ou WPA ou 802.11i (WPA2) MSCHAPv2
TLS TLS MSCHAPv2
Check Check items items
Processus Processus d'authentification d'authentification et autorisation et autorisation
Base
Request-items
Check
Check--item=item=requestrequest--itemsitems?? Mac-address
Processus d’authentification et autorisation
Protocoles d'authentification réseau 51 S.Bordères
•L'équipement NAS envoi un access-requestcontenant une liste d'attributs appelés 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 associée à chaque utilisateur/machine connu.
•Radius interroge sa base pour trouver une entrée qui correspond au username envoyé et dont les check-items matches les request-item.
•Si aucune correspondance n'est trouvée un access-rejectest envoyé.
•Si une correspondance est trouvée, une reply-list est formée à partir des reply-itemscontenu dans la base. Par exemple, le numéro 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 réseau 52 S.Bordères
Identifiant : Un username fournis par le client radius (switch) ou par le supplicant
La méthode d’authentification:
Elle peut être indiquée explicitement dans la base de données ou bien être déduite 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 d’une authentification par adresse MAC. Dans ce cas le mot de passe est l’adresse MAC.
L’adresse MAC
Les reply-items: Exemple: le ssid ou le N° de vlan.
Eléments constitutifs de la base de données
Protocoles d'authentification réseau 53 S.Bordères
Freeradius Freeradius
Freeradius est une implémentation open source du protocole Radius.
www.freeradius.org
Fonctionnalités:
- 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
Freeradius
Protocoles d'authentification réseau 55 S.Bordères
tar xvzf freeradius-1.0.1.tar.gz.
cd freeradius-1.0.1
CFLAGS="-I/usr/include/et" ./configure --sysconfdir=/etc make
make install
/etc/init.d/radiusd start Ou bien
radiusd –X (mode debug)
Logs dans /var/log/radius/radius.log Installation
Démarrage
Protocoles d'authentification réseau 56 S.Bordères
Les fichiers de configurations sont dans /etc/raddb radiusd.conf clients.conf eap.conf users
dictionnary Ldap.attrmap Oraclesql.conf Postgresql.conf Sql.conf
cert Configurations principales
Configurations particulières
Gestion des certificats
Freeradius: Fichiers de configuration
Protocoles d'authentification réseau 57 S.Bordères
Dans ce fichier doivent être référencés tous les clients Radius (NAS) autorisés à interroger le serveur.
client adresse-ip{
secret = mot-de-passe shortname = nom
nastype = type-materiel }
Doit être présent aussi dans le NAS
Freeradius: Fichiers de configuration : Clients.conf
•Chaque entrée commence par un identifiant suivi par une liste d'item à vérifier (check itemcheck item). Sur une seule ligne.
•Les lignes suivantes commencent par une tabulation suivie d'une liste d'items de réponse (replyreplyitemitem).
•Il peut y avoir plusieurs reply item séparés par des virgules et sur plusieurs lignes.
•Le fichier user est la base de données locale. C’est un fichier plat.
•Il est constitué d'une succession "d'entrée". Chacune correspondant à un utilisateur ou machine.
•Le fichier est parcouru séquentiellement du haut vers le bas.
Freeradius: Fichiers de configuration - users
Protocoles d'authentification réseau 59 S.Bordères
Dupont
Dupont AuthAuth--TypeType:= EAP, Calling:= EAP, Calling--StationStation--IdId== "0012f0ae2546"== "0012f0ae2546"
Service
Service--Type = Type = FramedFramed--UserUser,, Tunnel
Tunnel--type = VLAN,type = VLAN, Tunnel
Tunnel--Medium-Medium-Type = 6,Type = 6, Tunnel
Tunnel--private-private-Group-Group-ID = 15ID = 15 DEFAULT
DEFAULT AuthAuth--TypeType:= := rejectreject, , FallFall--TroughTrough= 0= 0 Service
Service--Type = Type = FramedFramed--UserUser
username Type d'authentification Adresse MAC
Entrée par défaut Rejet de la requête
Check items
Reply items
Protocoles d'authentification réseau 60 S.Bordères
Auth-Type:
attribut spécial permettant de spécifier le type d'authentification à appliquer à une entrée.
Les types possibles peuvent être trouvés 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
Reject permet de refuser inconditionnellement une connexion.
Accept permet d'accepter inconditionnellement une connexion.
Freeradius: Fichiers de configuration - users
Protocoles d'authentification réseau 61 S.Bordères
Les opérateurs
Attribute==valeur (check-item)
Match si l'attribut est présent et est égale à cette valeur.
Attribute!=valeur (check-item)
Match si l'attribut est présent et n'est pas égale à cette valeur.
Attribute> valeur, >=, <, <= (check-item)
Match si l'attribut est présent et est > ou >= ou < ou <= à cette valeur.
Freeradius: Fichiers de configuration - users
Les opérateurs
Attribute=~expression (check-item)
Match si l'attribut match l'expression régulière..
Attribute!~expression (check-item)
Match si l'attribut ne match pas l'expression régulière.
Attribute*=value (check-item)
Match si l'attribut est présent dans la requête.
La valeur n'a pas d'importance.
Attribute!=value (check-item)
Freeradius: Fichiers de configuration - users
Protocoles d'authentification réseau 63 S.Bordères
Les opérateurs
Attribute= valeur (reply-item)
Ajoute l'attribut à la liste des reply-items .
Attribute:=valeur (check-item/reply-item) 9Comme check-item, match toujours et
remplace ou ajoute l'attribut aux configuration-items.
9Comme reply-item ajoute l'attribut à la liste des reply-items.
Attribute+=value (check-item/reply-item) 9Comme check-item match toujours et rajoute l'attribut au request-item.
9Comme repy-item rajoute l'attribut au request-item.
Protocoles d'authentification réseau 64 S.Bordères
Liste de paramètres de fonctionnement Déclaration de modules
Appel des modules
Format général du fichier
Freeradius: Fichiers de configuration – radiusd.conf
Protocoles d'authentification réseau 65 S.Bordères
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
Freeradius: Fichiers de configuration – radiusd.conf
#listen{
# IP address on which to listen.
# Allowed values are:
# dotted quad (1.2.3.4)
# hostname (radius.example.com)
# wildcard (*)
# ipaddr = *
# Port on which to listen.
# Allowed values are:
# integer port number (1812)
# 0 means "use /etc/services for the proper port"
# port = 0
# Type of packets to listen for.
# Allowed values are:
Listen:
Utile uniquement lorsque le client peut être sur la machine où tourne Radius
Freeradius: Fichiers de configuration – radiusd.conf
Protocoles d'authentification réseau 67 S.Bordères
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
Paramétrage des logs
Protocoles d'authentification réseau 68 S.Bordères
security {
max_attributes = 200 reject_delay = 1 status_server = no }
proxy_requests = yes
$INCLUDE ${confdir}/proxy.conf
$INCLUDE ${confdir}/clients.conf snmp = no
$INCLUDE ${confdir}/snmp.conf
Paramètres imposants des limitations pour contrarier certains types d'attaques.
Limite le nombre d'attributs par requête Autorise un délai de réponse pour freiner une attaque type DoS
Interdit/autorise la requête status-server
Autorise/interdit les requêtes proxy Inclusion des autres fichiers de configuration
Autorise/interdit le support SNMP
Freeradius: Fichiers de configuration – radiusd.conf
NAS autorisés à communiquer avec le serveur
Protocoles d'authentification réseau 69 S.Bordères
Déclaration des modules Modules {
nom1 {
……
} nom2 {
……
} .
. . nom3 {
….
} }
Nom du module: correspond à une librairie rlm_nom1 Ces librairies sont situées dans /usr/local/lib.
Paramètres du module
Freeradius: Fichiers de configuration – radiusd.conf
Module d'authentification Unix à partir d'un fichier de style /etc/passwd unix{
cache = no cache_reload = 600 passwd = /etc/passwd shadow = /etc/shadow group = /etc/group pap{
encryption_scheme = crypt }
chap{
authtype = CHAP }
pam{
pam_auth = radiusd }
Module d'authentification PAP
Module d'authentification CHAP
Module d'authentification PAM
Mise en cache éventuelle de passw, shadow et group
Emplacement des fichiers
Freeradius: Fichiers de configuration – radiusd.conf
Protocoles d'authentification réseau 71 S.Bordères
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}"
}
$INCLUDE ${confdir}/eap.conf Inclusion du module d'authentification EAP
Module d'authentification mschap
pour authentification sur un domaine Windows
Requête à destination du contrôleur de domaine (nécessite winbindd et nmbd)
Protocoles d'authentification réseau 72 S.Bordères
ldap{
server = "ldap.your.domain"
# 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=%{Ldap- UserDn}))(&(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 serveur LDAP (voir plus loin)
Freeradius: Fichiers de configuration – radiusd.conf
Protocoles d'authentification réseau 73 S.Bordères
#passwdetc_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 {
# filename = /etc/group
# format = "=Group-Name:::*,User-Name"
# hashsize = 50
# ignorenislike = yes
# allowmultiplekeys = yes
# delimiter = ":"
#}
passwdpermet de spécifier le format de fichier de type /etc/passwd
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 }
Freeradius: Fichiers de configuration – radiusd.conf
Protocoles d'authentification réseau 75 S.Bordères
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 requête avec une liste de check-item
(utilisé avec LDAP)
Protocoles d'authentification réseau 76 S.Bordères
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 définir où se trouve le fichier users
Freeradius: Fichiers de configuration – radiusd.conf
Protocoles d'authentification réseau 77 S.Bordères 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 création de logs détaillés
Freeradius: Fichiers de configuration – radiusd.conf
authorize{
preprocess
# auth_log
# attr_filter
chap mschap
# digest
# IPASS
suffix host eap files
# sql
# etc_smbpasswd
ldap
Authorizationis 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.
Fichier docs/aaa.txt
http://lists.cistron.nl/pipermail/freeradius-users/2002-December/014730.html Voir discussion sur authorize/authenticate
Freeradius: Fichiers de configuration – radiusd.conf
Protocoles d'authentification réseau 79 S.Bordères
authenticate {
Auth-Type PAP { pap }
Auth-Type CHAP { chap }
Auth-Type MS-CHAP { mschap }
# digest
# pam
unix
# Auth-Type LDAP {
# ldap
# }
eap }
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 MS- CHAP 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.
Fichier docs/aaa.txt
Protocoles d'authentification réseau 80 S.Bordères
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 }
. . .
Freeradius: Fichiers de configuration – radiusd.conf
Protocoles d'authentification réseau 81 S.Bordères
tls{
private_key_password = clé-privée
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}
}
TLS doit toujours être configuré pour TLS ou PEAP
Les certificats du serveur et de l'autorité sont stockés dans /etc/raddb/certs
Freeradius: Fichiers de configuration – eap.conf
Impose que le username envoyé soit égal au CN
peap{
default_eap_type = mschapv2 copy_request_to_tunnel = yes use_tunneled_reply = yes }
mschapv2{ } } (fin module eap)
Freeradius: Fichiers de configuration – eap.conf
Permet de copier les items dans le tunnel TLS
Protocoles d'authentification réseau 83 S.Bordères
Configurer les équipements réseau
Configurer les vlans dans ces équipements
Configurer les serveurs Radius à utiliser dans ces équipements
Configurer les cryptages (WIFI)
Configurer les fichier USERS de radius
Cisco HP
Radius-mac
802.1X
Protocoles d'authentification réseau 84 S.Bordères
Remarque importante Remarque importante
Dans le cas du WIFI ne pas se contenter d’une authentification Dans le cas du WIFI ne pas se contenter d’une authentification
par adresse par adresse MAC MAC. .
L’adresse MAC n’est pas cryptée L’adresse MAC n’est pas cryptée
Sur réseau WIFI
Authentification par adresse MAC (radius-mac)
Protocoles d'authentification réseau 85 S.Bordères
Configuration des équipements réseau
Authentification par adresse MAC (radius-mac)
Bornes et switch
HP et Cisco
interface FastEthernet0/24 switchport trunk native vlan 12 switchport mode trunk
Authentification par adresse MAC (radius-mac) WIFI
Inter-connexion des équipements Connexion d’une borne sur un
Connexion d’une borne sur un switchswitchCiscoCisco29502950
Connexion d’une borne sur un
Connexion d’une borne sur un switchswitchHP 2626HP 2626
Vlan sur lequel la borne possède une adresse IP
vlan 12 untagged 24
Protocoles d'authentification réseau 87 S.Bordères
Sur la borne il faut créer un SSID générique sur lequel tous les postes se connectent.
Le serveur radius décide sur quel vlan chaque poste sera affecté.
Vlan par défaut si le serveur radius ne renvoi rien ou ne fonctionne pas (mettre un vlan poubelle)
HP 420
Configuration des vlans
Protocoles d'authentification réseau 88 S.Bordères
HP 420
Authentification par adresse MAC (radius-mac) WIFI
Configuration des vlans
Protocoles d'authentification réseau 89 S.Bordères
Les serveurs radius sont définis par SSID
10.4.0.3
Le format des adresses MAC est défini par serveur
HP 420
Authentification par adresse MAC (radius-mac) WIFI
Configuration des serveurs radius
HP 420
Authentification par adresse MAC (radius-mac) WIFI
Configuration des serveurs radius
Protocoles d'authentification réseau 91 S.Bordères
HP 420
Tous les postes utilisant le même ssid utilisent la même suite de sécurité Configuration du cryptage
Méthode possible en Radius-mac
Protocoles d'authentification réseau 92 S.Bordères
Chez Cisco la posibilité de créer plusieurs couple SSID/vlan existe depuis longtemps mais l’utilisation d’un vlan générique fonctionne depuis récemment (testé avec la version k9w7-tar.123-7.JA2)
CISCO AIRONET 1200
Le principe est le même qu’avec les bornes HP
Authentification par adresse MAC (radius-mac) WIFI
Protocoles d'authentification réseau 93 S.Bordères
Authentification par adresse MAC (radius-mac) WIFI
Configuration des vlans
15
15 demo
10.4.0.3
10.4.0.3
10.4.0.3 10.4.0.3
CISCO AIRONET 1200
Authentification par adresse MAC (radius-mac) WIFI
Configuration des serveurs radius
Protocoles d'authentification réseau 95 S.Bordères
CISCO AIRONET 1200
Le format des adresses mac est le même pour tous les serveurs et les ssid Uniquement les attributs Calling/called Sation Id
Configuration des serveurs radius
Protocoles d'authentification réseau 96 S.Bordères
Authentification par adresse MAC (radius-mac) WIFI
Configuration du cryptage
CISCO AIRONET 1200
Protocoles d'authentification réseau 97 S.Bordères
Avec Cisco 2950 IOS version 12.1(22)EA4 pas possible:
La fonctionnalité n'est pas présente
Pour faire de l'authentification MAC il faut utiliser VMPS
Possible sur matériel HP procurve
Authentification par adresse MAC (radius-mac) Filaire
Authentification par adresse MAC (radius-mac) Filaire
radius-server host 10.4.0.3 shared-secret
aaa port-access mac-based addr-format multi-dash aaa port-acces mac-based port-list
Switch HP Procurve 2626
Inter-connexion des équipements et configuration du serveur Radius
Lien tagged
Port 24 tagged sur tous les vlans
Port 24 tagged sur tous les vlans
Protocoles d'authentification réseau 99 S.Bordères
Configuration du serveur Radius avec utilisation de la base local USERS
pour la méthode RADIUS-MAC
Protocoles d'authentification réseau 100 S.Bordères
Fichier users sur le serveur Radius
Exemple1: Autoriser la machine 00c049e901abà se connecter sur le vlan 15
Authentification par adresse MAC (radius-mac) WIFI+Filaire
00c049e901ab Auth-Type := local , User-Password =="00c049e901ab"
Service-Type = Framed-User, Tunnel-type = VLAN, Tunnel-Medium-Type = 6, Tunnel-private-Group-ID = 15
Sur le serveur Radius il faut écrire une entrée par adresse MAC autorisée du type suivant:
Mot de passe=adresse mac
Adresse mac
Configuration du fichier USERS de radius
Protocoles d'authentification réseau 101 S.Bordères
Configuration sur le client
Aucune configuration particulière sur le client que ce soit en wifi ou en filaire
Authentification par adresse MAC (radius-mac)
Authentification 802.1x
Protocoles d'authentification réseau 103 S.Bordères
Request Identity
Identity=CN="Jean Dupont"
Machine1.demo.fr Auth-Type=EAP
………
users
EAP-type=EAP-TLS vérification
vérification certificat
autorité
accept CN
Certificat
personnel Certificat
serveur
Client NAS Serveur radius
certificat autorité
Protocoles d'authentification réseau 104 S.Bordères
Authentification 802.1x
Configuration des équipements réseau pour les méthodes EAP
Bornes et switches
Protocoles d'authentification réseau 105 S.Bordères
Authentification 802.1x WIFI
Inter-connexion des équipements réseau
interface FastEthernet0/24 switchport trunk native vlan 12 switchport mode trunk
Connexion d’une borne sur un
Connexion d’une borne sur un switchswitchCiscoCisco29502950
Connexion d’une borne sur un
Connexion d’une borne sur un switchswitchHPHP
Idem que pour Radius MAC
=> Si la borne est capable de gérer simultanément desSSID avec authentification MAC et des SSID avec authentification 802.1x, il n’y a rien de plus à faire sur le switch sur lequel est connecté cette borne.
Lien trunk
Lien tagged
vlan 12 untagged 24 vlan x tagged 24 . .
Authentification 802.1x WIFI
HP 420
Configuration des vlans et des serveurs Radius
La configuration dans la borne est identique au cas Radius-MAC sauf qu’il ne faut pas activer l’authentification MAC.
Protocoles d'authentification réseau 107 S.Bordères
HP 420
Tous les postes utilisant le même ssid utilisent la même suite de sécurité Configuration du cryptage
Protocoles d'authentification réseau 108 S.Bordères
CISCO AIRONET 1200
Authentification 802.1x WIFI
Configuration des vlans et des serveurs Radius
La configuration des vlans est identique au cas radius-mac
Protocoles d'authentification réseau 109 S.Bordères
Configuration du cryptage
Authentification 802.1x WIFI
CISCO AIRONET 1200
radius-server host 10.4.0.3shared-secret aaa port-access authenticator 15
Authentification 802.1x Filaire
Inter-connexion des équipements et configuration du serveur Radius
interface FastEthernet0/24 switchport mode trunk
interface FastEthernet0/1
switchport mode trunk Switch Cisco 2950
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
Switch Cisco 2950
Switch HP 2626