Tom's Guide > Forum > Accès Internet & Réseaux > [Comment faire] Authentification radius mac
Mot :    Pseudo :           
 

Bonjour,

 

Après avoir galéré pendant pas mal de temps sur ce sujet, j'ai finalement réussi à mettre en place mon authentification par adresse mac et cela notemment grâce à Maith, qui m'a ensuite proposé de réaliser un tuto sur le sujet, c'est pourquoi j'ai décidé de m'y attacher.

 

L'avantage de cette méthode d'authentification c'est que tout se fait automatiquement, pas de certificats à installer ni même de mot de passe à retenir. En revanche elle pêche un peu concernant le niveau de sécurité mais s'avère suffisante sur des petites structures peu susceptible de subir des intrusions dans le but de nuire. Dans mon cas, il s'agissait simplement d'empêcher les visiteurs de l'entreprise se connectant au réseau d'avoir accès à l'intranet.

 

Avant tout de chose, je précise que la configuration des différents éléments auxquels nous auront à faire dépend en grande partie du modèle de switch utilisé. Pour ma part je me suis servi d'un Allied Telesis AT-8000GS/48 et d'un serveur Freeradius. Donc pour ce modèle de switch, voici comment il faut procéder :

 


Configuration du switch :

  • création des vlan (4 et 33):
Code :
  1. vlan database
  2. vlan 4,33


  • déclaration du serveur radius:
Code :
  1. radius-server host 192.168.254.113 key testing


=> l'adresse ip est celle du serveur radius (il est possible de déclarer plusieurs Radius)

  • déclaration du guest vlan (ici le vlan 33):
Code :
  1. interface vlan 33
  2. dot1x guest-vlan


  • configuration des ports (ici du 2 au 48):
Code :
  1. dot1x system-auth-control
  2. interface range ethernet g(2-48)
  3. dot1x re-authentication
  4. dot1x mac-authentication mac-and-802.1x
  5. dot1x radius-attributes vlan
  6. dot1x port-control auto
  7. dot1x guest-vlan enable


  • configuration de l'authentification:
Code :
  1. aaa authentication dot1x default radius
 

Voila, c'est à peu près tout pour le switch.

 

Maintenant le radius:

 

Dans le fichier client.conf il faut indiquer le client (et oui) comme ceci :

Code :
  1. client 192.168.254.239 {            #=> adresse ip du switch
  2.     secret     = testing                          #=> le secret doit correspondre à la clé définie dans la déclaration du serveur radius au niveau du switch
  3.     shortname     = switch1                #=> ce que vous voulez!
  4.     nastype    = other                            #=> other vu que ce n'est pas un cisco
  5. }
 

Dans le fichier radiusd.conf, il ne faut s'occuper que des parties authorize et authenticate:

 
Code :
  1. authorize {
  2.             eap
  3.             files
  4. }
 
Code :
  1. authenticate {
  2.             eap
  3. }
 

Dans le fichier eap.conf, il faut avoir :

Code :
  1. default_eap_type = md5
 

Et enfin, dans le fichier users il faut déclarer les utilisateurs comme ceci :

Code :
  1. 0008743e7a99 Auth-Type := EAP, User-Password == "0008743e7a99"    #=>0008743e7a99 correspond au user name et user password
  2.                                                                                                                                     #c'est l'adresse mac de l'utilisateur       
  3.     Tunnel-Type = 13,                                              #=>13 correspond au type VLAN                                                                                             
  4.     Tunnel-Medium-Type = 6,                                  #=>6 correspond à l'ethernet
  5.     Tunnel-Private-Group-ID =4                              # =>4 est le numéro du vlan dans lequel mon utilisateur sera mis
 

Toutefois, il est possible d'utiliser un annuaire LDAP pour remplacer la base locale. Pour ma part, on m'avait demander par la suite d'en utiliser 2 dont 1 ne servant que en cas de panne du 1er LDAP.

 

A noter que dans la base LDAP, les iud des entrées doivent correspondre aux adresse MAC.

 

Pour développer cela il faut tout d'abord aller regarder dans la partie "module" de radiusd.conf dans lequel on trouve une partie LDAP. Puis il faut déclarer tous les annuaires dont on dispose :

 
Code :
  1. modules {
  2. [...]
  3. ldap ldap1 {
  4.         server = "192.168.254.111"
  5.         identity = "cn=admin,dc=lpce,dc=cnrs-orleans,dc=fr"
  6.         password = *******
  7.         basedn = "ou=RADIUS,ou=Machines,dc=lpce,dc=cnrs-orleans,dc=fr"
  8.         filter = "(uid=%{Stripped-User-Name:-%{User-Name}})"
  9.               [...]
  10.               start_tls = no
  11.               ldap_connections_number = 5
  12.               password_attribute = userPassword
  13.               timeout = 4
  14.           timelimit = 3
  15.           net_timeout = 1
  16.               }
  17. ldap ldap2 {
  18.         server = "192.168.254.112"
  19.         identity = "cn=admin,dc=lpce,dc=cnrs-orleans,dc=fr"
  20.         password = *******
  21.         basedn = "ou=RADIUS,ou=Machines,dc=lpce,dc=cnrs-orleans,dc=fr"
  22.         filter = "(uid=%{Stripped-User-Name:-%{User-Name}})"       
  23.               [...]
  24.               start_tls = no
  25.               ldap_connections_number = 5
  26.               password_attribute = userPassword
  27.               timeout = 4
  28.           timelimit = 3
  29.           net_timeout = 1
  30.              
  31.               }
 

Puis ajouter ces lignes (toujours dans "modules" ) :

 
Code :
  1. .
  2. .
  3. .
  4. always handled {
  5.         rcode = handled
  6.     }
  7. }
 

Ensuite il faut modifier la partie "authorize" :

 
Code :
  1. authorize {
  2.     eap
  3.     redundant {
  4.             ldap1
  5.             ldap2
  6.             handled
  7.         }
  8. }
 

always handled {} et redundant {} sont nécessaires car sans ces modules, par défaut, Radius teste en premier les connexions avec toutes les bases contenues dans "authorize" et si une échoue, il tente aucune authentification.

 

Dans notre cas, il detecte la chute d'un des LDAP mais se contente de passer au suivant pour tenter l'authentification. Ainsi l'installation est consolidée.

  

Au final, que j'utilise la configuration avec la base locale ou les LDAP, si un utilisateur contenu dans l'une des bases se connecte, il sera mis dans le vlan 4, sinon, il sera basculé dans le "guest vlan", ici le 33.

 

J'espère que j'ai été complet et que je n'ai rien oublié, si c'est le cas n'hésitez pas à me le faire savoir^^


Message édité par tinou01 le 09-06-2009 à 09:49:43
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Merci pour le tuto et bon travail
Pour ceux que ça intéresse, la config du switch est très similaire chez cisco, le reste est identique

Cette méthode s'appuie sur un fichier local, mais en remplaçant le module file par ldap/sql on peut se servir d'un annuaire/d'une base de données (sous réserve de configurer les modules ldap/sql)

Il faut garder à l'esprit que ce n'est pas une méthode de sécurisation, c'est une méthode d'assignation de vlan dans un réseau "propre" sans personne pour faire joujou avec des usurpations de MAC ADDRESS

------------------------------ Pub/piratage/spam/villes virtuelles/...-->BAN, je ne cherche pas à comprendre
Editer vos titres (pas de titre en majuscule, [RESOLU] quand c'est le cas)
Tutos IDN
Répondre à maith
Tom's Guide > Forum > Accès Internet & Réseaux > [Comment faire] Authentification radius mac
Aller à :

Il y a 1966 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Liens