Académique Documents
Professionnel Documents
Culture Documents
Sans-fil et filaire
Introduction
Qu'est-ce que l'authentification réseau ?
Pourquoi faire de l'authentification réseau ? Mise en oeuvre
Authentification par adresse MAC (Radius-mac)
Intérêt de l'authentification réseau 9Configuration des équipements réseau
Authentifier quoi ? Des utilisateurs ou des •WIFI (borne HP et Cisco)
machines ? •Filaire (switch HP et Cisco)
•Authentification
ré tific
en
Base
th
•Autorisation d'usage De
Au
Données
Commune
(windows, Linux…)
ca at
es
pl i ific
a p ent
th
•Pour placer les postes connus a des endroits spécifiques du réseau (vlan)
de façon dynamique.
•Authentification + cryptage
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.
Routeur
Routeur
Réseau2
Vlan2 Vlan3
switch
switch
Vlan2
Vlan3
Réseau filaire
Deux possibilités :
Authentification 802.1x
Serveur radius
L’adresse MAC
sert d’identifiant
Fichier local
Et/ou
Lorsque un poste se Base Ldap
connecte sur un port Et/ou
le switch interroge Base sql
le serveur radius
Serveur radius
L’identifiant et soit
un login/password
soit un certificat
Fichier local
Le switch relaie Et/ou
la demande du poste Base Ldap
Et/ou
Base sql
Et/ou
Domaine windows
Exécution d’un supplicant
qui demande l’authentification
Il y a une communication
entre le client et le serveur
Radius avec le protocole EAP
s
P
tre
E A
Au
Port non contrôlé
Port contrôlé
s
P
tre
Avant authentification
802.1x met en œuvre le protocole EAP pour les communications du client vers le serveur
d'authentification.
- 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.
NAS
Authenticator (802.1x)
Radius client
Domaine
serveur Radius Windows
supplicant
Borne WIFi
Méthodes
d'authentification
et d'autorisation
Commutateur
supplicant NAS
Authenticator (802.1x)
LDAP
Radius client
Base sql
certificats
Fichier local
NAS= Network Access Server
Service
Le protocole de base de RADIUS est décrit dans le RFC 2865.
Authentification
Qui me parle ?
Authorization
Quelles autorisations je lui accorde ?
Accounting
Que fait-il ?
Access-Request
Access-Accept
Access-Reject
Access-Challenge
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.
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.
Attributs et valeurs(variable)
Codes Identifier
1 - access-request utilisé pour associer les requêtes
2 - access-accept et les réponses.
3 - Access-reject
4 - Accounting-request
Authentificateur
5 - Accounting-response
Utilisé pour que l'équipement NAS
11- Access-challenge 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.
Attributs et valeurs
Authentificateur
Le NAS est alors en mesure de vérifier que le serveur qui répond est bien
celui qu'il a contacté.
Les transactions RADIUS ont pour but de véhiculer des attributs et leur valeur
entre le client NAS et le serveur.
N°
longueur valeur
attribut
Integer
Enumerated
IP address
Chaîne de caractères
Date
Binaire
Vendor-specific
N°
longueur valeur
attribut
Protocoles d'authentification réseau 28 S.Bordères
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
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
Vendor Attribut
26 longueur longueur valeur
ID number
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
Vendor Attribut
26 longueur longueur valeur
ID number
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
Exemple 2
¾Le support des VLANs est réalisé 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 créer des tunnels avec des clients distants.
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 Ethernet
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
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.
Radius a été étendu pour supporter le protocole EAP et donc l'authentification 802.1x.
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é)
4 EAP-Reply=Client_hello
6 EAP-reply=Certificat+clé publique
Calcul clé Calcul clé
principale principale
EAP-request=TLS_finished
7 7
EAP-request=TLS_finished
EAP-reply= vide
8 8
EAP-reply= success EAP-reply= success+clé de session
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.
EAP-request/identity
Access-request
EAP-Response/identity (EAP-message)
(EAP-message- identity=login)
TLS pour création d’un tunnel chiffré
authentification
OK
Access-accept
+Clé de session
Génération
EAP key clé WEP/WPA
clé WEP/WPA
2 EAP-reply=identity=login
Tunnel chiffré
EAP-reply= vide
7 7
EAP-reply= success EAP-reply= success+clé de session
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.
¾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.
Méthodes de cryptage:
WEP : dépassé ne pas utiliser
WPA2: = 802.11i
Principe identique à WPA avec:
CCMP pour la rotation des clés
AES pour le cryptage
802.11b/g 802.3
TLS
EAP TLS
TLS MSCHAPv2 IP UDP Radius EAP
TLS MSCHAPv2
IP TCP ou
IPUDP
Check Base
items
Request-items
Mac-address Processus
d'authentification
et autorisation
Check-item=request-items ?
Reply-items
Vlan=5 Reply
items Base
•L'équipement NAS envoi un access-request contenant 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 une correspondance est trouvée, une reply-list est formée à partir des reply-items contenu
dans la base. Par exemple, le numéro de vlan est un reply-item.
•Si l'authentification est ok, la reply-list est envoyé à l'équipement NAS avec un access-accept.
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)
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
Installation
tar xvzf freeradius-1.0.1.tar.gz.
cd freeradius-1.0.1
Démarrage
/etc/init.d/radiusd start
Logs dans /var/log/radius/radius.log
Ou bien
radiusd.conf
Configurations principales clients.conf
eap.conf
users
dictionnary
Configurations particulières Ldap.attrmap
Oraclesql.conf
Postgresql.conf
Sql.conf
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 Doit être présent aussi dans le NAS
shortname = nom
nastype = type-materiel
}
•Le fichier user est la base de données locale. C’est un fichier plat.
•Les lignes suivantes commencent par une tabulation suivie d'une liste d'items
de réponse (reply item).
item
•Il peut y avoir plusieurs reply item séparés par des virgules et sur plusieurs lignes.
Local
System Reject permet de refuser inconditionnellement
SecurID
une connexion.
Crypt-Local
Reject
ActivCard
EAP Accept permet d'accepter inconditionnellement
ARAP une connexion.
Accept
PAP
CHAP
LDAP
PAM
MS-CHAP
Kerberos
CRAM
NS-MTA-MD5
SMB
Protocoles d'authentification réseau 60 S.Bordères
Freeradius: Fichiers de configuration - users
Les opérateurs
Les opérateurs
Les opérateurs
Déclaration de modules
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
#listen {
# IP address on which to listen.
# Allowed values are:
# dotted quad (1.2.3.4)
# hostname (radius.example.com)
# wildcard (*)
# ipaddr = *
Listen :
Utile uniquement lorsque
# Port on which to listen.
le client peut être sur la
# Allowed values are:
machine où tourne Radius
# integer port number (1812)
# 0 means "use /etc/services for the proper port"
# port = 0
hostname_lookups = no
allow_core_dumps = no
regular_expressions = yes
extended_expressions = yes
log_stripped_names = yes
log_auth = yes
log_auth_badpass = yes
Paramétrage des logs
log_auth_goodpass = yes
usercollide = no
lower_user = no
lower_pass = no
nospace_user = no
nospace_pass = no
$INCLUDE ${confdir}/snmp.conf
nom1 {
……
}
ldap {
Module d'authentification sur
server = "ldap.your.domain"
# identity = "cn=admin,o=My Org,c=UA" serveur
LDAP (voir plus loin)
# 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
}
#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 spécifier
# filename = /etc/group le format de fichier de type
# format = "=Group-Name:::*,User-Name" /etc/passwd
# hashsize = 50
# ignorenislike = yes
# allowmultiplekeys = yes
# delimiter = ":"
#}
realm realmpercent {
format = suffix
delimiter = "%"
ignore_default = no
ignore_null = no
}
realm host {
format = prefix
delimiter = "/"
ignore_default = no
ignore_null = no
}
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 Permet de définir où se trouve
acctusersfile = ${confdir}/acct_users le fichier users
compat = no
}
detail {
detailperm = 0600 Module pour la création de logs détaillés
}
#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
#}
authorize {
preprocess
# auth_log
# attr_filter Fichier docs/aaa.txt
chap Authorization is a process of obtaining information about the
user from external source (file, database or LDAP), and checking
mschap that the information in request is enough to authenticate user.
# digest Authorization modules deal with data sources, so ldap, sql, files,
passwd are authorization modules.
# IPASS
suffix
host
eap
files
# sql Voir discussion sur authorize/authenticate
# etc_smbpasswd http://lists.cistron.nl/pipermail/freeradius-users/2002-December/014730.html
ldap
# daily
checkval
}
authenticate {
Auth-Type PAP {
pap
}
Auth-Type CHAP {
Fichier docs/aaa.txt
chap
Authentication is simply a process of comparing user's
}
credentials in request with credentials stored in database.
Auth-Type MS-CHAP { Authentication usually deals with password encryption. PAP,
CHAP, MS-CHAP are authentication modules. Few modules act
mschap
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
# digest
related attribute and only in this case perform MS-CHAP based
# pam authentication. LDAP is normally an authorization module, but it
may be used for authentication (In this case FreeRADIUS will
unix
authenticate user in case he can connect to LDAP server with
# Auth-Type LDAP { his account). SQL is only an authorization module, as dial-in
users are not normally given passwords to access an SQL
# ldap
server.
# }
eap
}
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
}
.
.
.
tls {
private_key_password = clé-privée
private_key_file = ${raddbdir}/certs/serveur-radius.key
certificate_file = ${raddbdir}/certs/serveur-radius.crt Les certificats du serveur et de l'autorité
sont stockés dans /etc/raddb/certs
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 Impose que le username
check_cert_cn = %{User-Name} envoyé soit égal au CN
}
Cisco HP
802.1X
Radius-mac
Remarque importante
Bornes et switch
HP et Cisco
interface FastEthernet0/24
switchport trunk native vlan 12 Vlan sur lequel la borne possède une adresse IP
switchport mode trunk
vlan 12
untagged 24
vlan x
tagged 24
. Le port 24 doit être tagged sur tous les autres vlans
.
420
HP
420
HP
N ET 1200
AIRO
CISCO
15
demo
15
1200
T
ONE
AI R
CO
CIS
10.4.0.3
10.4.0.3
10.4.0.3 10.4.0.3
1200
T
ONE
AI R
CO
CIS
Le format des adresses mac est le même pour tous les serveurs et les ssid
1200
T
ONE
AI R
CO
CIS
6
262
u rve
P roc
h HP radius-server host 10.4.0.3 shared-secret
c
S wi t aaa port-access mac-based addr-format multi-dash
aaa port-acces mac-based port-list
Lien tagged
Sur le serveur Radius il faut écrire une entrée par adresse MAC autorisée du type suivant:
Identity=CN="Jean Dupont"
vérification
EAP-type=EAP-TLS
certificat
autorité
vérification
certificat
autorité
CN
users
accept Machine1.demo.fr Auth-Type=EAP
………
=> 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.
interface FastEthernet0/24
switchport trunk native vlan 12
switchport mode trunk
vlan 12
untagged 24
vlan x
tagged 24
.
.
Protocoles d'authentification réseau 105 S.Bordères
Authentification 802.1x WIFI
Configuration des vlans et des serveurs Radius
P 420
H
La configuration dans la borne est identique au cas Radius-MAC sauf qu’il ne
faut pas activer l’authentification MAC.
N ET 1200
SC O AIRO La configuration des vlans est identique au cas radius-mac
CI
N ET 1200
SC O AIRO
CI
interface FastEthernet0/15
switchport mode access
dot1x port-control auto
radius-server host 10.4.0.3 shared-secret
Switch
aaa port-access authenticator 15 HP 2626
Port 24 tagged sur tous les vlan Port 24 tagged sur tous les vlan
Switch HP 2626
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/cacnrs.pem Fichier eap.conf
dh_file = ${raddbdir}/certs/dh
random_file = ${raddbdir}/certs/random
fragment_size = 1024 TLS
include_length = yes
# check_crl = yes
check_cert_cn = %{User-Name}
} peap {
default_eap_type = mschapv2
copy_request_to_tunnel = yes PEAP
use_tunneled_reply = yes
}
mschapv2 {
}
} (fin module eap)
Authentification au logon
TLS (certificat machine ou utilisateur)
PEAP
Authentification au démarrage
TLS
PEAP
Un certificat machine peut aussi être mis dans le magasin « certificat utilisateur actuel »
Authentification au
demo
w s Authentification au
o démarrage de la machine
ind
W
w s Le service
o
ind
configuration automatique
W sans-fil (oui, oui!)
doit être démarré
u x ctrl_interface_group=0
L in ctrl_interface="/var/run/wpa_supplicant"
eapol_version=1
WPA_SUPPLICANT ap_scan=2
network={
ssid=demo
scan_ssid=0
proto=WPA
key_mgmt=WPA-EAP
Fichier /etc/wpa_supplicant.conf 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
}
u x
L in
network_list = all
XSUPPPLICANT default_netname=default
default {
type = wired
allow_types = all
identity =machine1.demo.fr
eap_tls {
user_cert = /root/cert/machine1.demo.fr.pem
Fichier /etc/xsupplicant.conf
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
}
}
xsupplicant –i eth0 –f
…..
Info: rlm_eap_tls: Received EAP-TLS ACK message
Info: rlm_eap_tls: Received EAP-TLS First Fragment of the message Nom du point d‘accès
Info: rlm_eap_tls: More fragments to follow
Info: (other): SSL negotiation finished successfully
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)
Le serveur Radius authentifie l'utilisateur sur une base qui contient
le mot de passe des utilisateurs au lieu d'authentifier sur le certificat.
Divers type de base peuvent être utilisées, 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 méthode pour définir ces bases au chapitre
« Définir une base d’authentification »
w s
o
ind Authentification au
W logon d’un utilisateur
demo
Authentification au
o ws démarrage de la machine
ind
Au démarrage le PC envoi comme identity : host/nom-machine
W
w s
o
ind
W
u x eapol_version=1
L in ap_scan=2
network={
WPA_SUPPLICANT ssid="demo"
scan_ssid=0
proto=WPA
key_mgmt=WPA-EAP
eap=PEAP
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«
}
u x
L in
network_list = all
default_netname=default
XSUPPPLICANT default {
type = wired
allow_types = all
identity = dupont
Fichier /etc/xsupplicant.conf eap-peap {
random_file = /dev/urandom
root_cert = /root/cert/cademo.pem
allow_types = eap_mschapv2
eap-mschapv2 {
username = dupont
password = mot-de-passe
}
}
}
xsupplicant –i eth0 –f
PEAP
Si plusieurs utilisateurs sur même poste ils utilisent tous le même login/mot de passe
TLS
9Disposer d’une IGC
9Pas besoin de base Windows, pas forcément besoin d’une base LDAP.
La configuration proxy est utilisée pour ré-orienter une requête vers un autre
serveur radius ou bien pour tenir compte d’un domaine (realm) passé dans
l’identity.
Exemple:Lorsqu’une requête de type host/cn-certificat (authentification au démarrage)
arrive on peut mettre dans le fichier users une entrée host/cn-certificat.
Mais si un requête arrive avec juste cn-certificat (authentification au logon) l’entrée
précédente dans users ne va pas matcher.
Il vaut donc mieux mettre une entrée « cn-certificat » et configurer le proxy comme suit:
raddb.conf Proxy.conf
Realm host { Realm host {
format = prefix type =radius
delimiter = « / » authhost = LOCAL
ignore_default = no accthost = LOCAL
ignore_null = no }
}
Dans ce cas les requêtes préfixées par host sont redirigées vers le serveur radius
local avec le mot host en moins.
Sur le serveur Radius il faut mettre en oeuvre samba et plus particulièrement 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
C’est 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
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é
Dans le cas PEAP la base LDAP est utilisée pour authentifier et autoriser
Dans le cas TLS la base LDAP est utilisée uniquement pour autoriser,
la validation du certificat étant faite par le serveur radius.
Check-item
checkval Reply-item uid=user1
Authentification Access-chalenge
Check-item
Reply-item
accept Autorisation
Reply-item
La base LDAP doit contenir une entrée pour chaque client.
Cette entrée 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.
/etc/openldap/slapd.conf
include /etc/openldap/schema/RADIUS-LDAPv3.schema
database bdb
suffix "dc=demo,dc=fr"
Qualification de la base
rootdn "cn=Manager,dc=demo,dc=fr"
rootpw testldap
include /etc/openldap/schema/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
)
dictionary_mapping = ${raddbdir}/ldap.attrmap
permet de mettre en rapport les noms d'attributs tels que définie dans freeradius
et les noms d'attributs définis dans le schéma LDAP.
Attributs radius
Attributs ldap
dn: uid=user1,ou=users,dc=demo,dc=fr
objectclass: Inetorgperson
objectclass: radiusProfile
uid: user1
userPassword: 0xBFAD8787F5DC64B730028C20A64EBA94 Mot de passe SMB
Utile uniquement en
cn: user1
EAP/PEAP
sn: user1
radiusCallingStationId: 00-0F-1F-16-C9-CC
radiustunneltype: VLAN
radiustunnelmediumtype: 6
radiustunnelprivategroupid: 12
authorize {
preprocess
auth_log
eap
files
ldap
checkval
}
authenticate {
Auth-Type MS-CHAP {
mschap
}
eap
}
username envoyé
dans access-request
uid=00904c871213,ou=machines,dc=demo,dc=fr
objectclass: Inetorgperson
objectclass: radiusProfile
uid: 00904c871213
userPassword: 00904c871213 Mot de passe envoyé
cn: 00904c871213 dans access-request
sn: 00904c871213
radiusCallingStationId: 00-90-4c-87-12-13
radiustunneltype: VLAN
radiustunnelmediumtype: 6
radiustunnelprivategroupid: 12
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
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
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
WPA/WPA2 http://www.ossir.org/sur/supports/2005/ossir_wpa_wpa2.pdf
Freeradius http://www.freeradius.org