Votre question

[Comment faire] Authentification radius mac

Tags :
  • Mot de passe
  • Internet
Dernière réponse : dans Internet
18 Mai 2009 15:16:28

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):
    1. vlan database
    2. vlan 4,33

  • déclaration du serveur radius:
    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):
    1. interface vlan 33
    2. dot1x guest-vlan

  • configuration des ports (ici du 2 au 48):
    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:
    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 :
    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:

    1. authorize {
    2. eap
    3. files
    4. }


    1. authenticate {
    2. eap
    3. }


    Dans le fichier eap.conf, il faut avoir :
    1. default_eap_type = md5


    Et enfin, dans le fichier users il faut déclarer les utilisateurs comme ceci :
    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 :

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


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

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


    Ensuite il faut modifier la partie "authorize" :

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


    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^^
  • Autres pages sur : authentification radius mac

    18 Mai 2009 20:07:41

    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
    m
    0
    l
    Tom's guide dans le monde
    • Allemagne
    • Italie
    • Irlande
    • Royaume Uni
    • Etats Unis
    Suivre Tom's Guide
    Inscrivez-vous à la Newsletter
    • ajouter à twitter
    • ajouter à facebook
    • ajouter un flux RSS